0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机程序死机,可能是这几个原因

如意 来源:CSDN 作者:EDA365???? 2020-06-19 17:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;

单片机程序死机,可能是这几个原因

2、中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。

3、地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机,这种情况下如果死机说明运气好,否则后面不知道发生什么头疼的事。

4、无条件的死循环;比如使用while(x);等待电平变化,正常情况下x都会变成0,就怕万一,因此最好加上时间限制;

5、看门狗没有关闭。有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先应该显式清除看门狗再关闭看门狗;

6、堆栈溢出。最难查找的问题,对于容量小的单片机,尽量减少函数调用层级,减少局部变量,从而减少压栈的时候所需的空间。当你把以上几条都试过不能解决问题,试一试把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量,试一试说不定就可以了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    614

    浏览量

    73334
  • 单片机系统
    +关注

    关注

    1

    文章

    73

    浏览量

    104642
  • 死机
    +关注

    关注

    0

    文章

    17

    浏览量

    8807
  • 华秋DFM
    +关注

    关注

    20

    文章

    3516

    浏览量

    6634
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电机转子磁铁脱落的原因主要是这几个

    电机在长期运行过程中,转子磁铁出现脱落的现象并不少见,这不仅影响电机性能,还可能导致整机损坏,那么导致磁铁(磁钢)脱落的原因有哪些呢?小编整理了下,无非这几个原因。1、胶水问题粘接剂选
    的头像 发表于 05-11 15:36 142次阅读
    电机转子磁铁脱落的<b class='flag-5'>原因</b>主要是<b class='flag-5'>这几个</b>了

    纽扣电池给单片机供电问题

    差异性,导致单片机的供电可能是3.1V,也可能是2.9V,这样的差异会影响到单片机的基准电压导致adc采样值不稳定。对于这种情况,我该如何处理,使得使用不同纽扣电池时,adc采样值尽
    发表于 03-14 14:57

    单片机程序跑飞死机的几种原因分享

    在使用单片机过程中,经常会出现程序运行一段时间后,不能够正常相应的情况。一般分为软件原因和硬件原因,其中硬件原因比较容易查,软件
    发表于 01-21 07:34

    这几个单片机技巧如果不了解,真的很难再进阶

    效率的开发,小编总结了几个技巧,帮助大家进阶,在优秀的开发者路上越走越远! 如何提高C的代码效率? 用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最
    发表于 01-05 07:22

    单片机解密是什么?

    单片机解密是什么? 单片机解密又叫单片机**,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但已经成 了习惯叫法,我们把CPLD解密,DSP解密都习惯称为
    发表于 12-30 08:19

    掌握这7个规则,单片机开发没难度

    的复位信号可能会产生什么样的后果?你有没有发现过你所设计的单片机系统,每次重新上电启动后,数据变得乱七八糟,并且每一次现象并不相同,找不出规律,或者有时候干脆不运行,或者有时候进入一种死机状态,有时候
    发表于 12-24 06:07

    单片机的入门准备

    单片机入门篇 1、学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理; 2、学习
    发表于 12-22 07:39

    单片机程序的执行

    更快的SRAM中,以得到更快的执行速度。而对于,单片机而言工作频率也就几M,几十M,从Flash中与从RAM中读的差异可能并不明显,不会成为程序执行的瓶颈。 而对于PC而言,Flash的速度太慢
    发表于 12-04 06:20

    单片机如何选择复位方式?

    在数字电路领域,单片机的复位是确保其正常启动与运行的重要环节,复位功能主要是将单片机内部状态重置为初始状态,避免程序运行过程中的混乱、跑飞或死机等问题,使系统随时准备接受并执行各种指令
    发表于 11-26 08:09

    单片机烧录原理是怎样的?辉芒微单片机烧录程序详细步骤讲解

    烧录(Programming)就是把 .hex/.bin 文件里的机器码搬运进单片机片内 Flash 的过程。辉芒微(FMD)单片机内部有一块 自举 BootROM,上电时会先跑这段程序;如果检测
    的头像 发表于 09-17 16:14 3435次阅读
    <b class='flag-5'>单片机</b>烧录原理是怎样的?辉芒微<b class='flag-5'>单片机</b>烧录<b class='flag-5'>程序</b>详细步骤讲解

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 1204次阅读

    单片机怎么驱动电机?

    、高效的控制。       单片机本身的输出电流和电压较小,通常无法直接驱动功率较大的电机,这是因为电机在启动和运行时需要较大的电流,若直接由单片机供电,可能会因过载损坏单片机。因此,
    的头像 发表于 07-25 09:31 1463次阅读

    单片机怎么烧程序

    单片机程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机
    的头像 发表于 07-23 11:47 2246次阅读

    STC单片机范例程序

    电子发烧友网站提供《STC单片机范例程序.zip》资料免费下载
    发表于 06-04 16:27 10次下载

    2.4寸TFT彩屏配套测试程序-51单片机

    如题,2.4寸TFT彩屏配套测试程序-51单片机
    发表于 06-04 16:26 0次下载