Day7 STM32之WWDG

1. WWDG简介

        Window watchdog,即窗口看门狗

        能产生系统复位信号和提前唤醒中断的计数器

        递减的计数器

        在窗口期内重装载计数器的值,防止复位

        用于检测单片机程序运行时效是否精准,主要检测软件异常

        需要精准检测程序运行时间的场合

        计数器从T[6:0]开始递减,在W[6:0]之前喂狗会触发复位,

        只有在W[6:0]到0x40(64)之间喂狗才会重装载,

        计到64时候会触发一个中断,计到0x3F(63)的时候会复位

        其中T[6:0]和W[6:0]是自己设定的,63和64是规定的

 

2. WWDG配置步骤

        WWDG工作参数初始化        HAL_WWDG_Init()

        WWDG Msp初始化               HAL_WWDG_MspInit()        配置NVIC、CLOCK等

        设置优先级,使能中断          HAL_NVIC_SetPrioioty()、HAL_NVIC_EnableIRQ()

        谱写中断服务函数                 WWDG_IRQHandler()->HAL_WWDG_IRQHandle()

        重定义提前唤醒回调函数       HAL_WWDG_EarlyWakeupCallback()

        在窗口期内喂狗                     HAL_WWDG_Refresh()

3. 相关HAL库函数介绍

3.1 HAL_WWDG_Init()

        函数定义        HAL_StatusTypeDef HAL_WWDG_Init (WWDG_HandleTypeDef * hwwdg)

        函数描述        根据WWDG_HandleTypeDef中指定的参数初始化WWDG

        参数               hwwdg:指向有初始化数据的喂狗句柄

        返回值           HAL status

WWDG_HandleTypeDef hwwdg;
hwwdg.Instance = WWDG;
hwwdg.Init.Prescaler = WWDG_PRESCALER_128; // 设置预分频器
hwwdg.Init.Window = 100; // 设置窗口值,即窗口期的时间范围

HAL_WWDG_Init(&hwwdg);

while (1) {
    // 定期在窗口期内更新窗口看门狗
    HAL_WWDG_Refresh(&hwwdg);
    // 执行其他任务
}
3.2 HAL_WWDG_Refresh()

        函数定义        HAL_StatusTypeDef HAL_WWDG_Refresh (WWDG_HandleTypeDef * hwwdg, uint32_t Counter)

        函数描述        喂狗

        参数               hwwdg:指向有初始化数据的喂狗句柄

        返回值           HAL status

while (1) {
    // 定期喂独立看门狗
    HAL_WWDG_Refresh(&hwwdg);
    // 执行其他任务
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值