自己将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;