Ⅰ 單片機程序跑飛怎麼去查找原因呢
對於簡單的錯誤,如果能初步猜測到執行哪個函數後跑飛的,那就可以直接單步調試,看看什麼原因,不外乎指針非法操作,數組越界之類的。
還有一種笨方法,注釋函數,如果注釋函數後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父宸ヤ綔 鎴戞劅瑙夌▼搴忚窇椋炲拰浣犵殑紼嬪簭鍜岀數璺鍏崇郴浼氬ぇ鐐 鍜岀數婧愮殑鍏崇郴鐩稿硅佸皬