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