PySerial读取出现问题

时间:2020-09-18 00:34:57

标签: python arduino pyserial imu

我正在尝试从Arduino串行监视器读取数据,但是pyserial的readline函数遇到问题。这是显示在监视器上的简单代码:

void setup() {
  Serial.begin(19200);
}

void loop() {
  Serial.print("helloWorld");
  delay(1);        // delay in between reads for stability
}

这是我用来读取打印输出的Python代码:

import serial
arduinoSerialData = serial.Serial()
arduinoSerialData.port = "COM4"
arduinoSerialData.baudrate = 19200
arduinoSerialData.timeout = 1
arduinoSerialData.setDTR(False)
#arduinoSerialData.setRTS(False)
arduinoSerialData.open()
while(True):
    b = arduinoSerialData.readline().decode('utf-8').strip().split(',')
    print(b)


这是错误:

  File "SerialRead.py", line 11, in <module>
    str_b = b.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 7: invalid start byte

我不知道可能出什么问题了。有没有人有什么建议?谢谢您的时间!

1 个答案:

答案 0 :(得分:1)

我有这段代码,这很完美:

import serial

Ser=serial.Serial(port='com8',baudrate='9600',timeout=1)

while True:
    print(Ser.readline())

将此数据转换为字符串,并删除不必要的字符。 示例:

import serial

Ser=serial.Serial(port='com8',baudrate='9600',timeout=1)

while True:
    data=Ser.readline()
    data=str(data)
    try:
        dat1=data.replace("b","")
        dat2=dat1.replace("\r\n","")
        dat3=dat2[:-5]
        dat4=dat3.replace("'", "")
        print(dat4)
    except:
        print("ERROR: replace method error")

祝你好运!