c -读取前如何刷新串口?



我正在尝试通过串行端口与Windows PC进行通信。

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

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

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

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

最新更新