① 请教单片机程序跑飞的问题
程序异常,很多情况都是软件代码有问题,常见的就是RAM数据地址溢出
比如定义的table[10],在程序访问的table[i]中i的值>9
所以你还是先仔细查看一下你的代码有没有问题,
其次就是电路板上有强的干扰,不过现在的单片机基本上干扰引起的往往只是复位,很少见到程序跑飞的情况
② 单片机跑飞了,怎么解决
设计一个“看门狗”,或者设计一些能够让程序在出错时回归正常的错误应急机制——“软件陷阱”,这些都是要依你自己的程序的功能而设计,所以还是自己多想多试试的好,一来可以积累经验,二来可以提高自己编程的能力,三来可以提高自己分析和解决问题的能力。何乐而不为呢!?
③ 51单片机程序代码太多时程序为什么有时会跑飞
首先要确定是否为程序本身BUG,可用IDE环境仿真,去掉环境变数
确定程序合理后再排查硬件干扰,并加入软或硬狗
每步都妥善解决就不会有问题了
④ 单片机程序老是跑飞怎么回事
最常见的是堆栈溢出,
你用操作系统没?
你操作堆栈没?
你用了汇编没?
你的函数/中断 调用进入死循环没?
你的提问 跑飞并没有明确说明现象。所以一般人很难回答
⑤ 怎么我的单片机程序老跑飞(STC的)而且跑飞后再写也写不进去。
1、你好我想问你知道跑飞的意思吗,程序跑飞一般是指PC指针不按照你的程序思路去指向了,比如你退出中断的时候应该回到之前的那个压栈PC处却没有,这样的现象我们认为程序跑飞。
2、对于程序跑飞一般我们采用看门狗的方式来让程序复位,防止程序跑飞造成严重后果。
3、看不到现象不一定是跑飞,不过STC这类片子没有仿真器支持的吧一般,如果是AVR或者PIC或者430用仿真器看看PC就知道了。
4、可以将某个口的输出特征电平,用于检测程序是否跑飞,运行后检测该口的电平是否有差异即可。
5、程序跑飞了是可以在写入的,除非是芯片损坏了,是不是电源或者复位电平等导致芯片挂了,所以你认为是程序跑了一遍就挂掉了。
6、打好基础,搞清楚细节问题,对你很有帮助,比如看门狗如何使用等这类问题,编程谁都会的,外面一大把都是。什么高中毕业,大专生,就连现在本科生都去抢单片机的饭碗,搞不懂。
7、系统的学习,不要只看到片面的东西,学会自己的一套分析问题的方式。
8、打字很累,有时间hi我
⑥ 单片机程序跑飞了,大家有什么好办法没
单片机使用隔离电源供电,继电器控制端使用光耦隔离,光耦的电源也要使用隔离电源供电。 就用当前的电源,,可以在光耦的电源上串入22uH的电感,单片机VCC与GND之间接入尽可能大的电容,同时增加0.01-0.1uF的涤纶电容,单片机电源和地也串入棒感。单片机控制继电器的引脚串接22欧左右的电阻。光耦电源隔离一般用DC/DC,隔离度高,体积小,只是会增加点成本。用看门狗的话启动复位会让RAM区的数据丢失。是这样的吗。是的,除非你把数据写到单片机外的存储器中,如24C02之类的。
⑦ 单片机跑飞的原因有哪些硬件的、软件的、以及怎样防止这种事情的发生
单片机跑飞的原因很多,硬件的软件的都有:
1、硬件原因:电源不稳,纹波很大,浪涌很多都可能造成;电磁干扰过强也很容易造成;强弱电线缆混杂在一起很容易造成等待。
2、软件原因:压栈和出栈不等造成;主程序没有循环等待。
⑧ 51单片机程序跑飞什么意思怎么解决
程序跑飞就是程序执行错误,程序不知道运行到哪里,这就需要设定标志位,寻找跑飞的地方,再改
⑨ 单片机程序跑飞怎么去查找原因呢
对于简单的错误,如果能初步猜测到执行哪个函数后跑飞的,那就可以直接单步调试,看看什么原因,不外乎指针非法操作,数组越界之类的。
还有一种笨方法,注释函数,如果注释函数后bug不再现,那么就可以按照刚刚说的单步进去这个函数,看看有什么问题。
更有效的但是也对水平要求更高的方法可以看一下别人的方法。
下面是几个链接,可以看看,学习一下。
记一次STM32中HardFault问题的调试解决
如何找到导致程序出现HardFault
STM32硬件错误HardFault_Handler的处理方
定位产生HARD FAULT之前的代码