我正在尝试让微控制器通过串口与Windows PC进行通信。
在我看来,Windows正在缓冲COM1上的输入,这样如果我停止两个程序运行,那么只重新启动Windows程序,它仍然从上一次运行的微控制器程序接收一些输出。
打开COM1后,我可以在开始读取之前如何刷新接收缓冲区吗?是否有函数调用来执行此操作?
答案 0 :(得分:6)
我相信您正在寻找的功能是PurgeComm,当您打开端口时,您将从CreateFile()传递给HANDLE。我不确定,但我相信每次打开时都会自动刷新串口。
但是,更好的方法是使用ReadFile(或ReadFileEx),直到遇到有意义的事情。为此目的,串行协议总是设计有一个或多个同步字节。除非您正在编写终端程序或类似程序,否则无论如何都必须这样做,因为Windows PC永远不会与微控制器同步。