IWDG-----獨立看門狗,獨立于系統之外,因為有獨立時鐘,所以不受系統影響的系統故障探測器。主要用于監視硬件錯誤。
WWDG---窗口看門狗,系統內部的故障探測器,時鐘與系統相同。如果系統時鐘不走了,這個狗也就失去作用了。主要用于監視軟件錯誤。
二者區別如下:
獨立看門狗沒有中斷,窗口看門狗有中斷
獨立看門狗有硬件軟件之分,窗口看門狗只能軟件控制
獨立看門狗只有下限,窗口看門狗又下限和上限
獨立看門狗是12位遞減的。窗口看門狗是7位遞減的
獨立看門狗是用的內部的大約40KHZ RC振蕩器,窗口看門狗是用的系統時鐘APB1ENR
獨立看門狗
獨立看門狗沒有中斷功能,只要在計數器減到0之前,重新裝載計數器的值,就不會產生復位
獨立看門夠有硬件和軟件之分,硬件是通過燒寫器的“設定 選項幾節等”配置
一旦開啟了硬件看門狗,那么就停不下來了,只能在重新配置“設定選項幾節等”才能關掉硬件看門狗
軟件看門狗只需要設置IWDG->KR=0XCCCC;就可以啟動看門狗了
軟件狗可以在系統復位時關掉
如果在在初始化里開啟軟件看門狗,那就開啟了軟件看門狗,
獨立看門狗是12位遞減的寄存器,使用片子內部的RC振蕩器,這個振蕩器是關不掉的
窗口看門狗
窗口看門狗有中斷,這個中斷的作用是在計數器達到下限0x40的時候,產生中斷,讓你喂狗
如果你不喂狗,計數器的值變為0x3f的時候,將會產生系統復 位
即使是喂狗,也應該在中斷里快速喂狗,要不時間長了計數器減一也會變成0x3f產生復位
這個時間根據芯片手冊的公式進行計算即可得到
窗口看門狗只 有軟件開啟方式,還有一個上限值
這個值如果大于計數器的初始值,那么就沒有任何作用了
這個值小于計數器的初始值得時候,當計數器的值大于上限值時你對 計數器進行裝載,將會產生復位
只有在計數器減到小于上限值時,你才能重新裝載計數器
意思就是說只有計數器的值在上限值和下限值之間你才能裝載計數器,否則就會產生系統復位
當上限值小于下限值,也沒有意義
|