Я пытаюсь отправить двоичные данные с 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.