DWORD WINAPI SerialPort1ThreadProcess(HWND hWnd)
{
CRS485Dlg obj;
BYTE str[101];
DWORD wCount;
DWORD dwEvtMask=0;
SetCommMask(m_hSerial,EV_RXCHAR|EV_TXEMPTY);
WaitCommEvent(m_hSerial,&dwEvtMask,&m_osWrite);
while(1)
{
if ((dwEvtMask & EV_RXCHAR)==EV_RXCHAR)
{
COMSTAT ComStat;
int dwLength;
DWORD Erro;
ClearCommError(m_hSerial,&Erro,&ComStat);
dwLength = ComStat.cbInQue;
if (dwLength>0)
{
ReadFile(m_hSerial,str,dwLength,&wCount,&m_osWrite);
if(wCount>0)
{
::PostMessage(hWnd,COM_RECVDATA,0,0);
for (int i = 0;i < dwLength;i++)
{
obj.savedata[i++] = str[i++];
}
}
}
}
}
return TRUE;
}
为什么我的读串口线程在运行到While(1)进去之后就进不去if(),或者说为什么读不到串口数据?哪位大神帮忙指点指点。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29541231/viewspace-1120781/ ,如需转载,请注明出处,否则将追究法律责任。