IAR下,STM8用printf默认是不支持32位输出的,不过被我找到办法了,共享下.

2019-07-19 20:24发布

默认的(temp为32位数组):
 printf("0X%X",temp);//16进制参数显示   
会报警告,且无法正确使用.
改为:
 printf("0X%lX",temp);//16进制参数显示  
就OK了.
其实就是加多一个小写的"L",即 long 型...
问题解决! 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
春和景明
1楼-- · 2019-07-21 09:34
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 10:13
这个坑浪费了我3个小时,
tao2008
3楼-- · 2019-07-21 12:49
 精彩回答 2  元偷偷看……
tao2008
4楼-- · 2019-07-21 15:43
int main(void)
{   
u32 i=1;   
BSP_Configuration();//硬件驱动初始化函数     
while(1)//主程序循环,反复执行循环体里的语句
  {   
      printf("TIM1通道1捕获:%ld ",i++);
    delay_ms(200);  
}
}
printf默认不支持32位输出
tao2008
5楼-- · 2019-07-21 19:19
tao2008 发表于 2017-8-24 14:31
int main(void)
{   
u32 i=1;   

加了L就可以了

一周热门 更多>