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

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

相关阅读

为什么说“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”?

工厂里流行的口头语,“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”下面我们就来了解一下。 车工一旦接单,整个切削加工过程都是特别紧张忙碌的。每一个步骤都不能错,...
2023-06-11
为什么说“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”?

电气安装基础知识,很好的电气基础学习资料,新手必备!

在建筑工程中,电气安装是重要的组成部分,对整个建筑工程具有重要的现实意义。那么你对电气安装了解多少呢?以下是由小编整理关于电气安装基础知识的内容,希望大家喜欢! 电...
2023-06-11
电气安装基础知识,很好的电气基础学习资料,新手必备!

电磁炉的工作原理与常见故障

一、原理简介 电磁炉是应用电磁感应加热原理,利用电流通过线圈产生磁场,该磁场的磁力线通过铁质锅底部的磁条形成闭合回路时会产生无数小涡流,使铁质锅体的铁分子高速动动产...
2023-06-29
电磁炉的工作原理与常见故障

电梯主电源三相电压不同怎么办?电梯三相稳压哈!

电梯主电源三相电压不同怎么办?电梯系统中各种电器设备的工作都需要稳定的电流和电压,否则会导致电梯无法正常运行、设备损坏、甚至故障发生。因此,电梯稳压器 在电梯系统中...
2023-08-24
电梯主电源三相电压不同怎么办?电梯三相稳压哈!

直流电机的结构,看这一篇就够了

直流电动机和发电机其结构相同,由可旋转部分和静止部分组成,可旋转部分称为转子(或电枢),静止部分称为定子。 直流电机的结构见图1。 图.1 直流电机的结构 1—风扇;2—机座...
2023-06-13
直流电机的结构,看这一篇就够了

热销商品

304不锈钢连胶条喉箍R型固定夹管夹U型电缆电线连胶条卡箍橡胶减

304不锈钢连胶条喉箍R型固定夹管夹U型电缆电线连胶条卡箍橡胶减震,是一种高效、耐用的管路连接解决方案。该产品采用高品质304不锈钢材料,具有优异的耐腐蚀性和强度...
0.29

电焊机焊把线电焊线国标电缆线16 25 35 50 70平方纯铜焊把线

电焊机焊把线(电焊线)是焊接作业中的关键连接线,采用国标纯铜导体,导电性能优异、电阻低、发热少,确保电流稳定传输。常见规格包括16、25、35、50、70平方毫米,适用于不...
3.8

塑料镊子 黑色平头弯头尖头扁嘴圆头塑料防静电镊子 碳纤维镊子

塑料镊子是一种轻便、耐腐蚀且防静电的精密工具,广泛应用于电子、医疗、实验室及精密装配等领域。黑色款式多采用碳纤维增强塑料材质,兼具高强度与导电性,有效防止静...
0.6

阻燃尼龙编织网管 PET伸缩网套管 电脑机箱电线避震蛇皮管 10米

阻燃尼龙编织网管(PET伸缩网套管)是一种高性能电线保护套管,采用环保PET材料经精密编织而成,具有优异的阻燃、耐磨、抗拉伸及柔韧性能。其独特的蛇皮状结构可自由伸缩...
4.01

萝卜头螺丝刀磁性两用伸缩螺丝刀一字十字梅花平口短小改锥

萝卜头螺丝刀是一款多功能、便携实用的手动工具,集一字、十字、梅花(星型)等多种刀头于一体,采用磁性设计,可牢固吸附螺丝,提升操作效率。其独特的伸缩结构让刀头可灵活...
3.28

网站栏目