如何使用嵌入式 C 代码通过 UART 发送转义序列

How to send escape sequences via UART, using Embedded C code

我需要使用嵌入式 C 发送特定转义序列的帮助。 这是我在 Whosebug 上的第一个主题!

我用这个函数通过UART写命令:

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

输入、通道、数据和长度分别对应串口通道、要发送的命令和命令长度。 总的来说效果很好!

但是,我在用 C 语言生成正确的转义序列时遇到了一些困难。我需要使用 UART_Write 函数编写以下转义序列:

EscR0,1,2,7;

Esc 是转义字符 (0x1b),R0 是字符命令指示符,1,2,7 是上下文特定参数,; 是终止符号。

如何让函数"UART_Write"的输入"data"等于转义序列EscR0,1,2,7;在嵌入式 C 中?

我想这可以通过多种不同的方式完成,但任何建议都可以。

您要发送 'esc' 还是要发送十六进制值“1b”?

只需发送字符,就像发送任何其他字符串一样

例如举个例子:EscR0,1,2,7;:

char buffer[20] = {'[=10=]'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....