以文件方式操作串口

/////////////打开
HANDLE handlePort_ = CreateFile("COM1",  // 端口设备: 默认 "COM1"
GENERIC_READ | GENERIC_WRITE,       // 设备打开模式: 允许读写
0,                                  // 不共享
NULL,                               // 默认安全设置
OPEN_EXISTING,                      // 打开方式:打开已经存在的端口
0,                                  // 默认
NULL);                           // 默认

DCB config_,d;
config_.BaudRate = 600;  // 波特率
config_.StopBits = 1;  // 停止位
config_.Parity = 0;      // 奇偶校验
config_.ByteSize = 8;  // 数据位
SetCommState(handlePort_,&config_);

COMMTIMEOUTS comTimeOut;
  
// 接收时,两字符间最大的时延
comTimeOut.ReadIntervalTimeout = 3;

// 读取每字节的超时
comTimeOut.ReadTotalTimeoutMultiplier = 3;

// 读串口数据的固定超时
// 总超时 = ReadTotalTimeoutMultiplier * 字节数 + ReadTotalTimeoutConstant
comTimeOut.ReadTotalTimeoutConstant = 2;

// 写每字节的超时
comTimeOut.WriteTotalTimeoutMultiplier = 3;

// 写串口数据的固定超时
comTimeOut.WriteTotalTimeoutConstant = 2;

// 将超时参数写入设备控制

SetCommTimeouts(handlePort_,&comTimeOut);
char buf[64];
LPOVERLAPPED ll;
unsigned long length;
if (////////////////////////////////////////////////////////////////发送
 WriteFile(handlePort_,     // 文件句柄
      buf,              // 数据缓冲区指针
      64,              // 字节数
   &length,NULL) == 0)          // 接收成功发送数据长度的指针
{
      AfxMessageBox("Reading of serial communication has problem.");
    
}
CloseHandle(handlePort_);//关闭

posted @ 2006-12-28 22:39  ahuo  阅读(377)  评论(0编辑  收藏  举报