[其他ST产品] STBOX1_PRINTF 似乎不支持格式 %f ?

[复制链接]
685|16
 楼主| Hitomi22 发表于 2025-5-9 10:00 | 显示全部楼层 |阅读模式
如题,STM32CUBE IDE中的STBOX1_PRINTF 似乎不支持格式 %f ?
elephant00 发表于 2025-5-9 11:46 | 显示全部楼层
用 sprintf 格式化字符串。
cr315 发表于 2025-5-9 11:47 | 显示全部楼层
可以考虑使用其他调试输出方法,通过串口输出,或者使用 printf 函数。
jcky001 发表于 2025-5-9 13:00 | 显示全部楼层
用自定义的浮点数输出函数。
公羊子丹 发表于 2025-5-25 07:34 | 显示全部楼层
默认确实不支持 %f,需要加上 -u _printf_float 链接选项才行。
周半梅 发表于 2025-5-25 07:35 | 显示全部楼层
看下你的 linker 设置,有没有加上浮点支持。
帛灿灿 发表于 2025-5-25 07:35 | 显示全部楼层
%f 不生效通常是因为用的是 nano libc 版本,没启用 float。
童雨竹 发表于 2025-5-25 07:36 | 显示全部楼层
我踩过这个坑,加了 -u _printf_float 之后就能用了。
万图 发表于 2025-5-25 07:37 | 显示全部楼层
可以用 sprintf 转成字符串,再输出看看效果。
Wordsworth 发表于 2025-5-25 07:38 | 显示全部楼层
STBOX1 的库文件可能默认没有链接带 float 的 printf 实现。
Bblythe 发表于 2025-5-25 07:39 | 显示全部楼层
检查下 map 文件,看是否用了 printf.o 还是 vfprintf_float.o。
Pulitzer 发表于 2025-5-25 07:40 | 显示全部楼层
如果空间吃紧,也可以考虑把 float 转成 int 乘个 100 再除。
Uriah 发表于 2025-5-25 07:41 | 显示全部楼层
有时候用重定向时也要确认用的 printf 是正确版本。
Clyde011 发表于 2025-5-25 07:42 | 显示全部楼层
实在不行就用 snprintf + itoa 自己拼一个简单的浮点输出。
t60yz 发表于 2025-5-31 23:45 | 显示全部楼层
为了减小代码体积,newlib-nano 的 printf() 默认不包含 浮点格式化支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

60

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部