STM32G474xx HAL用户手册
函数
stm32g4xx_hal_wwdg.c文件参考

WWDG HAL模块驱动。这个文件提供固件功能来管理窗口看门狗(WWDG)外设的以下功能:+ 初始化和配置函数+ IO操作函数。更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

函数

HAL_StatusTypeDef HAL_WWDG_Init (WWDG_HandleTypeDef *hwwdg)
 根据指定参数初始化WWDG。
__weak void HAL_WWDG_MspInit (WWDG_HandleTypeDef *hwwdg)
 初始化WWDG MSP。
HAL_StatusTypeDef HAL_WWDG_RegisterCallback (WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID, pWWDG_CallbackTypeDef pCallback)
 注册用户WWDG回调函数,用于替代弱函数(可重定义的)预定义回调。
HAL_StatusTypeDef HAL_WWDG_UnRegisterCallback (WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID)
 注销WWDG回调函数,回调函数将被重定向到弱函数(可重定义的)预定义回调。
HAL_StatusTypeDef HAL_WWDG_Refresh (WWDG_HandleTypeDef *hwwdg)
 刷新WWDG。
void HAL_WWDG_IRQHandler (WWDG_HandleTypeDef *hwwdg)
 处理WWDG中断请求。
__weak void HAL_WWDG_EarlyWakeupCallback (WWDG_HandleTypeDef *hwwdg)
 WWDG早期唤醒回调函数。

详细说明

WWDG HAL模块驱动。这个文件提供固件功能来管理窗口看门狗(WWDG)外设的以下功能:+ 初始化和配置函数+ IO操作函数。

作者:
MCD Application Team
注意:

版权所有 (c) 2019 STMicroelectronics。保留所有权利。

本软件根据LICENSE文件中规定的条款进行许可。如果本软件未附带LICENSE文件,则按原样提供。

  ==============================================================================
                      ##### WWDG特定功能 #####
  ==============================================================================
  [..]
    一旦启用,WWDG会在所编程的时间周期到期时产生系统复位,除非程序在计数器(T[6;0]减法计数器)达到0x3F值之前刷新计数器(即当计数器值从0x40滚动到0x3F时产生复位)。

    (+) 如果在计数器达到刷新窗口值之前刷新计数器,也会产生MCU复位。这意味着必须在有限的窗口内刷新计数器。
    (+) 一旦启用,WWDG无法被禁用,只能通过系统复位。
    (+) 如应用需要,可以在WWDG到期前触发早期唤醒中断以获得警告。早期唤醒中断(EWI)可用于在实际复位产生之前执行特定的安全操作或数据记录。当减法计数器达到0x40时发生中断。此机制需要在NVIC中启用WWDG中断线。一旦启用,EWI中断无法被禁用,只能通过系统复位。
    (+) RCC CSR寄存器中的WWDGRST标志可用于通知WWDG复位发生。
    (+) WWDG计数器输入时钟来自APB时钟除以可编程预分频器。
    (+) WWDG时钟(Hz) = PCLK1 / (4096 * 预分频器)
    (+) WWDG超时(mS) = 1000 * (T[5;0] + 1) / WWDG时钟(Hz)
        其中T[5;0]是计数器的最低6位。
    (+) WWDG计数器刷新允许在以下限制之间进行:
        (++) 最小时间(mS) = 1000 * (计数器 - 窗口) / WWDG时钟
        (++) 最大时间(mS) = 1000 * (计数器 - 0x40) / WWDG时钟
    (+) 典型值:
        (++) 计数器最小值(T[5;0] = 0x00) 在170MHz (PCLK1) 零预分频器:
             复位前最大超时:约24.09us
        (++) 计数器最大值(T[5;0] = 0x3F) 在170MHz (PCLK1) 预分频器128分频:
             复位前最大超时:约197.38ms

                     ##### 如何使用此驱动 #####
  ==============================================================================

    *** 通用驱动使用 ***
    ===========================

  [..]
    (+) 使用__HAL_RCC_WWDG_CLK_ENABLE()启用WWDG APB1时钟。
    (+) 使用HAL_WWDG_Init()函数配置WWDG预分频器、刷新窗口值、计数器值和早期中断状态。这将自动启用WWDG并启动其减法计数器。时间参考可从函数返回时获取。注意必须提供大于0x40的计数器值以防止产生即时复位。
    (+) 如果启用了早期唤醒中断(EWI)功能,当计数器达到0x40时会生成中断。当中断服务程序触发HAL_WWDG_IRQHandler时,标志将自动清除,HAL_WWDG_WakeupCallback用户回调将被执行。用户可以通过自定义回调HAL_WWDG_WakeupCallback来添加自己的代码。
    (+) 然后应用程序必须在正常操作期间定期刷新WWDG计数器以防止MCU复位,使用HAL_WWDG_Refresh()函数。此操作只能在下行计数器低于已编程的刷新窗口值时执行。

    *** 回调注册 ***
    =============================

  [..]
    编译定义USE_HAL_WWDG_REGISTER_CALLBACKS设置为1时,允许用户动态配置驱动回调。使用函数HAL_WWDG_RegisterCallback()注册用户回调。

    (+) 函数HAL_WWDG_RegisterCallback()允许注册以下回调:
        (++) EwiCallback:早期唤醒中断回调。
        (++) MspInitCallback:WWDG MspInit。
    此函数需要参数:HAL外设句柄、回调ID和用户回调函数指针。

    (+) 使用函数HAL_WWDG_UnRegisterCallback()将回调重置为默认弱函数。HAL_WWDG_UnRegisterCallback()需要参数:HAL外设句柄和回调ID。
    此函数允许重置以下回调:
        (++) EwiCallback:早期唤醒中断回调。
        (++) MspInitCallback:WWDG MspInit。

    [..]
    调用HAL_WWDG_Init函数时,回调将被重置为相应的弱函数:
    HAL_WWDG_EarlyWakeupCallback()和HAL_WWDG_MspInit()仅在之前未注册时。

    [..]
    当编译定义USE_HAL_WWDG_REGISTER_CALLBACKS设置为0或未定义时,回调注册功能不可用,将使用弱函数(可重定义的)回调。

    *** WWDG HAL驱动宏列表 ***
    ===================================
    [..]
      以下是WWDG HAL驱动中可用的宏列表。
      (+) __HAL_WWDG_ENABLE:启用WWDG外设
      (+) __HAL_WWDG_GET_FLAG:获取所选WWDG标志状态
      (+) __HAL_WWDG_CLEAR_FLAG:清除WWDG待处理标志
      (+) __HAL_WWDG_ENABLE_IT:启用WWDG早期唤醒中断

  

定义于文件stm32g4xx_hal_wwdg.c中。