美文网首页
2019-04-29 STM32_IWDG_独立看门狗

2019-04-29 STM32_IWDG_独立看门狗

作者: 君子牧 | 来源:发表于2019-04-29 22:17 被阅读0次

    1.IDWG介绍

    STM32芯片内部有两个看门狗外设:

    ①:独立看门狗IWDG ②:窗口看门狗:WWDG

    用途:均可用于检测并解决由于软件错误导致的故障

    简单理解:

    ①:IWDG就是一个12位递减计数器。

    ②:工作原理:当计数器从某一个值递减到0时(IWDG已激活),系统就会产生一次复位。如果在计数器递减到0以前刷新了计数器值,就不会产生复位。

    ③:这个刷新计数器值的过程被称为“喂狗”。

    ④:看门狗功能由VDD电压域供电,在停止模式和待机模式下仍能工作。

    ⑤:通常选择频率为40kHz的LSI作为IWDG的时钟源(并不是那么准确),然后通过一个8位预分频器(40/4*2的pre次方)提供给12位递减计数器

    ⑥:只适用于对时间精度要求较低的场合

    IWDG配置步骤:

    IWDG相关库函数在stm32f10x_iwdg.h和stm32f10x_iwdg.c中

    (1)开启寄存器访问(给IWDG_KR寄存器写入0X5555);

    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

    (2)设置IWDG预分频系数和重转载值

    void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
    void IWDG_SetReload(uint_t IWDG_Reload);
    Tout = (4
    2 pre) /40 *rlr;
    其中Tout为独立看门狗溢出时间,单位是ms。pre是预分频器系数(0-6),rlr是重装载寄存器的值。,公式内的40是独立看门狗的时钟。
    (3)重载计数器值(喂狗)(给IWDG_KR寄存器写入0XAAAA)
    IWDG_ReloadConuter();
    (4)开启IWDG(给IWDG_KR寄存器写入0XCCCC)
    IWDG_Enable();

    硬件电路

    包括:LED指示灯,K_UP按键链接

    D1指示灯:提示系统运行

    D2指示灯:用来作为喂狗和系统重启时的提示

    K_UP:用来喂狗操作,喂狗时D2指示灯亮起,喂狗失败系统重启,D2指示灯灭。

    编程:

    程序框架如下:

    (1)初始化IWDG(开启IWDG,设置溢出时间).

    相关文章

      网友评论

          本文标题:2019-04-29 STM32_IWDG_独立看门狗

          本文链接:https://www.haomeiwen.com/subject/cgzunqtx.html