[英]python serial write timeout
我已经使用 pyserial 几天了。 然而,今天出现了一个问题。 我遇到了串行写入超时。 几天前,当我使用开关时,一切正常。 但是今天我换了另一个开关。 然后出现串行写入超时。 我没有更改任何代码,但问题实际上非常严重。 更严重的是,超时并不总是发生,这意味着有时我可以成功写入串行。
ser = serial.Serial( #Serial COM configuration
port='COM5',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
rtscts=True,
timeout=2,
writeTimeout=5
)
strInput = "show ver"
ser.flushInput()
ser.flushOutput()
ser.write(strInput.encode('utf-8')+b'\n')
我已经确保端口是COM5,交换机的波特率是9600。非常感谢您回答我的问题。
我最近遇到了这个问题。 我发现设置write_timeout=0
解决了这个问题(也不确定为什么写超时甚至存在......)
这里的另一个答案暗示了同样的事情:)
如果您有流量控制请求发送/清除发送结构并且您正在写入的设备没有响应,您需要写入超时才能不挂起
问题可能是接口试图遵守 RTS、CTS、DSR 或 DTS 信号。 如果它们没有正确连接,它们可能会通过超时神秘地影响通信。
一种解决方案可能是在 Python 中打开串行端口时使用rtscts=False
和/或dsrdtr=False
忽略它们的影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.