将 uint8_t 数组转换为 Ascii

问题描述 投票:0回答:1

我有一个 uint8_t 数组,它来自我的设备,是从 I2C 获得的。

根据数据表,它返回与Ascii对应的十六进制值。

我不确定如何将其转换为 ascii 以通过 UART 发送。

arrays c hex ascii
1个回答
0
投票

我建议您在将 asciiBuffer 初始化为 char 类型后,通过以下函数将十六进制值转换为 ASCII:十六进制值的长度 + 1 作为空终止符:

void hexToAscii(uint8_t *hexData, size_t dataSize, char *asciiBuffer) {

for (size_t i = 0; i < dataSize; ++i) {
    sprintf(&asciiBuffer[i * 2], "%02X", hexData[i]);
}

}

生成的 ASCII 字符存储在 asciiBuffer 数组中,然后可以通过 UART 发送。

© www.soinside.com 2019 - 2024. All rights reserved.