我有一台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 = 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)
为什么我会收到此错误?
答案 0 :(得分:0)
问题在于使用sercan = ser.read()
,根据pySerial文档,read
默认只读取1个字节。
解决方法是读取直到收到'\ n'或使用readline
或指定要读取的字节数。