Python serial.read()拆分错误

时间:2016-03-20 17:26:11

标签: 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 = 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)

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:0)

问题在于使用sercan = ser.read(),根据pySerial文档,read默认只读取1个字节。

解决方法是读取直到收到'\ n'或使用readline或指定要读取的字节数。