Не может правильно отобразить шестнадцатеричное значение в замазке

Я работаю над проектом с использованием MCU TM4C123GH6PM, и я получаю данные от другого MCU. Поэтому, когда я получаю данные от MCU#2, я отправляю их на COM-порт. В основном я отправляю фреймы этой формы:

header="#", Bytes:0,0,0,0,0,0,62,64, terminator='\0';

Что показывает шпаклевка:

#>@

Я не понимаю, почему я не могу отобразить свои байты на замазке.

Я использовал этот код для получения данных и передачи их в putty:

while (1)
    {
        if (UARTCharsAvail(UART1_BASE)){
            UARTCharPut(UART0_BASE,(unsigned char)UARTCharGet(UART1_BASE)); 

        }
    }

Я использую скорость 9600 на MCU#1, MCU#2 и шпаклевку. В чем проблема?

РЕДАКТИРОВАТЬ: так как необработанный байт содержит 8 битов, в то время как замазка основывается на ASCII и ASCII-символ имеет 7 битов. Вот почему я не могу отобразить свои байты. Это означает, что отображение этих байтов на замазке невозможно. Является ли мой анализ правильным????

2 ответа

Там, наверное, нет проблем. PuTTY интерпретирует байты как символы, а числа в вашем примере (0, 62 и 64) отображают что-то невидимое и > а также @, Смотрите любую таблицу ASCII.

Похоже, вы ожидаете, что PuTTY будет отображать вещи в шестнадцатеричном формате, но этого не происходит, по крайней мере, по умолчанию. Он предназначен для читабельного текста. Вы, конечно, можете отправлять вещи в формате ASCII (т.е. конвертировать один байт 0 например "00" или же "0x00"), в вашем приложении MCU.

Проще говоря, не существует такой вещи, как "шестнадцатеричное значение". Значение может быть представлено в шестнадцатеричном формате, но это не делает само значение другим. Десятичное целое число 16 и шестнадцатеричное целое число 0x10 - это одно и то же число, число, в конце концов. Основа, в которой он представлен, - это детали презентации, и вы не учитываете эти вещи, которые создают путаницу.

Проблема в том, что MCU#2 отправляет данные не в формате ASCII, а в виде двоичного файла. Вам нужно указать, является ли ваш протокол в формате ASCII или в двоичном формате, а затем реализовать его соответствующим образом.

Putty, будучи терминалом на основе ASCII, может отображать только ASCII.

Другие вопросы по тегам