STM32 无法打印%f

2019-07-14 18:27发布

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

输出为 %f ,就是“%f”这两个字符
如果是%d就正常
怎么解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
guanrui1202
1楼-- · 2019-07-15 15:26
打印浮点数比较耗费内存,有些编译器需要加option,具体看看编译器的帮助。
zsqzsqzs
2楼-- · 2019-07-15 15:43
应该是IAR编译器问题,参见IAR官方说明:
zsqzsqzs
3楼-- · 2019-07-15 15:58
zhouxk
4楼-- · 2019-07-15 20:41
对IAR不熟,会一点。
用LCD习惯了,一般先sprintf到字符串,然后再printf打印字符串。
60user20
5楼-- · 2019-07-15 21:45
 精彩回答 2  元偷偷看……
60user20
6楼-- · 2019-07-16 00:43
zhouxk 发表于 2018-8-20 09:09
对IAR不熟,会一点。
用LCD习惯了,一般先sprintf到字符串,然后再printf打印字符串。

先使用如下代码 sprintf 再打印字符串也是不可以的。输出结果为 %f * * * *

void printf_float(float a)
{
        char tmp[8]={0};
        int i;
        sprintf(tmp, "%f", a);
        for(i=0; i<8; i++)
                printf("%c", tmp);
        printf(" ");
}

问题解决了,见#13

一周热门 更多>