Win32串口通讯函数PurgeComm不能清接收缓冲区的问题

这两天在做串口通讯上位机的开发,遇到了一个比较棘手的问题。使用Win32函数PurgeComm始终不能成功清除接收缓冲区中的数据,老是接收到不需要的数据。

刚开始,我以为是我的串口配置出了问题,检查了一遍,没发现什么问题。

然后,就开始百度,搜到的相关网页挺多的,却没什么卵用。

后来,抱着试试看的态度,我使用国外搜索引擎“http://www.aol.com/”。国外一位同行说,他也遇到了这样的问题,后来在使用PurgeComm函数之前,Sleep了一段时间,问题就解决了。

好奇怪。我的相应代码:


在做串口开发之前,在网上看了一些文档。

我觉得

PurgeComm,应该在需要的时候再用,而不是单纯的每次收发数据时都调用一次。

ClearCommError,应该在串口出错的时候,再调用,清除通讯设备的错误标志,使接收操作继续正常运行。

还有一个最重要的,一定要判断返回值,一定要判断返回值。



你可能感兴趣的:(Win32串口通讯函数PurgeComm不能清接收缓冲区的问题)