我正在为SAM3N arm cortex-M3微控制器编写一个C程序。当我尝试打印浮点数时,它只打印'f'。
示例:printf("%f",43.12);
仅打印f
,而不是43.12
。
但使用整数打印效果很好。
如何启用浮动的完整打印?我知道默认情况下,编译器禁用浮动打印以减少代码大小(即看起来,它们链接了缩减版本)。另请注意,makefile中没有使用CFLAGS=-Dprintf=iprintf
。
工具详情:
答案 0 :(得分:6)
您可以尝试在链接器设置中添加以下选项
-lc -lrdimon -u _printf_float
它在ARM-CORTEXM0中适用于我
答案 1 :(得分:1)
可能是因为您的平台/ libs不支持%f
的{{1}}格式说明符。
作为第一种方法,您可以为浮动/双打滚动自己的printf:
printf/sprintf
答案 2 :(得分:0)
在默认情况下禁用浮点数的编译器中,默认库可以处理它们是不常见的。查看您的引用,您将找到有关如何使用浮点支持重新编译相应库的信息,或者(更有可能)在何处查找已使用它构建的版本。