无法多次写入同一端口(pyserial)

时间:2018-02-28 12:59:28

标签: python serial-port pyserial

解决:dsrdtr = True不应仅用于软件,仅用于正在使用的硬件

您好我正在尝试将电报写入串口并可以成功发送一个。如果我发送多个没有任何反应。必须关闭脚本,此时第一封电报已成功接收。

制造商建议电报之间间隔50毫秒,即使休息时间> 5秒仍然会失败。

s = serial.Serial(
port='COM3',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
timeout=0,
bytesize=serial.SEVENBITS,
dsrdtr=True             
)

buttonUP=b'\x54\x30\x34\x0D'

s.write(buttonUP)
time.sleep(0.05)
s.write(buttonUP)
time.sleep(0.05)
s.write(buttonUP)

如果我写了

s.write(buttonUP)
s.close()
s.open()
s.write(buttonUP)

这样可行但是关闭/打开造成的延迟对我们的要求来说太长了。

有没有人对可能导致此问题的原因有任何想法?非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

如果您尝试使用readline()函数从端口读取,则可能会出现问题,即您不会使用换行符终止每封邮件。尝试将其更改为

buttonUP=b'\x54\x30\x34\x0D\n' 

您可以阅读更多here