Python Pyserial打印空的b'';从USB串行端口
当我运行这个Python 3.5脚本时,我似乎遇到了一个问题 用于USB串行控制设备:Python Pyserial打印空的b'';从USB串行端口,python,pyserial,Python,Pyserial,当我运行这个Python 3.5脚本时,我似乎遇到了一个问题 用于USB串行控制设备: import serial import time ser1 = serial.Serial('/dev/tty.usbserial', 115200, timeout=0.1) def setupMode(): ser1.write(b'$PF,200\r\n') ser1.write(b'$PO,20\r\n') setupMode() def startMeasurments(
import serial
import time
ser1 = serial.Serial('/dev/tty.usbserial', 115200, timeout=0.1)
def setupMode():
ser1.write(b'$PF,200\r\n')
ser1.write(b'$PO,20\r\n')
setupMode()
def startMeasurments():
ser1.write(b'$GO\r\n')
startMeasurments()
def checkUnit():
ser1.write(b'$US\r\n')
checkUnit()
while True:
data = ser1.read(9999)
print ('Got:', data)
time.sleep(0.1)
ser1.close()
我得到以下结果:
python maintest.py
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
Got: b''
打印数据的频率似乎正确,测试命令时:
ser1.write(xxxxx)
它触发设备并向制造商提供的软件输出必要的数据,因此工作正常——只是python输出似乎不起作用。
我该如何解决这个问题呢?也许这会奏效:
while True:
data = ''
while ser1.inWaiting()>0:
data += ser1.read(1)
if data:
print ('Got:', data)
也许这会奏效:
while True:
data = ''
while ser1.inWaiting()>0:
data += ser1.read(1)
if data:
print ('Got:', data)
您的超时时间似乎很短。您的超时时间似乎很短。