关于wince串口接收数据异常

在做wince上的一个串口调试助手,在做接收数据这一块时发觉,每次可以接受到数据,但总是最开头的两个个字节有异常,会出现些奇怪的符号。

debug之,发现每次程序判断有多少数据到来时,第一次总是判断只有一个数据到来,其实我发送了好多数据了。

我判断缓冲区有多少数据的函数用的是:

ClearCommError(ceSeries->m_hComm, &dwReadErrors, &cmState);

根据结构体cmState中的cbInQue来判断。

例如我发送“111”则第一次cbInQue为1,之后为2

3个1分为两次来发送。

后来我的解决方法是手动指定一个接收缓冲区的大小,比如256或者512.

然后再ReadFile();函数中填入此长度,这样就可以可靠的读入数据了


原文地址:https://www.cnblogs.com/lmzjh/p/4263992.html