Отправка двоичных данных через последовательный порт с Raspberry Pi с использованием Python3 приводит к мусору - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь отправить двоичные данные с Raspberry Pi через последовательный порт, но всякий раз, когда я пытаюсь отправить целое число, результатом данных являются просто случайные символы. Я правильно настроил скорость передачи и могу успешно посылать строки через последовательный порт.

Я пытался использовать другой последовательный кабель и все из следующего:

ser.write((255).to_bytes(2, byteorder="little"))
ser.write(bytes([255]))
ser.write(struct.pack("B", 255))
ser.write(bytes('255', 'UTF-8'))

Все вышеперечисленные отпечаткислучайные символы.

Я могу;однако сделайте следующее:

ser.write(bytes('255', 'UTF-8'))

И это правильно напечатает 255. Это заставляет меня поверить, что это не аппаратная проблема.

import serial
ser = serial.Serial('/dev/serial0')
ser.baudrate = 115200

ser.write((255).to_bytes(2, byteorder="little"))
ser.write(bytes([255]))
ser.write(struct.pack("B", 255))

Вывод следующий для всех трех альтернативпри отправке целого числа:

123456789:; 7C 7C 4B 14; | -.346:: 

и правильно 255. при отправке строки.

Эти данные принимаются на ПК (с помощью последовательного кабеля Raspberry Pi на USB) и тестового чтения с использованием TeraСрок, с которого публикуется результат. Скорость передачи данных в Tera Term установлена ​​равной скорости передачи экземпляра PySerial, а также был настроен правильный COM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...