的字符集里只包含了128个字符,而串口传输的数据可能包含了一些非ASCII字符,比如0x80这样的字符。因此,在使用Python从串口读取数据时,需要指定正确的编码方式,以避免出现解码错误。

可以尝试使用以下代码:

import serial

ser = serial.Serial('COM1', 9600, timeout=1)

while True:
    line = ser.readline().decode('latin1').strip()
    print(line)

在这里,我们使用了'latin1'编码方式来解码从串口读取的数据。'latin1'编码方式是一个单字节编码,可以正确解码所有的字符,包括ASCII和非ASCII字符。如果还出现解码错误,可以尝试使用其他编码方式,比如'utf-8'、'gbk'等。

用Python从串口按行读取数据 出现错误 UnicodeDecodeError utf-8 codec cant decode byte 0x80 in position 0 invalid start byteASCII编码

原文地址: https://www.cveoy.top/t/topic/eFKX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录