單片機產品在工作的時候,上電后是正常工作的,但是工作了幾個小時后,偶爾會出現單片機重啟的現象。從描述可以判斷出,電路在大多數的時間里工作是正常的,但是偶爾會出現單片機重啟故障,而電源是穩定的。所以可以判斷出硬件電路是正常的。那么問題可能是程序本身的問題或者是有干擾源。
1 可能存在干擾
可能有干擾源存在,而該干擾源可能不是有規律的干擾。單片機一般都具有復位引腳,要么高電平復位,要么低電平復位。比如STM32系列是低電平復位,51單片機是高電平復位。可以將單片機復位引腳飛線,使用示波器捕捉其引腳電平。再發生重啟現象時,查看復位引腳上是否出現了復位電平。如果存在復位電平,則檢查一下周圍其他設備的現象分析一下是否存在干擾的可能性。
2 可能是程序中有看門狗
有些單片機具有看門狗的。如STM32單片機具有獨立看門狗IWDG以及窗口看門狗WWDG。首先查看喂狗指令是否正常。尤其是在通訊代碼中,為了防止接收超時或者發送超時,在代碼中都會加入看門狗或者是定時指令。這時候要分析不是不是存在邏輯錯誤使代碼陷入了死循環觸發了看門狗或者定時指令。
像這種偶發性的問題,在查找BUG時,故障復現比較困難,所以解決問題時也比較麻煩,一定要保持清醒的頭腦,避免鉆入牛角尖。
-
單片機
+關注
關注
6044文章
44632瀏覽量
639194
發布評論請先 登錄
相關推薦
ADS1251采集不穩定是怎么回事?
STM32模擬eeprom只有起始地址0x8001000正常其他地址都會造成單片機運行不正常怎么回事
adc161s626仿真時是出現forma t%s invailal or incompatible with argument錯誤是怎么回事?
通過stm32F1單片機的PWM功能產生兩個時鐘,從Dout讀取到的數據位都是0,這個是怎么回事呢?
單片機出現故障怎么維修
LCD_EV_BORAD的boot按鍵,想進入deep—sleep,但是每次會一直重啟是怎么回事?
電機轉慢了電源燙手怎么回事
晶振的誤差是怎么回事呢?如何有效控制晶振誤差的出現?
KT148A語音芯片串口版本播放音樂的時候,直接導致單片機工作異常
![KT148A語音芯片串口版本播放音樂的時候,直接導致<b class='flag-5'>單片機工作</b>異常](https://file1.elecfans.com/web2/M00/E2/77/wKgaomY5lryAAvBWAAGURUF49Og291.png)
評論