STM32F1笔记(六)独立看门狗IWDG
生活随笔
收集整理的這篇文章主要介紹了
STM32F1笔记(六)独立看门狗IWDG
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32F1內置了兩個看門狗,獨立看門狗IWDG和窗口看門狗WWDG,可以用來檢測和解決由軟件錯誤引起的故障。
IWDG最適合應用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合。WWDG最適合那些要求看門狗在精確計時窗口起作用的應用程序。
STM32的獨立看門狗由內部專門的40Khz低速時鐘(LSI)驅動,即使主時鐘發生故障,它也仍然有效。這里需要注意獨立看門狗的時鐘是一個內部RC時鐘,而不是準確的40Khz,而是30~60Khz之間的一個可變化的時鐘,只是估算的時候以40Khz的頻率來計算,看門狗對時間的要求不是很精確,所以時鐘有些偏差是可以接受的。
?
獨立看門狗的配置如下:
void IWDG_Init(u8 prer,u16 rlr) { //取消IWDG_PR和IWDG_RLR的寫保護IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//預分頻IWDG_SetPrescaler(prer);//重裝載IWDG_SetReload(rlr);//重載計數值即喂狗IWDG_ReloadCounter();IWDG_Enable(); }這里需要注意的是,不需要使能時鐘。
其中喂狗時間計算方式為:Tout = ((4*2^prer) * rlr)/40
prer取值范圍為0~7
當prer值為4,rlr值為625時,Tout=1000ms,這樣只要在1s之內喂狗就不會發生看門狗復位。
需要注意的是,由于看門狗的時鐘不精確,所以最后不要太晚也就是太靠近1s的時間喂狗,需要提前一些。
?
喂狗函數:
void IWDG_Feed(void) { IWDG_ReloadCounter(); }?
總結
以上是生活随笔為你收集整理的STM32F1笔记(六)独立看门狗IWDG的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32F1笔记(五)外部中断EXTI
- 下一篇: 车上能装华为帝瓦雷音响吗?