ucos平台上 printf 输出浮点数据出错

自己将UCOS移植到STM32中。在某个任务中用串口输出调试信息:ADC采集的电压值,浮点型数据。

但是在串口观察到的数据为要么是000.00格式,要么是是乱的数字中间添加很多0,甚至还有正负2.000000。调试中将该浮点数放到MDK的WATCH窗口中观察,确实一个符合要求的值,比如:0.435864。

以下是在网上找到的解决办法,就是在要求任务堆栈8字节对齐即可。但是解决问题的过程自己没看懂!先放在这,经常看看。


原因:自己没看明白

我的问题刚开始的时候以为是uCOS任务堆栈太小了,但是开到了4096,还是不行,所以如下添加:
__align(8) static OS_STK AppTaskXXXStk[4096];
就可以了。
正在疑惑中,以下是网络上摘录的,应该是数据对其问题。
昨天跟一个朋友讨论一个问题:

float n1=3.0;

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值