Не может правильно отобразить шестнадцатеричное значение в замазке
Я работаю над проектом с использованием 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.