【问题标题】:How to send escape sequences via UART, using Embedded C code如何使用嵌入式 C 代码通过 UART 发送转义序列
【发布时间】:2017-02-24 17:37:37
【问题描述】:

我在使用 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 中?

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

【问题讨论】:

    标签: c escaping uart unicode-escapes stringescapeutils


    【解决方案1】:

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

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

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

    char buffer[20] = {'\0'};
    buffer[0] = 0x1b;
    strcat( buffer, "R0,1,2,6;" );
    ....
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 2016-02-03
      • 2013-01-29
      • 2020-04-11
      • 2022-10-13
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多