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

标签 c escaping uart unicode-escapes stringescapeutils

我需要使用嵌入式 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/

相关文章:

c - gcc内部使用相同的位表示int和char吗?

serial-port - Raspberry Pi UART 串​​口无法正常工作

c - 如何禁用默认的 Raspberry Pi 2 model B UART 驱动程序/模块?

我可以在二进制文件中使用 fgetc() 或 fputc() 吗?

c - 如何在 C 中使用按位运算符而不使用乘法运算符来乘以 float

c - 如何在我的 Make 文件中定义#define

python - 在 Python XML 解析中保留转义字符

Javascript 用单个正斜杠替换反斜杠和正斜杠的组合

xcode - 将倒双引号放在双引号内有困难吗?

arm - Atmel SAM4S Xplained UART