本文將介紹窗口看門狗,并通過按鍵模擬觸發(fā)程序死機、進(jìn)而觸發(fā)提前喚醒中斷、并復(fù)位程序。
①窗口看門狗介紹
②STM32CUBEMX配置工程文件
③代碼實現(xiàn)
①窗口看門狗介紹
窗口看門狗用來監(jiān)測由于不可預(yù)知的因素或者不可預(yù)知的邏輯條件導(dǎo)致程序脫離正常運行序列的軟件故障。
窗口看門狗介紹之工作原理框圖:
窗口看門狗介紹之配置寄存器:
預(yù)分頻器用于將RCC傳來的PCLK1時鐘進(jìn)行分頻,配置寄存器中第7位第8位用來存放預(yù)分頻器的預(yù)分頻值,第0位至第6位用于存放窗口看門狗的窗口值,當(dāng)計數(shù)器的值大于窗口值時喂狗會觸發(fā)復(fù)位、即只有計數(shù)器的值在0x40與窗口值之間時喂狗不會觸發(fā)程序復(fù)位;所以窗口值需要大于0x40、小于0x7f,否則窗口沒有意義。
窗口看門狗介紹之控制寄存器:
寄存器第0至第6位用于存放計數(shù)器的計數(shù)值,計數(shù)值最大0x7f、當(dāng)計數(shù)值降低到0x40時會觸發(fā)提前喚醒中斷,在提前喚醒中斷里可以保存重要的數(shù)據(jù)或者報警,當(dāng)寄存器第6位由1變0時會對程序進(jìn)行復(fù)位。
②STM32CUBEMX配置工程文件
Step1:使能USART3用于調(diào)試
Step2:使能RCC時鐘、配置時鐘樹
Step3:配置按鍵PA0為外部輸入中斷、設(shè)置中斷優(yōu)先級
Step4:使能窗口看門狗、配置分頻數(shù)、計數(shù)值、窗口值,設(shè)置中斷等級
計數(shù)值減小5花費1us,窗口值為95、計數(shù)值為127
Step5:配置GPIO控制led,用于提前喚醒中斷里報警亮燈
Step6:生成工程
③代碼實現(xiàn)
Step1:輸出重定向,記得添加頭文件
While后少了一個分號哈?。?!
Step2:在窗口值以下喂狗
Step3:重定義提前喚醒函數(shù)
Step4:重定義外部中斷函數(shù)
step5:編譯、日志
-
看門狗
+關(guān)注
關(guān)注
10文章
583瀏覽量
71797 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124462 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
364845 -
中斷
+關(guān)注
關(guān)注
5文章
905瀏覽量
42795 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
286瀏覽量
16257
發(fā)布評論請先 登錄
STM32中的獨立看門狗和窗口看門狗是什么

stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么
STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

STM32單片機中的獨立看門狗與窗口看門狗有哪些不同之處
【MCU】基于STM32CubeMX 實現(xiàn)窗口看門狗 WWDG

STM32中的獨立看門狗和窗口看門狗
STM32中的獨立看門狗和窗口看門狗

評論