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

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

3天内不再提示

致单片机程序总是跑飞怎么办

Q4MP_gh_c472c21 来源:个人图书馆 作者:xpxys99 2021-09-26 10:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单片机中有看门狗,长时间不喂狗,程序就会复位。为什么长时间不喂狗呢?这是因为程序跑飞了,抛开外部因素不谈。今天就和大家分享一下,单片机程序跑飞的几个原因。

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

01数组越界/溢出

现象:

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

原因:

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

解决方法:

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

0

2

中断服务程序缺失

现象:

程序运行过程中总是跑飞。

原因:

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

解决方法:

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

0

3

看门狗复位

现象:

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

原因:

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

解决方法:

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

责任编辑:haq

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

    关注

    6074

    文章

    45335

    浏览量

    663312
  • 看门狗
    +关注

    关注

    10

    文章

    607

    浏览量

    72573
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84745

原文标题:单片机程序又跑飞?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何解决MCU系统时钟频率改变导致的程序

    如何解决MCU系统时钟频率改变导致的程序问题
    发表于 12-05 08:20

    使用单片机系统时间不准怎么办

    使用单片机系统时间不准,怎么办?具体的是与晶振有关系还是MCU内部有关系,时间一长显示的时间就慢了
    发表于 12-05 07:51

    在使用Saiyuan的CW32单片机时,频率调整导致系统,影响正常运行,怎么解决?

    在使用Saiyuan的CW32单片机时,频率调整导致系统,影响正常运行。该怎么做?
    发表于 11-28 08:09

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

    在数字电路领域,单片机的复位是确保其正常启动与运行的重要环节,复位功能主要是将单片机内部状态重置为初始状态,避免程序运行过程中的混乱、
    发表于 11-26 08:09

    用IAP去升级,遇见现象怎么解决

    1、检查供电电压 确保单片机的供电电压稳定,且在正常工作电压范围内。 检查电源文波大小,确保Ldo供电电压和电流满足要求。 在单片机的vdda和vssa引脚接磁珠,各电源硬件接滤波电容。 2
    发表于 11-26 06:34

    请问单片机RAM空间不够用了怎么办

    单片机RAM空间不够用了怎么办
    发表于 11-25 08:09

    单片机应用系统的可靠性设计介绍

    指标。由于51单片机的指令系统是复杂指令集结构,致使其抗干扰性能较低,尤其用在工业控制的场合,如果不增加额外的抗干扰措施,甚至无法正常工作。单片机软件抗干扰设计的主要目的就是及时发现“
    发表于 11-25 06:21

    单片机可靠性差的解决办法

    1、软件陷阱是什么? 软件陷阱是一种用于捕获并处理单片机程序”现象的技术,当程序执行过程中因干扰而偏离正常轨道时,软件陷阱可及时发现
    发表于 11-25 06:10

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

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

    怎么测单片机系统频率

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

    单片机怎么烧程序

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

    STC单片机范例程序

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

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

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

    Deepseek上单片机?RT-Thread上通大语言模型

    前言单片机也能聊天?RT-Thread上通大语言模型在RT-Thread论坛上忽然看到了单片机和大模型对话的文章,想着春节期间看到大语言模型的热度持续攀升,恰巧手头有块RA8D1VisionBoard开发板,于是尝试着在Vis
    的头像 发表于 02-07 18:59 2364次阅读
    Deepseek上<b class='flag-5'>单片机</b>?RT-Thread上<b class='flag-5'>跑</b>通大语言模型

    基于单片机的磁伸缩位移传感器的应用

    伸缩位移传感器高精度、长寿命,适用于恶劣环境,但存在信号干扰等问题。采用单片机处理后,实现远程传输和高精度测量。未来发展方向是模块化、数字化、抗强干扰和温度补偿技术。
    的头像 发表于 02-05 14:27 925次阅读
    基于<b class='flag-5'>单片机</b>的磁<b class='flag-5'>致</b>伸缩位移传感器的应用