单片机程序死机原因查找方法

时间:2023-03-11作者:佚名
单片机程序死机,跑飞了可以从以下几个方面查找原因:
1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象
2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
3. 地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机,这种情况下如果死机说明运气好,否则后面不知道发生什么头疼的事。
4. 无条件的死循环;比如使用while(x);等待电平变化,正常情况下x都会变成0,就怕万一,因此最好加上时间限制;
5. 看门狗没有关闭。有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先应该显式清除看门狗再关闭看门狗;
6. 堆栈溢出。最难查找的问题,对于容量小的单片机,尽量减少函数调用层级,减少局部变量,从而减少压栈的时候所需的空间。当你把以上几条都试过不能解决问题,试一试把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量,试一试说不定就可以了。

相关阅读

变频器越来越普遍了,普通电机可以改变频控制吗?还真不能

交流笼型异步电机是当下应用作为广泛的电机类型,因其结构简单、运行可靠、维护方便、控制便利、密闭容易、适用场合广泛、性价比高等优点,成为众多传动的首选动力来源。 变频...
2023-04-01
变频器越来越普遍了,普通电机可以改变频控制吗?还真不能

伺服电机安装使用注意事项

一、伺服电机 油和水的保护 A:伺服电机可以用在会受水或油滴侵袭的场所,但是它不是全防水或防油的。因此,伺服电机不应当放置或使用在水中或油侵的环境中。 B:如果伺服电机...
2023-03-21

异步电动机滑台可以运动的程序

大家好!每天学一点,学习更轻松。关注我,感谢大家为我点赞。 我们今天来看一个案例:两台电动机拖动两台滑台。初始状态滑台A在左边,限位开关SQ1受压,滑台B在右边,限位开关...
2023-03-29
异步电动机滑台可以运动的程序

这样接线才不会短路-老电工接线的6个步骤曝光,看过的人都学会了

家庭装修中包括很多工程项目,其中最重要的是要说水电改造。这是一次性需要做好的隐蔽工程,如果一次做不到位的话,那么后期维修起来就是非常吃力的事情。耗时耗力不说,关键...
2023-06-11
这样接线才不会短路-老电工接线的6个步骤曝光,看过的人都学会了

一个因为拼版引发的MLCC电容失效故障分析

MLCC:积层陶瓷晶片电容(Multiplayer Ceramic Chip Capacitors) MLCC贴片电容是现在使用比较多的电子元器件,采用陶瓷多层堆叠,由于陶瓷自身特性,受机械冲击或者热冲击容易产生裂纹,会...
2023-03-31

热销商品

FEITA 镊子碳纤维合成塑料防静电无尘净化塑胶手动工具镊子93302

FEITA镊子93302采用高强度碳纤维合成塑料材质,兼具轻量化与耐用性,适用于精密操作场景。其独特的防静电设计有效避免静电对电子元件的损害,广泛应用于半导体、光学、...
1.2

江南国标rvv铜芯电缆软线3 4多芯平方rvvp护套信号屏蔽线线缆电线

江南国标rvv铜芯电缆软线34多芯平方rvvp护套信号屏蔽线线缆电线,是一种高性能的电缆产品,适用于各种信号传输和控制场合。该电缆采用优质铜芯,具有优良的导电性能和...
1.96

内六角扳手套装单个内六方螺丝刀进口S2款加长特长平头内6角2.5mm

这款进口S2材质内六角扳手套装,专为精密机械维修与装配设计,采用高品质S2合金钢制造,具备卓越的硬度、耐磨性与抗扭强度,有效防止使用过程中断裂或变形。套装中包含2....
1.4

橡胶条U型防撞包边条橡胶卡条玻璃嵌条配电箱机柜u型条密封条封王

橡胶条U型防撞包边条是一种多功能密封与防护配件,广泛应用于配电箱、机柜、玻璃门窗及各类设备边缘。采用优质橡胶材质,具备优异的弹性、耐老化、防水防尘和抗冲击...
0.8

10副装护目镜打磨劳保防飞溅男女骑行机械实验防风沙灰尘防护眼镜

这款10副装护目镜专为多场景防护设计,适用于打磨、机械加工、实验操作、骑行及户外作业等环境。采用高透光防雾镜片,有效抵御飞溅物、风沙、灰尘及化学液体喷溅,保障...
19.8

网站栏目