看门狗
-
独立看门狗
原理:
- 在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。此时计数器开始从其复位值0xFFF递减,当计数器值计数到尾值0x000时会产生一个复位信号(IWDG_RESET)。
- 无论何时,只要在键值寄存器IWDG_KR中写入0xAAAA(通常说的喂狗),
自动重装载寄存器IWDG_RLR的值就会重新加载到计数器,从而避免看门狗复位。 - 如果程序异常,就无法正常喂狗,从而系统复位。
库函数
void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);//取消写保护:0x5555使能
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);//设置预分频系数:写PR
void IWDG_SetReload(uint16_t Reload);//设置重装载值:写RLR
void IWDG_ReloadCounter(void);//喂狗:写0xAAAA到KR
void IWDG_Enable(void);//使能看门狗:写0xCCCC到KR
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);//状态:重装载/预分频 更新
~~~~ ~~~~~~~~ ~~~~ 分割线 ~~~~ ~~~~ ~~~~ ~~~~
2. 窗口看门狗
未完待续