下圖說明了獨立看門狗IWDG與窗口看門狗WWDG的區別:
從中可以看出:
一 復位
獨立看門狗在計數器技術導0時復位,
窗口看門狗在計數器計數到0X40時復位。
二 喂狗
獨立看門狗可以在計數器從預裝載值降低到0過過程中的任意時間喂狗,
窗口看門狗必須在計數器計數到窗口值WR與0X40之間時喂狗,高于這一值喂狗或者低于這一值都會導致復位。窗口看門狗的這一特性有如下特點/作用:
①如果喂狗方式是通過讀看門狗計數器WWDG->CR& 0X7F的方式時,例如
if((WWDG->CR & 0X7F) <=(WWDG->CFR & 0X7F))
// if((WWDG->CR & 0X7F) ==(WWDG->CFR & 0X7F)) (如果設置成==,那么監控程序運行時間最好遠小于窗口看門狗計數器自減一次的時間,否則容易錯過復位時機)
{?
????????HAL_WWDG_Refresh(&WWDG_Handle);
}
這個情況下相比獨立看門狗,既能監控程序超時運行,又能夠減少喂狗次數
②如果不是通過讀看門狗計數器的方式而是直接喂狗
HAL_WWDG_Refresh(&WWDG_Handle);
那么如果監控程序運行時間過長或者過短都會復位,可以監控程序的運行時間。