STM32 无法打印%f

2019-07-14 18:27发布

STM32中执行如下代码
float a = 0.1;
printf("%f ",a);

输出为 %f ,就是“%f”这两个字符
如果是%d就正常
怎么解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
60user20
1楼-- · 2019-07-16 02:32
zsqzsqzs 发表于 2018-8-20 09:01
附上官方地址吧:http://www.iar.com/support/tech- ... ing-point-f-on-arm/

感谢,不过应该不是这个问题吧。我没用任何OS。

问题解决了,见#13
60user20
2楼-- · 2019-07-16 08:31
wang222221 发表于 2018-8-20 08:24
看来 IAR 的 printf 把打印浮点给精简掉了。这块代码的确是很占地方,我平时用 GCC + newlib 一般也是用去掉这个功能的 newlib-nano。你看看有没有那个编译或连接选项可以解决这个问题的,或者是换成 GCC + 完整 newlib 的组合。

感谢你的提示,确实是 IAR 默认的 printf 输出不支持浮点,修改选项后便可。
60user20
3楼-- · 2019-07-16 10:18
guanrui1202 发表于 2018-8-20 08:40
打印浮点数比较耗费内存,有些编译器需要加option,具体看看编译器的帮助。

感谢回复,确实需要修改 IAR 设置
60user126
4楼-- · 2019-07-16 13:01
 精彩回答 2  元偷偷看……
60user20
5楼-- · 2019-07-16 15:08
60user126 发表于 2018-8-20 10:35
拆开就可以了啊,没必要这么麻烦,把一个float拆成两个int类型的整数部分和小数部分,其中ADC_Final_Result是float型,ADC_Final_Result_d和ADC_Final_Result_f是uint16_t

拆开是可以。

一周热门 更多>