iar中k60的sprintf函数的浮点型

2020-02-19 21:17发布

sprintf(str,"%6.3f",4.123);
        LCD_P6x8Str(90,5,str);
最后就一直显示个   f     不知道为什么  明显浮点就不认呀
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
子鱼
2020-02-20 05:09
应该是IAR编译器的问题,查了相关资料,是说在option中设置一下:
General option中的library configuration ,libray 选为full
library option 中的printf formatter 选择为full。
原因如下:
根本原因在于库中的printf, sprintf等函数的版本问题,由于支持全格式的时候占用的代码量和堆栈空间比较大,一般编译器默认都是实现标准甚至是最小的版本。
在不同的平台上,几种不同的版本支持的格式不一样,举个例子:
1)最小版本的printf仅支持整形格式化转义符%d以及字符串。

2)标准版本的printf支持除浮点外的其他格式,比如hex等等
3)全版本的printf支持所有格式包括%f浮点

可以参考一下这个链接:
IAREWARM 6.30 sprintf函数转换浮点数时出错 :http://www.amobbs.com/thread-5182148-1-1.html

一周热门 更多>