如何在读取前刷新串口?

时间:2013-02-27 07:03:06

标签: c windows serial-port

我正在尝试让微控制器通过串口与Windows PC进行通信。

在我看来,Windows正在缓冲COM1上的输入,这样如果我停止两个程序运行,那么只重新启动Windows程序,它仍然从上一次运行的微控制器程序接收一些输出。

打开COM1后,我可以在开始读取之前如何刷新接收缓冲区吗?是否有函数调用来执行此操作?

1 个答案:

答案 0 :(得分:6)

我相信您正在寻找的功能是PurgeComm,当您打开端口时,您将从CreateFile()传递给HANDLE。我不确定,但我相信每次打开时都会自动刷新串口。

但是,更好的方法是使用ReadFile(或ReadFileEx),直到遇到有意义的事情。为此目的,串行协议总是设计有一个或多个同步字节。除非您正在编写终端程序或类似程序,否则无论如何都必须这样做,因为Windows PC永远不会与微控制器同步。