serial raspberry proyectos libreria has example datos con comunicacion attribute adquisicion python serial-port decode pyserial

python - raspberry - Cómo decodifico bytes usando pyserial en comunicación serial



serial port python windows (1)

Soy un principiante de Python. Tengo un programa que usa la biblioteca pyserial para comunicarse con un dispositivo serial. El programa envía un byte de números a la máquina y recibe el número de bytes como respuesta.

Mi código es

import serial, string port = serial.Serial("COM9", 38400, timeout=10.0) serial.PARITY_NONE serial.EIGHTBITS serial.STOPBITS_ONE port.write(bytes([53, 1, 4, 0, 83])) print("Write done") data = port.read(20) data1= data.decode(''utf-8'') print(data1)

La salida es

Write done Traceback (most recent call last): File "C:/Python34/serialcomm.py", line 18, in <module> data1= data.decode(''utf-8'') UnicodeDecodeError: ''utf-8'' codec can''t decode byte 0x84 in position 8: invalid start byte

La salida se supone que es [53,1,4,0,83,53,1,63,83]

Si excluyo la decodificación, obtengo

Write done b''5/x01/x04/x00S5/x1b/x00/x84S''


Los bytes se pueden convertir en una lista de bytes pasándolos al constructor de la list .

>>> list(b''123'') [49, 50, 51]