我试图模拟一个我遵循模式的通信协议,所以我不断循环寻找相同的字符集来回复信息。我正在使用 RS-232 适配器,并且我正在模拟的协议是异步和半双工的,其中 rx/tx 线通过设计连接在一起,并且在写入后读取时会产生一种回声。
也就是说,我需要能够在每次发送写入后清除输入缓冲区,以避免读取我刚刚写的内容。因此,每当我使用reset_input_buffer()
它时,它都不会清除我发出的最后一条消息。我尝试使用几种方法来解决此问题,例如:reset_output_buffer()
与 一起使用reset_input_buffer()
、使用reset_input_buffer()
两次和使用flush()
. 这些方法都没有任何区别,唯一可以清除缓冲区的其他方法是关闭并立即打开端口,但这会导致延迟与时序混淆,因为它在某些时候很关键。
我愿意接受任何建议,请帮助!