2

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

在我看来,Windows 正在缓冲 COM1 上的输入,因此如果我停止两个程序的运行,则仅重新启动 Windows 程序,它仍会从微控制器程序的上一次运行中接收一些输出。

在我打开 COM1 之后,我可以在开始读取之前如何刷新它的接收缓冲区吗?是否有函数调用来做到这一点?

4

1 回答 1

7

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

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

于 2013-02-27T07:10:26.573 回答