向高手请教串口ReadFile()问题!!
我的代码很简单,你静下心来看一会就懂了。实现的功能:记时器每隔一秒轮流读串口,有数据可以执行下来,但没有数据时会死机,怎样解决这个问题!!
void CPortSpyExeDlg::OnTimer(UINT nIDEvent)
{
SetCommMask(hComPort, EV_RXCHAR);
if(hComPort != INVALID_HANDLE_VALUE)
{
char *buf=new char[64];
dwCommModemStatus = 0;
::WaitCommEvent(hComPort, &dwCommModemStatus, 0);
if((dwCommModemStatus & EV_RXCHAR)==EV_RXCHAR)
{
DWORD length;
COMSTAT ComStat;
DWORD dwErrorFlags;
ClearCommError(hComPort,&dwErrorFlags,&ComStat);
length = ComStat.cbInQue;
if(length>0)
{
int nj = ReadFile(hComPort,R,length,&length,0); }
}
}
CDialog::OnTimer(nIDEvent);
}