Quiero comunicarme entre una Raspberry Pi 3 modelo B y una computadora portátil mediante un cable USB a RS-232 y este convertidor RS-232 a 3.3V TTL a través del módulo serie en Python:
GNDestáconectadoalaplacapin#63.3Vestáconectadodesdeelpin#2delaplacaaVCCRxestáconectadoalaplacapin#10Txestáconectadoalaplacapin#8
ElcódigoqueestoyejecutandoenlaRaspberryeselsiguiente:
port=serial.Serial("/dev/ttyAMA0",\
baudrate=9600,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=3.0)
port.write(b'hello')
Y el código que estoy ejecutando en la computadora portátil es el siguiente:
ser = serial.Serial(
port='COM11',\
baudrate=9600,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=1)
line = ser.read_until()
print(line)
El problema es que en la computadora portátil recibo la siguiente secuencia en bytes, y estos cambian según un factor desconocido:
- b '\ xd0) \ xe1 \ xd3 \ xf7'
- b '\ xd0 + \ x13 \ xd7 \ xf7'
- b '\ xd0 + \ xe3 \ xe1 \ xf9 \ xff'
- b '\ xd0 + \ xe1 \ xe1 \ xf3'
¿Alguien tiene una idea de por qué sucede esto? Cualquier ayuda es realmente apreciada
EDITAR: la descarga de ESD resolvió mágicamente este problema (creo) Estaba comprobando si hice las conexiones correctas en la Raspberry Pi y accidentalmente toqué algunos de los pines del tablero y recibí una descarga. Realmente temía que esto dañara la Frambuesa, pero todo parecía estar bien. Después de este evento, ejecuté el programa una vez más y recibí los bits correctos cada vez. Creo que esto da miedo, especialmente porque no tenía la intención de dañar mi tablero con una ESD. ¿Es verdad esta suposición? No modifiqué nada a ningún programa O_O