串口异步通信循环读取数据

mrlgy mrlgy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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才阻塞,求解救
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
mrlgy
Windows客户端使用 18,138 成员 13,240 内容