wpppmlah 发表于 2024-3-30 09:56:42

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;
        }

}

串口助手中打印的数据


_奶咖君_ 发表于 2024-3-30 10:10:12

试一试 %bd? 是用C51编译器的片子么0.0 可能是这个问题

_奶咖君_ 发表于 2024-3-30 10:14:19

感觉像是 256的话 是0x0100 然后你这个变量是个u8的 但是占位符这里用了个16位的。。。

wpppmlah 发表于 2024-3-30 10:18:23

_奶咖君_ 发表于 2024-3-30 10:10
试一试 %bd? 是用C51编译器的片子么0.0 可能是这个问题

非常感谢,是51的片子,用了%bd 以后串口打印的数据正确了。

搜索了一下原来是这样:
32位数据格式符必须加字母“l”,否则会出错
8位数据格式符要加字母“b”,例如%bd、%bu

_奶咖君_ 发表于 2024-3-30 17:59:10

wpppmlah 发表于 2024-3-30 10:18
非常感谢,是51的片子,用了%bd 以后串口打印的数据正确了。

搜索了一下原来是这样:


是的,,C51的编译器的问题。也不算是问题把,,特性{:4_165:}C51的特性 注意一点就得了

lezjin 发表于 2024-3-30 18:14:13

我们不是BUG,是机制{:4_165:}

jwd 发表于 2024-3-30 19:16:18

踩过的坑就不是坑了{:4_165:}
页: [1]
查看完整版本: printf_hid打印结果错误,求助!