本文將介紹窗口看門狗,并通過按鍵模擬觸發(fā)程序死機、進而觸發(fā)提前喚醒中斷、并復位程序。
①窗口看門狗介紹
②STM32CUBEMX配置工程文件
③代碼實現(xiàn)
①窗口看門狗介紹
窗口看門狗用來監(jiān)測由于不可預知的因素或者不可預知的邏輯條件導致程序脫離正常運行序列的軟件故障。
窗口看門狗介紹之工作原理框圖:

窗口看門狗介紹之配置寄存器:
預分頻器用于將RCC傳來的PCLK1時鐘進行分頻,配置寄存器中第7位第8位用來存放預分頻器的預分頻值,第0位至第6位用于存放窗口看門狗的窗口值,當計數(shù)器的值大于窗口值時喂狗會觸發(fā)復位、即只有計數(shù)器的值在0x40與窗口值之間時喂狗不會觸發(fā)程序復位;所以窗口值需要大于0x40、小于0x7f,否則窗口沒有意義。
窗口看門狗介紹之控制寄存器:
寄存器第0至第6位用于存放計數(shù)器的計數(shù)值,計數(shù)值最大0x7f、當計數(shù)值降低到0x40時會觸發(fā)提前喚醒中斷,在提前喚醒中斷里可以保存重要的數(shù)據(jù)或者報警,當寄存器第6位由1變0時會對程序進行復位。
②STM32CUBEMX配置工程文件
Step1:使能USART3用于調試

Step2:使能RCC時鐘、配置時鐘樹


Step3:配置按鍵PA0為外部輸入中斷、設置中斷優(yōu)先級


Step4:使能窗口看門狗、配置分頻數(shù)、計數(shù)值、窗口值,設置中斷等級

計數(shù)值減小5花費1us,窗口值為95、計數(shù)值為127

Step5:配置GPIO控制led,用于提前喚醒中斷里報警亮燈

Step6:生成工程



③代碼實現(xiàn)
Step1:輸出重定向,記得添加頭文件

While后少了一個分號哈!!!
Step2:在窗口值以下喂狗

Step3:重定義提前喚醒函數(shù)

Step4:重定義外部中斷函數(shù)

step5:編譯、日志

-
看門狗
+關注
關注
10文章
610瀏覽量
72933 -
寄存器
+關注
關注
31文章
5608瀏覽量
129968 -
STM32
+關注
關注
2309文章
11162瀏覽量
373406 -
中斷
+關注
關注
5文章
917瀏覽量
43754 -
stm32cubemx
+關注
關注
5文章
290瀏覽量
17358
發(fā)布評論請先 登錄
STM32中的獨立看門狗和窗口看門狗是什么
stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么
STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)
一文了解STM32窗口看門狗的真正作用
STM32單片機中的獨立看門狗與窗口看門狗有哪些不同之處
【MCU】基于STM32CubeMX 實現(xiàn)窗口看門狗 WWDG
STM32中的獨立看門狗和窗口看門狗
STM32中的獨立看門狗和窗口看門狗
STM32窗口看門狗詳解
評論