zoukankan      html  css  js  c++  java
  • stm32 窗口看门狗 WWDG

    窗口看门狗WWDG其实和独立看门狗类似,它是一个7位递减计数器不断的往下递减计数,当减到一个固定值0x40时还不喂狗的话,产生一个MCU复位,这个值叫窗口的下限,是固定的值,不能改变

    窗口看门狗(WWDG)的时钟来自PCLK1,即挂接在APB1总线上,APB1时钟最大为36M

    窗口值由配置寄存器WWDG_CFR的[6:0]位设置,所以最大值0x7F

    当递减计数器递减到0x40的时候,还不会马上产生复位,如果使能了提前唤醒中断,则产生提前唤醒中断,提醒喂狗,随后将复位

    WWDG配置步骤

    1.使能WWDG时钟
    2.设置WWDG窗口值
    3.设置WWDG预分频因子
    4.初始化NVIC外设,设置WWDG中断优先级
    5.初始化计数器值,使能WWDG
    6.使能WWDG中断
    7.编写WWDG中断处理函数

    举例

    void WWDG_IRQHandler()
    {
        if(WWDG_GetFlagStatus() == 1)
        {
            WWDG_SetCounter(0x70); //喂狗
            printf("WWDG_IRQHandler.
    ");
        }
        WWDG_ClearFlag();
    }
    
    void WWDG_init()
    {
        NVIC_InitTypeDef nvic = 
        {
            WWDG_IRQn,
            2,
            2,
            ENABLE
        };
    
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); //使能WWDG时钟
    
        WWDG_SetWindowValue(0x50); //设置WWDG窗口值
    
        WWDG_SetPrescaler(WWDG_Prescaler_8); //设置WWDG预分频因子
    
        NVIC_Init(&nvic); //初始化NVIC
    
        WWDG_Enable(0x70); //初始化计数器值,使能WWDG
    
        WWDG_ClearFlag();
    
        WWDG_EnableIT(); //使能WWDG中断
    }
  • 相关阅读:
    奶酪(NOIP2017 Day2 T1)
    图的遍历(某谷P3916)
    20154331 EXP9web安全基础实践
    20154331 EXP8 web基础
    20154331EXP7 网络欺诈
    20154331 Exp6 信息搜集与漏洞扫描
    Exp5 MSF基础应用
    Exp4 恶意代码分析
    Exp3 免杀原理与实践
    20154331黄芮EXP2 后门原理与实践
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709565.html
Copyright © 2011-2022 走看看