printf_hid打印结果错误,求助!
请问是我的Printf函数用得不对吗?LCD显示为理论值 1,但串口打印出来的却是256.这是什么原因导致的呢?
unsigned char testflag = 0;
testflag在定时中断中赋值为1;
在主函数中:
while(1)
{
if(testflag == 1)
{
printf_hid("testflag=%d\r\n",testflag); // 串口输出为256
LCD_ShowIntNum(110,22,testflag,3,BLUE,BLACK,16); //屏幕显示为 1
……
testflag = 0;
}
}
串口助手中打印的数据
试一试 %bd? 是用C51编译器的片子么0.0 可能是这个问题 感觉像是 256的话 是0x0100 然后你这个变量是个u8的 但是占位符这里用了个16位的。。。 _奶咖君_ 发表于 2024-3-30 10:10
试一试 %bd? 是用C51编译器的片子么0.0 可能是这个问题
非常感谢,是51的片子,用了%bd 以后串口打印的数据正确了。
搜索了一下原来是这样:
32位数据格式符必须加字母“l”,否则会出错
8位数据格式符要加字母“b”,例如%bd、%bu wpppmlah 发表于 2024-3-30 10:18
非常感谢,是51的片子,用了%bd 以后串口打印的数据正确了。
搜索了一下原来是这样:
是的,,C51的编译器的问题。也不算是问题把,,特性{:4_165:}C51的特性 注意一点就得了 我们不是BUG,是机制{:4_165:} 踩过的坑就不是坑了{:4_165:}
页:
[1]