上期為大家講解了GD32 MCU復(fù)位包括電源復(fù)位和系統(tǒng)復(fù)位,其中系統(tǒng)復(fù)位還包括獨(dú)立看門狗復(fù)位、內(nèi)核軟復(fù)位、窗口看門狗復(fù)位等,在一個(gè)GD32系統(tǒng)中,如果莫名其妙產(chǎn)生了MCU復(fù)位,如何排查具體是由哪個(gè)復(fù)位源導(dǎo)致的呢?
GD32 MCU貼心的為大家提供了一個(gè)查看復(fù)位源的寄存器,如下圖所示,該寄存器的bit26-bit31顯示各種復(fù)位狀態(tài),其中LPRSTF表示發(fā)生過低功耗復(fù)位、WWDGTRSTF表示發(fā)上過窗口看門狗復(fù)位、FWDGTRSTF表示發(fā)生過獨(dú)立看門狗復(fù)位、SWRSTF表示發(fā)生過系統(tǒng)軟復(fù)位、PORRSTF表示發(fā)生過POR電源復(fù)位、EPRSTF表示發(fā)生過NRST引腳復(fù)位,這幾個(gè)狀態(tài)標(biāo)志位為只讀標(biāo)志位,如果希望清除復(fù)位標(biāo)志,可以通過置位bit24 RSTFC控制位實(shí)現(xiàn)。
那么該寄存器該如何使用進(jìn)行查看異常復(fù)位源呢?
建議大家在主函數(shù)入口處先檢查復(fù)位源寄存器,之后將產(chǎn)生的復(fù)位標(biāo)志通過串口打印出來,然后再清除所有的復(fù)位源。第一次上電后會將所有的復(fù)位源全部清除,等下次產(chǎn)生異常復(fù)位后,將會通過串口打印產(chǎn)生復(fù)位的復(fù)位源,此復(fù)位源即為實(shí)際產(chǎn)生異常復(fù)位的源頭。
以上即為本期講解,如有問題或建議,歡迎評論區(qū)討論。
-
單片機(jī)
+關(guān)注
關(guān)注
6034文章
44548瀏覽量
634397 -
復(fù)位
+關(guān)注
關(guān)注
0文章
171瀏覽量
24211 -
GD32
+關(guān)注
關(guān)注
7文章
403瀏覽量
24316
發(fā)布評論請先 登錄
相關(guān)推薦
評論