我需要一些串口(UART)读取功能的帮助。我需要读入并显示十六进制值,但目前我正在读取ASCII值。
通过我使用的UART发送十六进制
char data [] = {0xFF};
write(fd, data, sizeof(data));
哪个做得好。但是我的阅读有问题。我希望能够读取十六进制值并稍后使用读取值。
目前我正在阅读此功能
read(fd, buffer, sizeof(buffer));
但结果它显示了我的ASCII值,我知道我需要进行某种转换,但我已经搜索过并且没有找到如何做到这一点。
提前致谢。
答案 0 :(得分:0)
由于您的问题缺乏正确回答您所需的信息,因此这些是我的假设:
您希望将此单个数字表示为用户的字符串,此字符串以十六进制表示法描述数字。
printf(“%X”,缓冲区);
答案 1 :(得分:0)
代码可能正在读取数据,但需要使用"%X"
进行后续显示
对于每个字节:
如果是最近的编译器,
printf("%02hhX", buffer[i]);
,否则
printf("%02X", (unsigned char) buffer[i]);