readline将一直读取数据,直到读取结束符(新行)。请尝试:read。
更新时间:
使用picocom -b 115200 /dev/ttyUSB0或putty(串行模型)检测端口和波特率是否正确。我在你的两个问题中有两个不同的端口。如果打开错误端口,read()将一直等到读取一个字节。像这样:import serial
# windows 7
ser = serial.Serial()
ser.port = 'COM1'
ser.open()
ser.read() # COM1 has no data, read keep waiting until read one byte.
如果在控制台中键入此代码,控制台将不会输出如下内容:>>> import serial
>>> ser = serial.Serial()
>>> ser.port = 'COM1'
>>> ser.open()
>>> ser.read()
_
我们需要添加读取超时来修复它。
你可以试试这个:import serial
import time
z1baudrate = 115200
z1port = '/dev/ttyUSB0' # set the correct port before run it
z1serial = serial.Serial(port=z1port, baudrate=z1baudrate)
z1serial.timeout = 2 # set read timeout
# print z1serial # debug serial.
print z1serial.is_open # True for opened
if z1serial.is_open:
while True:
size = z1serial.inWaiting()
if size:
data = z1serial.read(size)
print data
else:
print 'no data'
time.sleep(1)
else:
print 'z1serial not open'
# z1serial.close() # close z1serial if z1serial is open.