特性
独立看门狗,之所以称之为“独立”,是因为它有片上的低速时钟(LSI)驱动,所以,即使主时钟发生故障,依然可以独立工作。
缺点是精度比较低。
独立看门狗的框图,如下:
从图中可以看到独立看门狗的主要寄存器
IWDG_KR: 向其写入不同的值,有不同的动作。
AAAAh:喂狗
5555h:使能访问IWDG_PR和IWDG_RLR寄存器
CCCCh:启动看门狗
IWDG_PR:预分频寄存器,设置预分频系数,决定独立看门狗工作时钟
IWDG_RLR:重载寄存器,喂狗后,从该寄存器中重新加载计数值
IWDG_SR:状态寄存器
操作步骤
- 向IWDG_KR写入5555h,使能访问IWDG_PR和IWDG_RLR寄存器
- 设置IWDG_PR和IWDG_RLR寄存器,设置看门狗计时时间
- 向IWDG_KR写入AAAAh,喂狗
- 启动看门狗
void IWDG_Init(u8 prer, u16 rlr)
{
IWDG->KR = 0x5555;
IWDG->PR = prer;
IWDG->RLR = rlr;
IWDG->KR = 0xAAAA;
IWDG->KR = 0xCCCC;
}
void IWDG_Kick(void)
{
IWDG->KR = 0xAAAA;
}
int main(void)
{
sys_init();
while(1)
{
if(key_scan(0) == WKUP_PRES)
{
IWDG_Kick();
}
delay_ms(10);
}
}
static void sys_init(void)
{
Stm32_Clock_Init(336, 8, 2, 7);
delay_init(168);
led_init();
key_init();
delay_ms(1000);
LED0 = 0;
IWDG_Init(4, 500);
}
参考
STM32F3与 F4 系列 Cortex M4 内核编程手册
STM32F4 开发指南(寄存器版)
STM32F4xxx中文参考手册