【记录】独立看门狗

来源:互联网 发布:淘宝卖话费怎么没利润 编辑:程序博客网 时间:2024/05/21 12:33

特性

独立看门狗,之所以称之为“独立”,是因为它有片上的低速时钟(LSI)驱动,所以,即使主时钟发生故障,依然可以独立工作。

缺点是精度比较低。

独立看门狗的框图,如下:
从图中可以看到独立看门狗的主要寄存器

IWDG_KR: 向其写入不同的值,有不同的动作。
AAAAh:喂狗
5555h:使能访问IWDG_PR和IWDG_RLR寄存器
CCCCh:启动看门狗

IWDG_PR:预分频寄存器,设置预分频系数,决定独立看门狗工作时钟
IWDG_RLR:重载寄存器,喂狗后,从该寄存器中重新加载计数值
IWDG_SR:状态寄存器

这里写图片描述

操作步骤

  1. 向IWDG_KR写入5555h,使能访问IWDG_PR和IWDG_RLR寄存器
  2. 设置IWDG_PR和IWDG_RLR寄存器,设置看门狗计时时间
  3. 向IWDG_KR写入AAAAh,喂狗
  4. 启动看门狗
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中文参考手册

0 0
原创粉丝点击