【发布时间】:2011-11-10 18:55:42
【问题描述】:
我有一个系统,在该系统中,我发现串行端口的异常行为是我没想到的。我以前在使用 USB 转串口适配器时偶尔会看到这种情况,但现在我在本机串口上也看到了这种情况,而且频率要高得多。
系统设置为运行自动化测试,并且在我没有打开端口的情况下,将首先执行一些导致从串行设备输出大量数据的任务。设备也会自行重置。仅连接 tx/rx 线。没有流量控制。
这些任务完成后,测试件打开串口并立即失败,因为它得到了意外的响应。当我重现这个时,我发现如果我在终端程序中打开串行端口,我会看到几千字节的旧数据(似乎是在端口关闭时发送的)立即被清除。关闭此程序后,我就可以按预期运行测试了。
什么可能导致这种情况发生?当设备关闭时,Linux 如何处理缓冲串行端口?如果我打开一个设备,让它发送输出,然后关闭它而不读取它,这会导致同样的问题吗?
【问题讨论】:
标签: linux serial-port pyserial