如何使用嵌入式 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;" );
....
我需要使用嵌入式 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;" );
....