Как отправить escape-последовательности через UART, используя код Embedded C

Мне нужна помощь в отправке конкретной escape-последовательности с использованием Embedded C. Это моя самая первая тема на stackoverflow!

Я использую эту функцию для записи команд через UART:

void UART_Write(UARTChannel* channel, uint8_t* data, uint32_t length) 

Входы, канал, данные и длина соответствуют каналу UART, отправляемой команде и длине команды соответственно. Это вообще отлично работает!

Однако у меня есть некоторые трудности с созданием правильной escape-последовательности в C. Мне нужно написать следующую escape-последовательность, используя функцию UART_Write:

EscR0,1,2,7;

Esc — символ Escape (0x1b), R0 — обозначение символьной команды, 1,2,7 — параметры, зависящие от контекста, а ; — знак завершения.

Как сделать так, чтобы входные "данные" в функцию "UART_Write" были равны управляющей последовательности EscR0,1,2,7; во встроенном C?

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


person S. Lund    schedule 15.10.2016    source источник


Ответы (1)


вы хотите отправить «esc» или вы хотите отправить «1b» в виде шестнадцатеричного значения?

просто отправьте символы, как и любую другую строку символов

например для примера: EscR0,1,2,7;:

char buffer[20] = {'\0'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....
person user3629249    schedule 15.10.2016