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

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

相关阅读

电线够粗功率不大,开关却频繁烧毁?根源都在这些细节里

干电工的都遇过这种费解的情况:电路布线时特意选了粗线径,带载设备的功率也完全在额定范围,可开关却接二连三被烧毁,换了新开关也撑不了多久,反复检修却找不出明显问题,成了不少电...
2026-04-18
电线够粗功率不大,开关却频繁烧毁?根源都在这些细节里

关于电厂哪些有趣的事?细思极恐,战战兢兢

电厂运行一线虽然工作是比较枯燥的,天天要么是检查设备,要么做定期工作,要么启停机组。真的是把一年过成了一天,但是说实话,现在哪一个行业不是这样呢? 每一个工作都有其...
2023-06-25
关于电厂哪些有趣的事?细思极恐,战战兢兢

送水泵变频器电路控制

电路的学习是无止境的,但是对于常见电路,我们可以根据电路图配置配电柜,配电柜其实就是电路图。 今天我们介绍的电路并不是在一个配电箱内,它涉及了三个控制电路,其中电源...
2023-05-22
送水泵变频器电路控制

配电网可靠性评估及优化技术

据统计,大约有80%的停电事故缘于配电网故障。同时,为提高配电网规划、建设及改造的科学决策水平,合理利用资金,有必要利用基于概率方法的配电系统可靠性评估技术和综合考...
2023-07-05
配电网可靠性评估及优化技术

干货丨34个电气控制接线图、电子元件工作原理图

1、可控硅调速电路 2、电磁调速电机控制图 3、三相四线电度表互感器接线 4、能耗制动 5、顺序起动,逆序停止 6、锅炉水位探测装置 7、电机正反转控制电路 8、电葫芦吊机电路 9、单...
2023-06-11

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目