python 串行写入超时

for*_*XZC 5 python pyserial

我已经使用 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')
Run Code Online (Sandbox Code Playgroud)

我已经确保端口是COM5,交换机的波特率是9600。非常感谢您回答我的问题。

小智 1

我最近遇到了这个问题。我发现设置write_timeout=0解决了问题(另外,不太确定为什么存在写入超时......)

这里的另一个答案表明了同样的事情:)