STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_hal_wwdg.c File Reference

WWDG HAL module driver. This file provides firmware functions to manage the following functionalities of the Window Watchdog (WWDG) peripheral: More...

Go to the source code of this file.

Functions

HAL_StatusTypeDef HAL_WWDG_Init (WWDG_HandleTypeDef *hwwdg)
 Initialize the WWDG according to the specified. parameters in the WWDG_InitTypeDef of associated handle. More...
 
void HAL_WWDG_MspInit (WWDG_HandleTypeDef *hwwdg)
 Initialize the WWDG MSP. More...
 
HAL_StatusTypeDef HAL_WWDG_RegisterCallback (WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID, pWWDG_CallbackTypeDef pCallback)
 Register a User WWDG Callback To be used instead of the weak (surcharged) predefined callback. More...
 
HAL_StatusTypeDef HAL_WWDG_UnRegisterCallback (WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID)
 Unregister a WWDG Callback WWDG Callback is redirected to the weak (surcharged) predefined callback. More...
 
HAL_StatusTypeDef HAL_WWDG_Refresh (WWDG_HandleTypeDef *hwwdg)
 Refresh the WWDG. More...
 
void HAL_WWDG_IRQHandler (WWDG_HandleTypeDef *hwwdg)
 Handle WWDG interrupt request. More...
 
void HAL_WWDG_EarlyWakeupCallback (WWDG_HandleTypeDef *hwwdg)
 WWDG Early Wakeup callback. More...
 

Detailed Description

WWDG HAL module driver. This file provides firmware functions to manage the following functionalities of the Window Watchdog (WWDG) peripheral:

Author
MCD Application Team
  • Initialization and Configuration functions
  • IO operation functions
    ==============================================================================
                        ##### WWDG Specific features #####
    ==============================================================================
    [..]
      Once enabled the WWDG generates a system reset on expiry of a programmed
      time period, unless the program refreshes the counter (T[6;0] downcounter)
      before reaching 0x3F value (i.e. a reset is generated when the counter
      value rolls down from 0x40 to 0x3F).
    
      (+) An MCU reset is also generated if the counter value is refreshed
          before the counter has reached the refresh window value. This
          implies that the counter must be refreshed in a limited window.
      (+) Once enabled the WWDG cannot be disabled except by a system reset.
      (+) WWDGRST flag in RCC CSR register can be used to inform when a WWDG
          reset occurs.
      (+) The WWDG counter input clock is derived from the APB clock divided
          by a programmable prescaler.
      (+) WWDG clock (Hz) = PCLK1 / (4096 * Prescaler)
      (+) WWDG timeout (mS) = 1000 * (T[5;0] + 1) / WWDG clock (Hz)
          where T[5;0] are the lowest 6 bits of Counter.
      (+) WWDG Counter refresh is allowed between the following limits :
          (++) min time (mS) = 1000 * (Counter - Window) / WWDG clock
          (++) max time (mS) = 1000 * (Counter - 0x40) / WWDG clock
      (+) Typical values:
          (++) Counter min (T[5;0] = 0x00) @80 MHz(PCLK1) with zero prescaler:
               max timeout before reset: ~51.2 µs
          (++) Counter max (T[5;0] = 0x3F) @80 MHz(PCLK1) with prescaler dividing by 128:
               max timeout before reset: ~26.22 ms
    
    ==============================================================================
                       ##### How to use this driver #####
    ==============================================================================
    [..]
      *** Common driver usage ***
      ===========================
      (+) Enable WWDG APB1 clock using __HAL_RCC_WWDG_CLK_ENABLE().
      (+) Set the WWDG prescaler, refresh window and counter value
          using HAL_WWDG_Init() function.
      (+) Start the WWDG using HAL_WWDG_Start() function.
          When the WWDG is enabled the counter value should be configured to
          a value greater than 0x40 to prevent generating an immediate reset.
      (+) Optionally you can enable the Early Wakeup Interrupt (EWI) which is
          generated when the counter reaches 0x40, and then start the WWDG using
          HAL_WWDG_Start_IT(). At EWI HAL_WWDG_WakeupCallback is executed and user can
          add his own code by customization of callback HAL_WWDG_WakeupCallback.
          Once enabled, EWI interrupt cannot be disabled except by a system reset.
      (+) Then the application program must refresh the WWDG counter at regular
          intervals during normal operation to prevent an MCU reset, using
          HAL_WWDG_Refresh() function. This operation must occur only when
          the counter is lower than the refresh window value already programmed.
    
    [..]
      *** Callback registration ***
      =============================
      The compilation define  USE_HAL_WWDG_REGISTER_CALLBACKS when set to 1 allows
      the user to configure dynamically the driver callbacks. Use Functions
      @ref HAL_WWDG_RegisterCallback() to register a user callback.
    
      (+) Function @ref HAL_WWDG_RegisterCallback() allows to register following
          callbacks:
          (++) EwiCallback : callback for Early WakeUp Interrupt.
          (++) MspInitCallback : WWDG MspInit.
      This function takes as parameters the HAL peripheral handle, the Callback ID
      and a pointer to the user callback function.
    
      (+) Use function @ref HAL_WWDG_UnRegisterCallback() to reset a callback to
      the default weak (surcharged) function. @ref HAL_WWDG_UnRegisterCallback()
      takes as parameters the HAL peripheral handle and the Callback ID.
      This function allows to reset following callbacks:
          (++) EwiCallback : callback for  Early WakeUp Interrupt.
          (++) MspInitCallback : WWDG MspInit.
    
      When calling @ref HAL_WWDG_Init function, callbacks are reset to the
      corresponding legacy weak (surcharged) functions: 
      @ref HAL_WWDG_EarlyWakeupCallback() and HAL_WWDG_MspInit() only if they have
      not been registered before.
    
      When compilation define USE_HAL_WWDG_REGISTER_CALLBACKS is set to 0 or
      not defined, the callback registering feature is not available 
      and weak (surcharged) callbacks are used.
    
      *** WWDG HAL driver macros list ***
      ===================================
      [..]
        Below the list of most used macros in WWDG HAL driver.
        (+) __HAL_WWDG_ENABLE: Enable the WWDG peripheral
        (+) __HAL_WWDG_GET_FLAG: Get the selected WWDG's flag status
        (+) __HAL_WWDG_CLEAR_FLAG: Clear the WWDG's pending flags
        (+) __HAL_WWDG_ENABLE_IT: Enable the WWDG early wakeup interrupt
Attention

© Copyright (c) 2017 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file stm32l4xx_hal_wwdg.c.