在LCD上显示十六进制值
我将数据存储在在LCD上显示十六进制值,c,C,我将数据存储在text_buf[4]={0x1d,0x72,0x2f,0x32}中。当我将其发送到LCD上显示时,它会显示一些垃圾。我知道LCD只显示字符串,如何使其显示存储在text\u buf中的十六进制值?有C语言的例子吗?请务必让我知道。使用snprintf()系列将文本(或任何数据)格式化为字符数组,并调用LCD的显示例程 char line[256]; snprintf(line, sizeof(line), "%02x %02x %02x %02x\n", text_buf[0],
text_buf[4]={0x1d,0x72,0x2f,0x32}
中。当我将其发送到LCD上显示时,它会显示一些垃圾。我知道LCD只显示字符串,如何使其显示存储在text\u buf
中的十六进制值?有C语言的例子吗?请务必让我知道。使用snprintf()
系列将文本(或任何数据)格式化为字符数组,并调用LCD的显示例程
char line[256];
snprintf(line, sizeof(line), "%02x %02x %02x %02x\n", text_buf[0], text_buf[1], text_buf[2], text_buf[3]);
LCD_print(line); // LCD's display routine
.注意安全,使用snprintf()
。还可以添加一个循环来概括任务并减少冗余:
char text[0x1000]; // or however many
size_t n = 0;
for (size_t i = 0; i < sizeof(buf) / sizeof(buf[0]); i++) {
int delta = snprintf(text + n, sizeof(text) - n, "%02x ", buf[i]);
if (delta < 0)
break; // handle error!
n += delta;
}
字符文本[0x1000];//或者不管有多少
尺寸n=0;
对于(size_t i=0;i
()
从技术上讲,上面的文档涉及POSIX,而不仅仅是标准C。因此,如果有人想知道:的第7.19.6.5节(我在网上找不到C11版本)涉及这个函数。第7.19.6.1.8条描述了转换规范。是否可能重复?你有密码吗?期望的输出是什么?如果您的LCD仅打印字符串-将缓冲区转换为字符串并打印它您“拼写错误”snprintf()
。另外,请不要使用cplusplus.com。首先是因为它不好,其次是因为这是一个C问题。哈,那我就“更正拼写”。但这是对C库的引用,所以我认为它是合适的。不幸的是,事实并非如此。我建议你看看.@ H2CO3:从技术上讲,这是POSIX参考。对于C STDLIB使用C++文档不是代码>程序员友好的< /代码>,也不是代码>计算机友好< /COD>。我最初否决了这个答案,因为我认为它过于复杂。H2C03和我进行了长时间的“讨论”,最后他向我指出,否决票是针对技术上不正确的答案或垃圾邮件。我取消了我的反对票,因为他的回答既不错误也不垃圾。。