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中断
    }
  • 相关阅读:
    取时间
    DEV控件属性
    Dev之barManager控件属性
    linq查询Contains
    绑定
    运算符转换方法组和int类型的操作数
    学习计划实践
    学习计划2
    foreacht学习
    Spring5源码分析(二) IOC 容器的初始化(五)
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709565.html
Copyright © 2011-2022 走看看