|
STM32G474xx HAL 用户手册
|
IWDG HAL 模块驱动程序。此文件提供固件函数,用于管理独立看门狗 (IWDG) 外设的以下功能:+ 初始化和启动函数 + IO 操作函数。 更多...
#include "stm32g4xx_hal.h"宏定义 | |
| #define | HAL_IWDG_DEFAULT_TIMEOUT |
| #define | IWDG_KERNEL_UPDATE_FLAGS (IWDG_SR_WVU | IWDG_SR_RVU | IWDG_SR_PVU) |
函数 | |
| HAL_StatusTypeDef | HAL_IWDG_Init (IWDG_HandleTypeDef *hiwdg) |
| 根据 IWDG_InitTypeDef 中指定的参数初始化 IWDG 并启动看门狗。 | |
| HAL_StatusTypeDef | HAL_IWDG_Refresh (IWDG_HandleTypeDef *hiwdg) |
| 刷新 IWDG。 | |
IWDG HAL 模块驱动程序。此文件提供固件函数,用于管理独立看门狗 (IWDG) 外设的以下功能:+ 初始化和启动函数 + IO 操作函数。
版权所有 (c) 2019 STMicroelectronics。保留所有权利。
本软件的许可条款可在本软件组件根目录下的 LICENSE 文件中找到。如果本软件未附带 LICENSE 文件,则按原样提供。
==============================================================================
##### IWDG 通用特性 #####
==============================================================================
[..]
(+) IWDG 可以通过软件或硬件启动(通过选项字节配置)。
(+) IWDG 由低速内部时钟 (LSI) 提供时钟,因此即使主时钟失效,它也能保持活动状态。
(+) 一旦 IWDG 启动,LSI 将被强制开启,两者都无法禁用。计数器从复位值 (0xFFF) 开始向下计数。当它到达计数结束值 (0x000) 时,将生成复位信号(IWDG 复位)。
(+) 每当向 IWDG_KR 寄存器写入键值 0x0000 AAAA 时,IWDG_RLR 的值将重新加载到计数器中,并防止看门狗复位。
(+) IWDG 在 VDD 电压域中实现,该域在 STOP 和 STANDBY 模式下仍可工作(IWDG 复位可以将 CPU 从 STANDBY 唤醒)。RCC_CSR 寄存器中的 IWDGRST 标志可用于指示何时发生 IWDG 复位。
(+) 调试模式:当微控制器进入调试模式(内核暂停)时,IWDG 计数器要么继续正常工作,要么停止,具体取决于 DBG 模块中的 DBG_IWDG_STOP 配置位,可通过 __HAL_DBGMCU_FREEZE_IWDG() 和 __HAL_DBGMCU_UNFREEZE_IWDG() 宏访问。
[..] @32KHz (LSI) 下的最小-最大超时值:~125us / ~32.7s
IWDG 超时可能因 LSI 时钟频率分散而异。
STM32G4xx 器件提供了测量 LSI 时钟频率的能力(LSI 时钟内部连接到 TIM16 CH1 输入捕获)。
测量值可用于获得具有可接受精度的 IWDG 超时。
[..] 默认超时值(IWDG_SR 状态寄存器更新所必需):
常量 LSI_VALUE 基于标称 LSI 时钟频率定义。
由于该频率可能因上述原因而变化,默认超时值(通过下面的常量 HAL_IWDG_DEFAULT_TIMEOUT 定义)可能变得过短或过长。
在这种情况下,可以通过在用户应用层重新定义常量 LSI_VALUE(例如,基于上述测量的 LSI 时钟频率)来调整此默认超时值。
##### 如何使用此驱动程序 #####
==============================================================================
[..]
(#) 使用 HAL_IWDG_Init() 函数使用 IWDG:
(++) 通过向 IWDG_KEY 寄存器写入启动关键字来使能实例。LSI 时钟被强制开启,IWDG 计数器开始向下计数。
(++) 使能对配置寄存器的写访问:
IWDG_PR、IWDG_RLR 和 IWDG_WINR。
(++) 配置 IWDG 预分频器和计数器重载值。每次看门狗刷新时,此重载值将被加载到 IWDG 计数器中,然后 IWDG 将从此值开始向下计数。
(++) 根据窗口参数:
(+++) 如果窗口初始化参数与窗口寄存器值相同,则除了刷新计数器值以在精确的时间基准下退出函数外,不执行任何操作。
(+++) 否则修改窗口寄存器。这将自动刷新看门狗计数器。
(++) 等待状态标志复位。
(#) 然后,应用程序必须在正常操作期间定期刷新 IWDG 计数器,以防止 MCU 复位,使用 HAL_IWDG_Refresh() 函数。
*** IWDG HAL 驱动程序宏列表 ***
====================================
[..]
下面是 IWDG HAL 驱动程序中最常用的宏列表:
(+) __HAL_IWDG_START:使能 IWDG 外设
(+) __HAL_IWDG_RELOAD_COUNTER:用重载寄存器中定义的值重新加载 IWDG 计数器
定义在文件 stm32g4xx_hal_iwdg.c 中。
1.7.6.1