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

软件导致单片机死机的原因

1、指针异常

指针未初始化或者野指针导致正常数据被篡改。如果程序区被修改,会导致程序直接跑飞;如果数据区被修改,会导致数据异常引起程序运行错误。

2、缓冲区溢出

实际接受的数据超过了缓冲区长度,导致后续正常数据被篡改。

或者操作数组的时候下标溢出

3、等待标志位

没有增加超时判断,正常情况下很快就能出来,但实际运行时标志位一直满足while条件,导致程序一直死循环等待标志位。处理方法是增加超时判断,超过一定时间主动报错退出。

4、堆栈溢出

常见于容量小的单片机,重复中断、函数调用导致超出堆栈空间,正常数据被改写。该问题最难查,有一定特殊性,很难稳定复现

5、中断异常

打开了某个中断但是没有编写中断响应函数导致进入fault,或者没有清除中断标志导致重复进入中断。

硬件导致单片机死机的原因

1、电源不稳定
主要表现为纹波过大、电压过高、过低
2、晶振失振
晶振电路设计有问题,导致温度变化后,晶振失振
3、外部干扰
外部干扰导致导线上电平变化,或者直接导致单片机内部模块运行异常。常见于一些干扰较为严重的场合,可通过电磁干扰性的实验复现。现象是在特定环境下容易出现,实验室条件下很难复现。

单片机程序跑飞死机的几种原因相关推荐

  1. 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法

    今天在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象.原因及解决方法. 一.数组越界(数组溢出 ...

  2. win7计算机总是卡住,win7系统电脑经常死机的几种原因及修复方法

    一些用户在使用win7系统电脑的过程中,可能会碰到电脑经常死机的情况,相信很多用户都有遇到过.那么win7系统电脑经常死机怎么办呢?导致win7系统电脑经常死机的原因有很多种,可能是硬件或软件问题.遇 ...

  3. php页面花屏,window_win7电脑突然花屏死机的几种原因和快速解决方法(推荐),win7系统电脑突然发生花屏死机 - phpStudy...

    win7电脑突然花屏死机的几种原因和快速解决方法(推荐) win7系统电脑突然发生花屏死机现象相信很多用户都有遇到过,特别是在玩游戏或者看电影到精彩部分的时候就发生花屏或死机现象了.许多电脑小白都在为 ...

  4. 困扰一周的奇葩bug:重复相似代码多,导致单片机程序跑飞

    今天是个好日子,困扰一周的bug终于解决了,迫不及待将这个奇葩问题分享给各位朋友~ 硬件环境: 国产MCU:华大HC32L130 问题描述: 最近做一款基于Modbus协议的三通道温度采集模块,程序设 ...

  5. 单片机程序跑飞的原因

    1.意外中断. 是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象. 2. 中断变量处理不妥. 若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译 ...

  6. 游戏机工业计算机死机,引起死机的五种原因分析及解决!

    不少网友老抱怨电脑经常死机,但是不知道是什么原因造成的电脑频繁死机,死机的时候一般情况是蓝屏,或者画面定格鼠标键盘无反应.引起电脑经常死机不一定是病毒问题引起的,还有可能是硬件温度过高,或者系统文件丢 ...

  7. 【跑飞、死机】单片机 msp430程序跑飞原因和解决方式积累

    目录 单片机 msp430程序跑飞原因和解决方式积累 MSP430 数组填充越界引起的栈溢出 导致程序跑飞 [单片机重启]MSP430重启/频繁重启/跑飞 原因分析 单片机 msp430程序跑飞原因和 ...

  8. 教你如何找到导致程序跑飞的指令

    调试嵌入式程序时,你是否遇到过程序跑飞最终导致硬件异常中断的问题?遇到这种问题是否感觉比较难定位?不知道问题出在哪里,没有办法跟踪?尤其是当别人的程序踩了自己的内存,那就只能哭了:( 今天在论坛上看有 ...

  9. win7打开计算机死机,怎么样解决Win7系统运行程序引起的死机问题

    Win7系统不仅需要使用到电脑中自带的一些程序,同时,也需要在win7旗舰版电脑中有选择的自己去安装一些程序.但是经常有用户会碰到Win7电脑突然跳出运行程序未响应,出现电脑死机的情况,特别是开的浏览 ...

最新文章

  1. android工作注意事项
  2. 计算机视觉方向简介 | 三维深度学习中的目标分类与语义分割
  3. [译]MediaSession MediaController – Android TV 应用开发教程九
  4. entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法
  5. unity太空射击源码_引擎入门 | 创建双杆射击游戏(入门 2)
  6. 电子测量与仪器第四版pdf_电子技术经典资料汇总:模电篇800M
  7. div+css 怎么让一个小div在另一个大div里面 垂直居中
  8. android之三星手机权限问题解决方案
  9. Windows权限维持1:账号隐藏
  10. Angular快速上手
  11. LEDEN LG920使用方法
  12. python求斐波那契数列,阶层
  13. Python绘制3D图形:Axes3D
  14. mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决
  15. sklearn.metrics 用法详解
  16. RK3128适配RTL8723DU
  17. 基于深度学习lstm_基于LSTM的深度恶意软件分析
  18. 培养好习惯是很难,但也有好方法
  19. 红心大战安卓单机版_红心大战下载_红心大战手机版下载【官方安卓版】-太平洋下载中心...
  20. android支持多种屏幕

热门文章

  1. Studio 3T 破解教程 mogodb
  2. 人工神经网络模型定义,人工神经网络基本框架
  3. python中dic.get用法
  4. 以美颜sdk为例,详解sdk接入流程
  5. Elastic 与 AWS 和解、英伟达收购 ARM 失败、英特尔加入RISC-V 组织|开源月报 Vol. 03...
  6. 局域网 git服务器 虚拟机,centos71虚拟机搭建git服务器
  7. Opencv基于改进VGG19的表情识别系统(源码&Fer2013&教程)
  8. HDMI切换器的各种版本能不能互通?
  9. R计算两列数据的相关系数_Python+pandas计算数据相关系数(person、Kendall、spearman)...
  10. python九九乘法表的实例_python九九乘法表的实例