Ⅰ 单片机程序跑飞怎么去查找原因呢
对于简单的错误,如果能初步猜测到执行哪个函数后跑飞的,那就可以直接单步调试,看看什么原因,不外乎指针非法操作,数组越界之类的。
还有一种笨方法,注释函数,如果注释函数后bug不再现,那么就可以按照刚刚说的单步进去这个函数,看看有什么问题。
更有效的但是也对水平要求更高的方法可以看一下别人的方法。
下面是几个链接,可以看看,学习一下。
记一次STM32中HardFault问题的调试解决
如何找到导致程序出现HardFault
STM32硬件错误HardFault_Handler的处理方
定位产生HARD FAULT之前的代码
Ⅱ 单片机运行一段时间后,不按原程序执行怎么回事/
据我多年的经验,出现这种问题,原因一般有三:
1 你的软件为编写上的BUG,比如你想实现功能A,但是,因为你的程序写的有问题,例如:算法有问题,有语法上的漏洞,你思考的不全面等等,在某种条件下可以实现功能A,但是当条件有一点改变,导致程序与你执行的不一致。
2 单片机硬件受到干扰,例如单片机周围有强电,或者单片机用的继电器,但是电路没处理好等等,导致程序跑飞了。
3 内存的溢出,比如你声明了一个数组A[],但是在程序执行的过程中,你的程序不严谨,不慎让调用A[]时超过了它的极限,等等。
就我个人的经验,第1条原因是你出现 这个现象最主要的原因,其次是第3条原因,第2条原因一般不太容易出现,除非是硬件是新手做的。
建议你从第1,2两条着手查找原因。
Ⅲ 什么叫单片机的程序“跑飞”
用看门狗,跑飞了一回重新启动,干扰把电源做好一点,滤波做好一点,如果有必要可以加个金属屏蔽罩之类的,单片机选择抗干扰性能好点的,比如avr,stc这些,根据对c8051f系列的抗干扰测试,这单片机不适合在干扰大的地方使用,其他430单片机没测试过,还不知道抗干扰怎么样。谢谢
Ⅳ 绋嫔簭璺戦炰简
濡傛灉浣犵‘瀹炴槸鐢垫簮镄勯梾棰 灏辨槸璇 鐢ㄤ简浣犵殑鐢佃矾 绋嫔簭灏遍 鎹㈠洖鐢垫睁灏卞ソ 璇存槑鏄浣犺嚜宸卞仛镄勭数婧愮数璺链夐梾棰
涓鑸𨱒ヨ磋繖绉嶆儏鍐靛緢濂 锲犱负浠跨湡鍣ㄥ圭数婧愯佹眰涓岖畻澶楂 鐢靛帇杈惧埌瑕佹眰灏卞樊涓嶅
浣嗘槸浣犺佹娴嬩竴涓嬩綘镄勮緭鍑虹数娴佸ぇ灏 绠椾竴涓嫔姛鐜 鏄涓嶆槸澶澶ф垨钥呭お灏 铹跺悗灏辨槸浣犵殑鐢垫簮绾规尝绯绘暟 鏄涓嶆槸澶熺ǔ瀹 濡傛灉鐢垫簮璺冲彉寰埚ぇ 鍙鑳藉紩璧疯窇椋
鎴戝缓璁浣犲逛綘镄勫崟鐗囨満鐢佃矾锅氢竴涓嬫娴 渚嫔备綘镄勫崭綅绾挎槸涓嶆槸鑳芥e父宸ヤ綔 鎴戞劅瑙夌▼搴忚窇椋炲拰浣犵殑绋嫔簭鍜岀数璺鍏崇郴浼氩ぇ镣 鍜岀数婧愮殑鍏崇郴鐩稿硅佸皬