独立看门狗

独立看门狗由内部额外的低俗时钟操控,主时钟发生故障后,它仍能工作。
它的作用是当程序陷入死循环,在一定时间内(计时器实现)没有接收到喂狗信号,便自动复位。
对于看门狗的32个位,16~31位为保留位,全为0x0000,0到15位为键值,并且只写而不可读。
软件必须隔一段时间写入0xAAAA,否则当计时器为0时,复位。
若在键值寄存器中写入0xCCCC,开始启用独立看门狗。
对于IWDG_PR与IWDG_RLR,它们具有写保护功能,必须先向IWDG_KR中先写入0x5555才能写。
开启独立看门狗的过程:
(1)取消寄存器写保护

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

(2)设立独立看门狗的预分频系数和重装载值

IWDG_SetPrescaler(unit8_t IWDG_Prescaler);//设置预分频值
IWDG_SetReload(unit16_t Reload Reload);//设置重装载值

喂狗时间计算:Tout=((42^prer)rlr)/40
prer为预分频值,rlr为重装载值
(3)重载计数值喂狗

IWDG_ReloadCounter();

(4)启动看门狗

IWDG_Enable();

你可能感兴趣的:(独立看门狗)