獨立看門狗的操作步驟
①取消寄存器寫保護(向 IWDG_KR 寫入 0X5555 ):
IWDG_WriteAccessCmd();
通過這步,取消 IWDG_PR 和 IWDG_RLR 的寫保護,使后面可以操作這兩個寄存器,設置 IWDG_PR 和 IWDG_RLR 的值。
這在庫函數中的實現函數是: IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
開啟/取消寫保護,也就是使能/失能寫權限 。
② 設置獨立看門狗的預分頻系數,確定時鐘:
IWDG_SetPrescaler();
③ 設置看門狗重裝載值,確定溢出時間:
IWDG_SetReload();
庫函數里面重載計數值的函數是:
//按照 IWDG 重裝載寄存器的值重裝載 IWDG 計數器
IWDG_ReloadCounter();
通過這句,將使 STM32 重新加載 IWDG_RLR 的值到看門狗計數器里面。即實現獨立看門狗的喂狗操作。
④ 使能看門狗
IWDG_Enable();
庫函數里面啟動獨立看門狗的函數是:
IWDG_Enable(); //使能 IWDG
這函數用來啟動 STM32F4 的看門狗。
注意 IWDG 在一旦啟用,就不能再被關閉!想要關閉,只能重啟,并且重啟之后不能打開 IWDG,否則問題依舊,所以在這里提醒大家,如果不用 IWDG 的話,就不要去打開它,免得麻煩。
⑤ 應用程序喂狗:
IWDG_ReloadCounter();
溢出時間計算:
Tout=((4×2^prer) ×rlr) /32 (M4)
審核編輯黃昊宇
-
看門狗
+關注
關注
10文章
566瀏覽量
70922 -
寄存器
+關注
關注
31文章
5363瀏覽量
121006
發布評論請先 登錄
相關推薦
評論