WEB开发网
开发学院软件开发VC Win32串口编程 阅读

Win32串口编程

 2007-03-17 22:00:53 来源:WEB开发网   
核心提示: 在用重叠方式读写串口时,虽然ReadFile和WriteFile在完成操作以前就可能返回,Win32串口编程(5),但超时仍然是起作用的,在这种情况下,PURGE_RXABORT中断所有读操作并立即返回,即使读操作还没有完成,超时规定的是操作的完成时间,而不是ReadFile和WriteF

在用重叠方式读写串口时,虽然ReadFile和WriteFile在完成操作以前就可能返回,但超时仍然是起作用的。在这种情况下,超时规定的是操作的完成时间,而不是ReadFile和WriteFile的返回时间。

配置串口的示例代码:  SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024
  COMMTIMEOUTS TimeOuts;
  //设定读超时
  TimeOuts.ReadIntervalTimeout=1000;
  TimeOuts.ReadTotalTimeoutMultiplier=500;
  TimeOuts.ReadTotalTimeoutConstant=5000;
  //设定写超时
  TimeOuts.WriteTotalTimeoutMultiplier=500;
  TimeOuts.WriteTotalTimeoutConstant=2000;
  SetCommTimeouts(hCom,&TimeOuts); //设置超时
  DCB dcb;
  GetCommState(hCom,&dcb);
  dcb.BaudRate=9600; //波特率为9600
  dcb.ByteSize=8; //每个字节有8位
  dcb.Parity=NOPARITY; //无奇偶校验位
  dcb.StopBits=TWOSTOPBITS; //两个停止位
  SetCommState(hCom,&dcb);
  PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);
在读写串口之前,还要用PurgeComm()函数清空缓冲区,该函数原型:BOOL PurgeComm(
  HANDLE hFile,  //串口句柄
  DWORD dwFlags  // 需要完成的操作
  );  
参数dwFlags指定要完成的操作,可以是下列值的组合:PURGE_TXABORT   中断所有写操作并立即返回,即使写操作还没有完成。
PURGE_RXABORT   中断所有读操作并立即返回,即使读操作还没有完成。
PURGE_TXCLEAR   清除输出缓冲区
PURGE_RXCLEAR   清除输入缓冲区
(3)、读写串口

我们使用ReadFile和WriteFile读写串口,下面是两个函数的声明:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Win 串口 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接