0

我在使用 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”的输入“数据”等于转义序列 EscR0、1、2、7;在嵌入式 C 中?

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

4

1 回答 1

0

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

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

例如,例如EscR0,1,2,7;

char buffer[20] = {'\0'};
buffer[0] = 0x1b;
strcat( buffer, "R0,1,2,6;" );
....
于 2016-10-15T17:29:59.137 回答