这个错误通常是由于串口传输的数据编码格式和Python解码格式不一致导致的。解决方法如下:

  1. 在打开串口时指定编码格式,例如:
ser = serial.Serial('COM1', 9600, timeout=1, encoding='utf-8')
  1. 在读取数据时使用try-except语句捕获异常,并指定解码格式,例如:
try:
    data = ser.readline().decode('utf-8')
except UnicodeDecodeError:
    pass
  1. 如果无法确定串口传输数据的编码格式,可以尝试使用Python自带的chardet库自动检测编码格式,例如:
import chardet

try:
    data = ser.readline()
    encoding = chardet.detect(data)['encoding']
    data = data.decode(encoding)
except UnicodeDecodeError:
    pass

以上是解决这个错误的几种方法,根据具体情况选择适合自己的方法即可。

Python串口读取数据出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 错误解决方案

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

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