串口异步通信循环读取数据
while(m_hComm)
{
PurgeComm(m_hComm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
ClearCommError(m_hComm, &dwErrorFlags, &ComStat);
WaitCommEvent( m_hComm, &dwEvtMask,&m_op );
WaitForSingleObject(m_op.hEvent,INFINITE);
dwError = ReadFile(m_hComm,m_rcvbuf,40,&dwRead,&m_op);
}第一次运行到WaitForSingleObject的时候程序阻塞等待读取数据,通过虚拟串口发送40个数据,然后ReadFile读取了40个字节,但是返回了重叠I/O操作在进行中(不知道这个属不属于程序的正常行为);进入下一次循环运行到WaitForSingleObjt程序不阻塞,返回重叠I/O操作在进行中,继续进入下次循环运行到WaitForSingleObject的才阻塞等待读取数据,读取数据之后进入下次循环WaitForSingleObject又不阻塞了,如此每次读取数据之后都要多循环一次WaitForSingleObject才阻塞,求解救
...全文
相关推荐
WIN32API串口异步通信实例
vs2010下WIN32API函数实现的异步mfc窗口串口通信实例,里面有很详细的注释和函数解释,程序流程我也写下来了,对初学串口很有帮助
STM32F407ZET6--16串口
/************************* 串口调试助手发送数据到开发板,控制LED灯的亮灭 ********************************USART_InitStruct.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;//************************* printf示例 ********************************//extern uint8_t g_usart1_recv_flag;
基于VC6.0 串口通讯类
串口多线程 串口异步通信类 串口多线程 串口异步通信类
labview串口自发自收通讯(第十四次作业)
虚拟串口设置和与串口助手之前通讯
串口驱动分析
Linux终端控制台体系及串口驱动分析,讲述linux系统中控制台、串口和伪终端。


