使用Embedded C我需要帮助发送特定的转义序列。 这是我在stackoverflow上的第一个主题!
我使用此功能通过UART编写命令:
void UART_Write(UARTChannel* channel, uint8_t* data, uint32_t length)
输入,通道,数据和长度分别对应于UART通道,要发送的命令和命令的长度。 这一般都很棒!
但是,我在C中生成正确的转义序列时遇到一些困难。我需要使用UART_Write函数编写以下转义序列:
EscR0,1,2,7;
Esc
是转义字符(0x1b),R0
是字符命令指示符,1,2,7
是特定于上下文的参数,;
是终止符号。
如何使函数“UART_Write”的输入“data”等于转义序列EscR0,1,2,7;在嵌入式C?
我认为可以通过多种方式完成,但任何建议都可以。
答案 0 :(得分:0)
你想发送'esc'还是想发送'1b'作为十六进制值?
只需发送字符,就像发送任何其他字符串一样
例如:EscR0,1,2,7;
:
char buffer[20] = {'\0'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....