16,472
社区成员
发帖
与我相关
我的任务
分享
BOOL bReadStat = ReadFile(m_hCom, buf, lenght, &lenght, &m_osRead);
if(!bReadStat)
{
if(GetLastError()==ERROR_IO_PENDING)
//GetLastError()函数返回ERROR_IO_PENDING,表明串口正在进行读操作
{
WaitForSingleObject(m_osRead.hEvent,m_intWaiteTime);
//使用WaitForSingleObject函数等待,直到读操作完成或延时已达到m_intCharTime
//当串口读操作进行完毕后,m_osRead的hEvent事件会变为有信号
}
}
COMSTAT comstat;
DWORD err = 0;
DWORD num = 0;
if (!ClearCommError(hComDev, &err, &comstat) || err != 0)
{
PurgeComm(hComDev, PURGE_RXABORT | PURGE_RXCLEAR);
return;
}
ReadFile(hComDev, pComReceiveIoEnd, comstat.cbInQue, &num, NULL);