我需要使用嵌入式 C 发送特定转义序列的帮助。 这是我在 stackoverflow 上的第一个主题!
我使用这个函数通过UART写入命令:
void UART_Write(UARTChannel* channel, uint8_t* data, uint32_t length)
输入、 channel 、数据和长度分别对应于 UART channel 、要发送的命令和命令的长度。 总的来说,这非常有效!
但是,我在用 C 语言生成正确的转义序列时遇到了一些困难。我需要使用 UART_Write 函数编写以下转义序列:
EscR0,1,2,7;
Esc
是转义字符 (0x1b),R0
是字符命令指示符,1,2,7
是上下文特定参数和 ;
是终止标志。
如何使函数“UART_Write”的输入“数据”等于转义序列EscR0,1,2,7;在嵌入式 C 中?
我认为可以通过多种不同的方式来完成,但任何建议都可以。
最佳答案
您要发送“esc”还是要发送“1b”作为十六进制值?
只需发送字符,就像发送任何其他字符串一样
例如:EscR0,1,2,7;
:
char buffer[20] = {'\0'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....
关于c - 如何使用嵌入式 C 代码通过 UART 发送转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057539/