总:STM32——学习总纲
参考资源:
【免费】芯片资料STM32F103ZET6(中文版)资源-CSDN下载
一、WWDG简介

W[6:0] 窗口值

WWDG作用

二、WWDG工作原理

![]()
三、WWDG框图

不喂狗,0x40 -> 0x3F 复位:

非窗口喂狗复位:

四、WWDG寄存器
控制寄存器(WWDG_CR)
用于使能窗口看门狗工作,以及重装载寄存器值(喂狗)。

配置寄存器(WWDG_CFR)
使能窗口看门狗提前唤醒终端,设置预分频系数,设置窗口上限制。

状态寄存器(WWDG_SR)
用于判断是否发生了 WWDG 提前唤醒中断。

控制\状态寄存器(RCC_CSR)
用于判断何种复位发生了。
可用HAL库宏清楚置起的位:
/** @brief Set RMVF bit to clear the reset flags.
* The reset flags are RCC_FLAG_PINRST, RCC_FLAG_PORRST, RCC_FLAG_SFTRST,
* RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, RCC_FLAG_LPWRRST
*/
#define __HAL_RCC_CLEAR_RESET_FLAGS() (*(__IO uint32_t *)RCC_CSR_RMVF_BB = ENABLE)

五、WWDG超时时间计算
公式:
:WWDG超时时间(没喂狗)
:WWDG的时钟源频率。(F1-F7:PCLK1;H7:PCLK3)
:
![]()
:
,"+1"表示计数溢出。
推导:
-》工作的时钟频率:(时钟源/分频系数)
-》记一个数的时间:1/工作的时钟频率
-》记 (0~63)个数的时间:记一个数的时间 *((0~63)+1)
WWDG最短最长超时时间(F1)

六、WWDG配置步骤
| 步骤 | HAL库函数 | 简介 |
|---|---|---|
| 1.WWDG工作参数初始化 | HAL_WWDG_Init() | 主要寄存器:WWDG_CR/WWDG_CFR 设置预分频系数和窗口值 会调用Msp初始化回调函数 |
| 2.WWDG Msp初始化 | HAL_WWDG_MspInit() | 配置NVIC、CLOCK等 |
| 3.设置优先级,使能中断 | HAL_NVIC_SetPriority() | |
| HAL_NVIC_Enable() | ||
| 4.编写中断服务函数 | WWDG_IRQHandler() | 会在此函数中调用 窗口 中断公共处理函数 HAL_WWDG_IRQHandler():调用相应的callback函数。 |
| 5.重定义提前唤醒回调函数 | HAL_WWDG_EarlyWakeUpCallback() | 被HAL_WWDG_IRQHandler()调用callback |
| 6.在窗口期内喂狗 | HAL_WWDG_Refresh() | 主要寄存器:WWDG_CR T[6:0] 重装载计数器,即喂狗。 |
句柄:

七、编程实战:验证窗口看门狗功能

工程:
八、IWDG和WWDG的主要区别

九、课堂总结


7977

被折叠的 条评论
为什么被折叠?



