2017-01-10 12 views
1

У меня проблема, я не могу решить проблему. Я использую python на малине pi для чтения из USB-соединения на pi (который преобразуется из последовательного интерфейса).USB Последовательная передача данных тарабарщина

я могу подключиться к порту USB и начать получать данные с кодом

ser = serial.Serial("myUsbPortID", 9600) 
bytes = ser.inWaiting() 
print ser.read(bytes) 

я знаю, что скорость передачи данных составляет 9600 (производители аппаратных документы), но по какой-то причине, когда я пытаюсь читать поток данных я получаю много тарабарщины в виде разных языков и персонажей. После того, как я убил программу, мой экран по-прежнему заменяет мои символы данными о тарабарщинах, когда я печатаю.

Я уверен, что это не поток данных, отправляемых аппаратным обеспечением. что-то где-то конвертирует вещи, но я понятия не имею, что это может быть.

Когда я загружаю устройство, и он инициализируется, тогда я получаю читаемую информацию. но когда устройство начнет работать, я получаю только эти странные символы

есть ли способ конвертировать эти символы в данные, которые он фактически входит?

пример ПОС: output screen

+1

Вы отправляете байты или текст? Если байты затем просто напечатают его в шестнадцатеричном виде, и вы увидите, что хотите. –

+0

Работает ли она в миникомпьютере/гипертермии? правильно ли конфигурация байтов/стоп-бит? можете ли вы сбросить гекс? какие данные вы ожидаете (и какое у вас устройство)? – Marat

+1

это выглядит как ошибка конфигурации (скорость передачи, бит запуска/остановки, управление потоком, ...). использовать терминальную программу и проверить возможные конфигурации. другой очень необычной ошибкой является ошибка порядка битов (если устройство сначала отправляет LSB, а сервер ожидает MSB), однако это действительно необычно. –

ответ

0

так я был в состоянии решить вопрос о бредом этой линии на питона кода (для кого-либо еще с этой проблемой).

data = ":".join("{:02x}".format(ord(c)) for c in bytes) 

, где bytes - это необработанные данные, я делаю его «:» разделенным. Кажется, соединение и скорость в бодах были в порядке. к счастью, данные смогли преобразовать в hex ok.