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

一、数组越界(数组溢出)

现象:单片机程序在函数中运行时,总是在运行到函数末尾,要跳出函数时,程序跑飞。

原因:数组越界(数组溢出),函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数,例如在函数中定义了一个数组ucDataBuff[10],这个数组只有10个元素,但是在函数中却有这样的语句ucDataBuff[10]=0x1a,这个语句是给数组的第11个元素赋值,:由于定义的数组只有10个元素,从而导致赋值语句中不知道把0x1a放到什么地方,从而导致程序跑飞。

解决方法:如果在调试程序时,发现程序总是在函数执行完毕时跑飞,多数情况是发生了数组越界(数组溢出)的错误,仔细检查函数中调用的数组是否存在越界(溢出)的情况。

二、中断服务程序缺失

现象:程序运行过程中总是跑飞。

原因:程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞。

解决方法:检查程序中是否存在打开了某个中断,但是没有相对应的中断服务程序。

三:看门狗复位

现象:在执行一段较为好费时间的程序时,程序跑飞,并且总是跳到复位位置处。

原因:程序中使用了看门狗,但是没有及时“喂狗”,从而导致看门狗复位,使程序直接跳到复位位置。

解决方法:根据程序运行时间,尤其是一定要计算清楚最耗时的那段程序的运行时间,然后准确设置看门狗的复位时长,定时“喂狗”,尤其是如果有死循环的情况,一定要在死循环中记得“喂狗”。

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

  1. tomcat 项目发布失败原因_项目启动tomcat失败的几种可能原因和解决方法

    总结一下tomcat启动问题,也给自己做个笔记 , 逐渐补充完善. 1.java配置路径有问题,请配置好jdk路径,具体参考java路径的配置吧. 2.项目未添加tomcat驱动, (一般提示The ...

  2. windows无法打开添加打印机_实用电脑知识:打印机无法打印的原因及解决方法...

    点击蓝字 关注我们 LaMi 拉米科技 ● 微信号 : LaMiKiJi_019 ● ● 分享科技资讯.电脑知识.电脑技巧,提供技术咨询.帮助● 有些用户刚安装打印机后,发现居然不能够使用,会怀疑是不 ...

  3. 微信小程序选择题制作_制作较小故事的三种选择

    微信小程序选择题制作 几周前我在以色列教研班时,人们遇到的最大问题之一就是大故事. 为什么这是一个问题? 如果您的故事很大,则无法显示进度,更重要的是,您无法进行更改. 对我来说,敏捷的重点是透明度- ...

  4. 笔记本卡顿不流畅是什么原因_电脑经常卡顿感觉不流畅的原因以及解决方法

    首先我们看一下引起电脑卡顿的原因有哪些: 1.电脑可能感染木马病毒. 2.硬盘使用时间过长,硬盘有坏道. 3.软件开太多导致内存不足. 4.电脑磁盘中冗余或者碎片过多. 5.CPU负荷过大,或者工作不 ...

  5. 资源不足的情况怎么设置sparkrdd并行度_监控录像机资源不足或达到上限的原因及解决方法!...

    在安装网络监控摄像机过程中,很多人遇到硬盘录像机画面上提升"资源不足"或性能"达到上限"的问题,新手遇到这样的问题会选择重启录像机,但是几次反复发现并不能解决. ...

  6. 硬件特征码已达到最大上限_监控录像机“资源不足”或“达到上限” 的原因及解决方法!...

    在安装网络监控摄像机过程中,很多人遇到硬盘录像机画面上提升"资源不足"或性能"达到上限"的问题,新手遇到这样的问题会选择重启录像机,但是几次反复发现并不能解决. ...

  7. 小程序模板报价_小程序模板价格_小程序模板使用多少钱

    小程序模板报价_小程序模板价格_小程序模板使用多少钱? 分享一个☞ 微信小程序模板平台,超60个行业的小程序模板免费使用. 在这个平台,小程序模板是免费使用的.收费部分是这个平台提供的小程序功能,档次 ...

  8. 应用程序错误电脑黑屏_电脑黑屏了怎么办,电脑硬件win黑屏的6大原因以及解决方法...

    Windows出现黑屏的情况,其实可以说是十分经典的一个电脑问题了,相信有很多朋友都遇到过.而Windows黑屏的情况,除了系统软件导致之外,还有可能是电脑硬件问题导致的,也会比较难解决.而小编也整理 ...

  9. 我的世界java老崩溃怎么办_我的世界总是崩溃怎么办 崩溃或者无法启动的的原因及解决方法介绍...

    川北在线核心提示:原标题:我的世界总是崩溃怎么办 崩溃或者无法启动的的原因及解决方法介绍 我的世界总是崩溃怎么办?我的世界作为许多玩家都十分喜爱的模拟经营沙盘类游戏,经常有玩家反映在玩我的世界的时候, ...

最新文章

  1. 孙立岩 python-basic: 用于学习python基础的课件(一二三四)
  2. jQuery select操作控制方法小结
  3. Windows下Libvirt Java API使用教程(二)- 接口使用说明
  4. 小学生 python教程-Python最佳学习路线图
  5. 物理综合:关于UDSM后端设计总结
  6. vdsm的SSL证书验证过程
  7. WM_CTLCOLOR消息
  8. python交互式绘图比较_python – 基于Tkinter和matplotlib的交互式绘图
  9. Vue报错,[WDS] Disconnected!
  10. Windows一般都用系统进程来加载内核模块
  11. 软件企业变更管理流程
  12. 台式计算机搜索不到无线信号,win7电脑搜不到无线信号怎么办_win7找不到无线网络怎么解决-win7之家...
  13. 用u盘linux系统视频,用U盘怎么安装Linux系统
  14. php 邮箱服务,laravel邮箱服务使用
  15. 我的RUST学习 ——【第九章 9-2】Result 与 可恢复的错误
  16. 使用tcgames电脑玩手机游戏助手时卡顿延迟问题解决方案
  17. 边云协同,边缘云更出彩
  18. 大数据实时计算流程介绍
  19. 腾讯云Java工程师一面 + 被捞一面 + 二面面经(附答案)
  20. js判断H5页面是否是在QQ\UC浏览器中打开

热门文章

  1. 如何用批处理文件删除某个文件
  2. python opencv 三维重建_三维重建 3D Reconstruction
  3. mongodb可视化工具 mac版 Studio 3T破解
  4. 让 Google 搜索到自己的博客
  5. 前端Html的全新认识
  6. java 经纬度 地图_百度地图地址经纬度互转,java代码(v2版本)
  7. 微信小程序weui在线入门教程-WeUi操作反馈-actionsheet弹出式菜单
  8. python能用来制作游戏吗_python 做游戏开发怎么样?
  9. MODIS标准数据产品类型
  10. Blender:如何翻转UV