【发布时间】:2025-11-21 14:25:02
【问题描述】:
我在为 UART 编写十六进制字符串时遇到问题。我可以发送一个字节,例如:
UART2_Write(0x80);
我现在需要做一个完整的十六进制字符串,如下所示:
UART2_Write(0x80, 0x70, 0xAD, etc)
有人可以帮忙吗?我是否需要创建一个字符串并通过 UART 发送该字符串?非常感谢任何帮助:)
【问题讨论】:
我在为 UART 编写十六进制字符串时遇到问题。我可以发送一个字节,例如:
UART2_Write(0x80);
我现在需要做一个完整的十六进制字符串,如下所示:
UART2_Write(0x80, 0x70, 0xAD, etc)
有人可以帮忙吗?我是否需要创建一个字符串并通过 UART 发送该字符串?非常感谢任何帮助:)
【问题讨论】:
你只能写一个字节,所以你必须一次写一个字节。比如这样:
void UART2_Write_string(unsigned char * data, int data_len)
{
for (int i = 0; i < data_len; i++) {
UART2_Write(data[i]);
}
}
你可以这样使用函数:
unsigned char text1[] = "This is a text I want to print";
unsigned char data1[] = {0x80, 0x70, 0xAD};
UART2_Write_string(text1, sizeof(text1));
UART2_Write_string(data1, sizeof(data1));
这将通过 UART 发送 text1 中的信息和 data1 中的信息。
【讨论】: