使用stm32f103卡死

2019-07-14 14:37发布

大家好。我使用STM32f103工作中发现卡死问题。temp = -1800 * a /b;
然后out(temp);
执行这种代码,发现运行一定次数之后就卡死了,该段代码放在中断中就无法返回。如果放在主循环中,主循环卡死。如果我把temp换成一个常数或者简单的单次运算,就不会死机。请问这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
shugan2011
1楼-- · 2019-07-15 01:33
本帖最后由 select326 于 2018-4-25 15:51 编辑

占坑,不想说啥
跨界F16
2楼-- · 2019-07-15 05:57
楼主 需要发一下整个temp如何处理的代码 有可能是溢出
Purchase88
3楼-- · 2019-07-15 08:43
60user182 发表于 2019-1-14 20:11
能否发下更全的代码,比如temp,a,b的类型,以及死机时各个变量的值

仿真下吧,应该不难定位

都是long类型的运算,只剩下systick中断在运行,因为这个级别最高了。
Purchase88
4楼-- · 2019-07-15 12:42
 精彩回答 2  元偷偷看……
60user61
5楼-- · 2019-07-15 16:16
除0了吧?
b会不会出现0?
Purchase88
6楼-- · 2019-07-15 17:34
跨界F16 发表于 2019-1-14 20:33
楼主 需要发一下整个temp如何处理的代码 有可能是溢出

theta_temp = -1800 * (stepper.current_step_number)/(stepper.micro_steps)
这个micro_steps目前是个定值8,然后current_step_number是从0开始累加的数,有的时候到了590就卡死了。

一周热门 更多>