在使用pySerial的Windows和Linux下,串行IO出现问题。使用此代码,设备将永远不会收到命令,并且读取超时:
import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
ser.write("get")
ser.flush()
print ser.read()
这段代码第一次超时,但是随后的迭代成功了:
import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
while True:
ser.write("get")
ser.flush()
print ser.read()
谁能告诉我发生了什么事?我试图添加对sync()的调用,但它不会将串行对象作为参数。
谢谢,
罗伯特
最佳答案
在写入和读取之间放置一些延迟
例如
import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
ser.flushInput()
ser.flushOutput()
ser.write("get")
# sleep(1) for 100 millisecond delay
# 100ms dely
sleep(.1)
print ser.read()