wince 串口接收不到数据
各位麻烦给指点一下,我的串口接收长时间接收之后就接收不到数据了,不知道怎么解决,还望各位帮忙看看!下面是我的接收线程,过几个小时后就接收不到数据了,我的线程接收来自模块的串口数据,模块不停的每隔400毫秒发一次数据
DWORD CRsCom::CommRecvTread(LPVOID lparam)
{
DWORD dwLength;
char *recvBuf = new char[512];
CRsCom *pDlg = (CRsCom*)lparam;
COMSTAT ComStat;
DWORD dwErrorFlags;
PurgeComm(pDlg->m_hComm,PURGE_RXCLEAR|PURGE_TXCLEAR); //清空串口的接收缓 冲区,必要性不大
ClearCommError(pDlg->m_hComm,&dwErrorFlags,&ComStat); //清除串口状态标
while(TRUE)
{
PurgeComm(pDlg->m_hComm,PURGE_RXCLEAR|PURGE_TXCLEAR); //清空串口的接收缓 冲区,必要性不大,但有
//ClearCommError(pDlg->m_hComm,&dwErrorFlags,&ComStat); //清除串口状态标
if (WaitForSingleObject(pDlg->m_ExitThreadEvent, 0) == WAIT_OBJECT_0 )
break;
if (pDlg->m_hComm != INVALID_HANDLE_VALUE )
{
ClearCommError(pDlg->m_hComm,&dwErrorFlags,&ComStat);
BOOL fReadState = ReadFile(pDlg->m_hComm, recvBuf, 512, &dwLength, NULL);
if(!fReadState)
{
//MessageBox(_T("无法从串口读取数据!"));
}
else
{
if(dwLength!=0)
{
OnCommRecv(pDlg, recvBuf, dwLength);
}
}
}
}
delete[] recvBuf;
return 0;
}