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]