求解,怪异的串口问题,
做一个实时串口数据收发的程序。碰到一个非常怪异的情况。
我项设备请求一个数据,设备大概2,3秒后确实发过来一串 14 个字节的数据,
而串口就是没有数据返回
当我发下一个同样的请求时,就收到了设备上一次发过来的数据,而当次的数据又被存在某个不知道哪里的地方,等我下次再请求数据,又是收到上次的数据。
反正只要设备发过来的数据是14个字节,本次就收不到。
以上测试在自己写代码的时候发现问题。然后研究了实验了半天的串口参数。无果。
现在的串口参数如下:
CommTimeOuts.ReadIntervalTimeout = MAXDWORD; CommTimeOuts.ReadTotalTimeoutMultiplier = 10; CommTimeOuts.ReadTotalTimeoutConstant = 10; CommTimeOuts.WriteTotalTimeoutMultiplier = 50; CommTimeOuts.WriteTotalTimeoutConstant = 100; if(!SetCommTimeouts( m_hComm, &CommTimeOuts )){ AfxMessageBox( _T("SetCommTimeouts 返回错误") ); //关闭串口 CloseHandle (m_hComm); m_hComm = INVALID_HANDLE_VALUE; FALSE;}