STM32F302R8 计算出错问题

2019-03-23 17:44发布

ti.png tsi.png
如上两张图所示。
本来只是一个简单的除法求解问题。
原来一直以为是除法计算错误。
但通过这两张图,发现好像不是除法本身的问题,而是这个变量temp的问题。
这个temp是函数内变量,定义为        volatile float temp;为了排除编译问题还特意加了volatile。
但是在用keil里面的go to defined 查找temp的定义时,却弹出了三个不同的定义,其他两个都是别的函数内定义的局部变量。
不知道为何也会一起弹出,而不直接定位到该函数内的定义处。这也可能是别的原因吧。

这个temp在此函数中有多处使用,做为中间变量存放中间值。
但在此计算处,根据仿真结果,可知道,此处temp并没有进行该除法的计算赋值,而是直接读取了相应的变量值做为判断使用。

这个错误,不光是仿真时能发现,而是在实际完全在nucleo板上运行时,这个错误也是存在的。
具体原因就是这个temp的错误,导致该函数的返回值错误,从而整个程序运行出错。

从这两张图看,有点像是函数内存溢出?
但程序数据并不多RW data只有176字节

此是为何
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
jlhgold
1楼-- · 2019-03-24 01:16
 精彩回答 2  元偷偷看……
jplzl10000
2楼-- · 2019-03-24 04:44
jlhgold 发表于 2017-4-3 12:50
换个变量名

....一样的啊

一周热门 更多>