CLion 在stm32 环境下使用重定向printf方法,导致float数据无法输出的解决办法

使用CLion开发stm32的情况下,重定向printf后,只能格式化字符串和整数输出,浮点型数据无法输出,根本原因是eabi 编译器为了节省空间,删减了一部分代码

方法一:

打开CMakeLists.txt,找到 在这里插入图片描述
就会发现其中有一个:-specs=nano.specs 这个参数的目的就是使用一个较小的库来代替,如果把这个删掉,然后重新加载cmake,

因为cmake文件有缓存,所以先清除缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样的话,发现内存占用达到了59.2% ,之前占用时19%左右,所以这种方法不是优先考虑

方法二:

打开CMakeLists.txt,在这里插入图片描述
在此处最后加上-u _printf_float,标识仍然使用删减库,但是浮点型输出例外.然后仍然和上面一样操作,先清除cmake缓存进行加载,然后重新编译在这里插入图片描述
这次变成了34.28,虽然相比最开始增加了这么多,但是为了输出浮点型也没办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值