Python serial.read()拆分错误
我有一个Arduino连接到我的电脑。Arduino通过串行方式发送:Python serial.read()拆分错误,python,Python,我有一个Arduino连接到我的电脑。Arduino通过串行方式发送: xx,yyy\n我想把它分成两个变量。。。xx到tep,yyy到tlak,所以我写了以下内容,但它给了我一个错误: print("A list of the serial ports available on the system:") print(serial_ports()) port = "COM" + input("Please enter the port number...") # Setup ser = ser
xx,yyy\n
我想把它分成两个变量。。。xx到tep,yyy到tlak,所以我写了以下内容,但它给了我一个错误:
print("A list of the serial ports available on the system:")
print(serial_ports())
port = "COM" + input("Please enter the port number...")
# Setup
ser = serial.Serial(port, 9600, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
while True:
sercan = ser.read()
can = sercan.decode("utf-8")
tep, tlak = can.split(",")
print("T:", tep, " Tl:", tlak)
#print(can)
结果:
tep, tlak = can.split(",")
ValueError: not enough values to unpack (expected 2, got 1)
为什么会出现此错误?问题在于使用
sercan=ser.read()
解决方法是在收到“\n”之前读取,或者使用readline
或指定要读取的字节数。问题在于使用sercan=ser.read()
其中read
根据pySerial文档,默认情况下只读取1个字节
解决方法是在收到“\n”之前读取,或使用readline
或指定要读取的字节数。您是否检查了拆分前can
的值?是否检查了拆分前can
的值?不起作用:(…这是来自sercan的原始数据:b'25976\n'b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(…这是来自sercan的原始数据:b'25976\n'b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00