【STM32】窗口看门狗
00. 目錄
文章目錄
- 00. 目錄
 - 01. WWDG簡介
 - 02. WWDG主要特性
 - 03. WWDG功能說明
 - 04. 設置看門狗超時
 - 05. WWDG寄存器
 - 5.1 控制寄存器 (WWDG_CR)
 - 5.2 配置寄存器 (WWDG_CFR)
 - 5.3 狀態寄存器 (WWDG_SR)
 - 5.4 WWDG寄存器映射
 
- 06. 附錄
 - 07. 聲明
 
01. WWDG簡介
窗口看門狗通常被用來監測,由外部干擾或不可預見的邏輯條件造成的應用程序背離正常的運行序列而產生的軟件故障。除非遞減計數器的值在 T6 位變成 0 前被刷新,看門狗電路在達到預置的時間周期時,會產生一個 MCU 復位。如果在遞減計數器達到窗口寄存器值之前刷新控制寄存器中的 7 位遞減計數器值,也會產生 MCU 復位。這意味著必須在限定的時間窗口內刷新計數器。
02. WWDG主要特性
- 可編程的自由運行遞減計數器
 - 復位條件
— 當遞減計數器值小于 0x40 時復位(如果看門狗已激活)
— 在窗口之外重載遞減計數器時復位(如果看門狗已激活)(請參見 圖 200) - 提前喚醒中斷 (EWI):當遞減計數器等于 0x40 時觸發(如果已使能且看門狗已激活)
 
03. WWDG功能說明
如果激活看門狗(WWDG_CR 寄存器中的 WDGA 位置 1),則當 7 位遞減計數器(T[6:0]位)從 0x40 滾動到 0x3F(T6 已清零)時會引發復位。當計數器值大于窗口寄存器中所存儲的值時,如果軟件重載計數器,則會產生復位。
 
應用程序在正常運行過程中必須定期地寫入 WWDG_CR 寄存器以防止 MCU 發生復位。只有當計數器值低于窗口寄存器值時,才能執行此操作。存儲在 WWDG_CR 寄存器中的值必須介于 0xFF 和 0xC0 之間:
使能看門狗
在系統復位后,看門狗總是處于關閉狀態。可通過設置 WWDG_CR 寄存器中的 WDGA 位來使能看門狗,之后除非執行復位操作,否則不能再次關閉。
控制遞減計數器
遞減計數器處于自由運行狀態:即使禁止看門狗,遞減計數器仍繼續遞減計數。當使能看門狗時,必須將 T6 位置 1,以防止立即復位。
 T[5:0] 位包含了看門狗產生復位之前的計時數目;復位前的延時時間在一個最小值和一個最大值之間變化,這是因為寫入 WWDG_CR 寄存器時,預分頻值是未知的(請參見 圖 200)。配置寄存器 (WWDG_CFR) 包含窗口的上限:為防止發生復位,當遞減計數器的值低于窗口寄存器值且大于 0x3F 時必須重載。
看門狗中斷高級特性
如果在產生實際復位之前必須執行特定的安全操作或數據記錄,則可使用提前喚醒中斷(EWI)。通過設置 WWDG_CFR 寄存器中的 EWI 位使能 EWI 中斷。當遞減計數器的值為0x40 時,將生成 EWI 中斷。在復位器件之前,可以使用相應的中斷服務程序 (ISR) 來觸
 發特定操作(例如通信或數據記錄)。
在某些應用中,可以使用 EWI 中斷來管理軟件系統檢查和/或系統恢復/功能退化,而不會生成 WWDG 復位。在這種情況下,相應的中斷服務程序 (ISR) 可用來重載 WWDG 計數器以避免 WWDG 復位,然后再觸發所需操作。
通過將 0 寫入 WWDG_SR 寄存器中的 EWIF 位來清除 EWI 中斷。
04. 設置看門狗超時
有關 T WWDG 的最小值和最大值,請參見下表。
 
溫馨提示
寫入 WWDG_CR 寄存器時,始終將 1 寫入 T6 位,以避免生成立即復位。
05. WWDG寄存器
5.1 控制寄存器 (WWDG_CR)
Status register
 偏移地址:0x00
 復位值:0x0000 007F
 
5.2 配置寄存器 (WWDG_CFR)
Configuration register
 偏移地址:0x04
 復位值:0x0000 007F
 
 
5.3 狀態寄存器 (WWDG_SR)
Status register
 偏移地址:0x08
 復位值:0x0000 0000
 
5.4 WWDG寄存器映射
06. 附錄
6.1 【STM32】STM32系列教程匯總
網址:【STM32】STM32系列教程匯總
07. 聲明
STM32F4xx英文參考手冊
總結
以上是生活随笔為你收集整理的【STM32】窗口看门狗的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 【STM32】独立看门狗相关函数和类型
 - 下一篇: 【STM32】窗口看门狗相关类型和函数