mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
167:e84263d55307
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32f2xx_hal_wwdg.c
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
AnnaBridge 167:e84263d55307 5 * @version V1.2.1
AnnaBridge 167:e84263d55307 6 * @date 14-April-2017
<> 144:ef7eb2e8f9f7 7 * @brief WWDG HAL module driver.
<> 144:ef7eb2e8f9f7 8 * This file provides firmware functions to manage the following
<> 144:ef7eb2e8f9f7 9 * functionalities of the Window Watchdog (WWDG) peripheral:
<> 144:ef7eb2e8f9f7 10 * + Initialization and de-initialization functions
<> 144:ef7eb2e8f9f7 11 * + IO operation functions
<> 144:ef7eb2e8f9f7 12 * + Peripheral State functions
<> 144:ef7eb2e8f9f7 13 @verbatim
<> 144:ef7eb2e8f9f7 14 ==============================================================================
<> 144:ef7eb2e8f9f7 15 ##### WWDG specific features #####
<> 144:ef7eb2e8f9f7 16 ==============================================================================
<> 144:ef7eb2e8f9f7 17 [..]
<> 144:ef7eb2e8f9f7 18 Once enabled the WWDG generates a system reset on expiry of a programmed
<> 144:ef7eb2e8f9f7 19 time period, unless the program refreshes the counter (downcounter)
<> 144:ef7eb2e8f9f7 20 before reaching 0x3F value (i.e. a reset is generated when the counter
<> 144:ef7eb2e8f9f7 21 value rolls over from 0x40 to 0x3F).
<> 144:ef7eb2e8f9f7 22
<> 144:ef7eb2e8f9f7 23 (+) An MCU reset is also generated if the counter value is refreshed
<> 144:ef7eb2e8f9f7 24 before the counter has reached the refresh window value. This
<> 144:ef7eb2e8f9f7 25 implies that the counter must be refreshed in a limited window.
<> 144:ef7eb2e8f9f7 26 (+) Once enabled the WWDG cannot be disabled except by a system reset.
<> 144:ef7eb2e8f9f7 27 (+) WWDGRST flag in RCC_CSR register can be used to inform when a WWDG
<> 144:ef7eb2e8f9f7 28 reset occurs.
<> 144:ef7eb2e8f9f7 29 (+) The WWDG counter input clock is derived from the APB clock divided
<> 144:ef7eb2e8f9f7 30 by a programmable prescaler.
<> 144:ef7eb2e8f9f7 31 (+) WWDG clock (Hz) = PCLK1 / (4096 * Prescaler)
<> 144:ef7eb2e8f9f7 32 (+) WWDG timeout (mS) = 1000 * Counter / WWDG clock
<> 144:ef7eb2e8f9f7 33 (+) WWDG Counter refresh is allowed between the following limits :
<> 144:ef7eb2e8f9f7 34 (++) min time (mS) = 1000 * (Counter _ Window) / WWDG clock
<> 144:ef7eb2e8f9f7 35 (++) max time (mS) = 1000 * (Counter _ 0x40) / WWDG clock
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37 (+) Min-max timeout value at 50 MHz(PCLK1): 81.9 us / 41.9 ms
<> 144:ef7eb2e8f9f7 38
<> 144:ef7eb2e8f9f7 39 (+) The Early Wakeup Interrupt (EWI) can be used if specific safety
<> 144:ef7eb2e8f9f7 40 operations or data logging must be performed before the actual reset is
<> 144:ef7eb2e8f9f7 41 generated. When the downcounter reaches the value 0x40, an EWI interrupt
<> 144:ef7eb2e8f9f7 42 is generated and the corresponding interrupt service routine (ISR) can
<> 144:ef7eb2e8f9f7 43 be used to trigger specific actions (such as communications or data
<> 144:ef7eb2e8f9f7 44 logging), before resetting the device.
<> 144:ef7eb2e8f9f7 45 In some applications, the EWI interrupt can be used to manage a software
<> 144:ef7eb2e8f9f7 46 system check and/or system recovery/graceful degradation, without
<> 144:ef7eb2e8f9f7 47 generating a WWDG reset. In this case, the corresponding interrupt
<> 144:ef7eb2e8f9f7 48 service routine (ISR) should reload the WWDG counter to avoid the WWDG
<> 144:ef7eb2e8f9f7 49 reset, then trigger the required actions.
<> 144:ef7eb2e8f9f7 50 Note:When the EWI interrupt cannot be served, e.g. due to a system lock
<> 144:ef7eb2e8f9f7 51 in a higher priority task, the WWDG reset will eventually be generated.
<> 144:ef7eb2e8f9f7 52
<> 144:ef7eb2e8f9f7 53 (+) Debug mode : When the microcontroller enters debug mode (core halted),
<> 144:ef7eb2e8f9f7 54 the WWDG counter either continues to work normally or stops, depending
<> 144:ef7eb2e8f9f7 55 on DBG_WWDG_STOP configuration bit in DBG module, accessible through
<> 144:ef7eb2e8f9f7 56 __HAL_DBGMCU_FREEZE_WWDG() and __HAL_DBGMCU_UNFREEZE_WWDG() macros
<> 144:ef7eb2e8f9f7 57
<> 144:ef7eb2e8f9f7 58 ##### How to use this driver #####
<> 144:ef7eb2e8f9f7 59 ==============================================================================
<> 144:ef7eb2e8f9f7 60 [..]
<> 144:ef7eb2e8f9f7 61 (+) Enable WWDG APB1 clock using __HAL_RCC_WWDG_CLK_ENABLE().
<> 144:ef7eb2e8f9f7 62
<> 144:ef7eb2e8f9f7 63 (+) Set the WWDG prescaler, refresh window, counter value and Early Wakeup
<> 144:ef7eb2e8f9f7 64 Interrupt mode using using HAL_WWDG_Init() function.
<> 144:ef7eb2e8f9f7 65 This enables WWDG peripheral and the downcounter starts downcounting
<> 144:ef7eb2e8f9f7 66 from given counter value.
<> 144:ef7eb2e8f9f7 67 Init function can be called again to modify all watchdog parameters,
<> 144:ef7eb2e8f9f7 68 however if EWI mode has been set once, it can't be clear until next
<> 144:ef7eb2e8f9f7 69 reset.
<> 144:ef7eb2e8f9f7 70
<> 144:ef7eb2e8f9f7 71 (+) The application program must refresh the WWDG counter at regular
<> 144:ef7eb2e8f9f7 72 intervals during normal operation to prevent an MCU reset using
<> 144:ef7eb2e8f9f7 73 HAL_WWDG_Refresh() function. This operation must occur only when
<> 144:ef7eb2e8f9f7 74 the counter is lower than the window value already programmed.
<> 144:ef7eb2e8f9f7 75
<> 144:ef7eb2e8f9f7 76 (+) if Early Wakeup Interrupt mode is enable an interrupt is generated when
<> 144:ef7eb2e8f9f7 77 the counter reaches 0x40. User can add his own code in weak function
<> 144:ef7eb2e8f9f7 78 HAL_WWDG_EarlyWakeupCallback().
<> 144:ef7eb2e8f9f7 79
<> 144:ef7eb2e8f9f7 80 *** WWDG HAL driver macros list ***
<> 144:ef7eb2e8f9f7 81 ==================================
<> 144:ef7eb2e8f9f7 82 [..]
<> 144:ef7eb2e8f9f7 83 Below the list of most used macros in WWDG HAL driver.
<> 144:ef7eb2e8f9f7 84
<> 144:ef7eb2e8f9f7 85 (+) __HAL_WWDG_GET_IT_SOURCE: Check the selected WWDG's interrupt source.
<> 144:ef7eb2e8f9f7 86 (+) __HAL_WWDG_GET_FLAG: Get the selected WWDG's flag status.
<> 144:ef7eb2e8f9f7 87 (+) __HAL_WWDG_CLEAR_FLAG: Clear the WWDG's pending flags.
<> 144:ef7eb2e8f9f7 88
<> 144:ef7eb2e8f9f7 89 @endverbatim
<> 144:ef7eb2e8f9f7 90 ******************************************************************************
<> 144:ef7eb2e8f9f7 91 * @attention
<> 144:ef7eb2e8f9f7 92 *
AnnaBridge 167:e84263d55307 93 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 94 *
<> 144:ef7eb2e8f9f7 95 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 96 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 97 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 98 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 99 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 100 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 101 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 102 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 103 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 104 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 105 *
<> 144:ef7eb2e8f9f7 106 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 107 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 108 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 109 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 110 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 111 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 112 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 113 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 114 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 115 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 116 *
<> 144:ef7eb2e8f9f7 117 ******************************************************************************
<> 144:ef7eb2e8f9f7 118 */
<> 144:ef7eb2e8f9f7 119
<> 144:ef7eb2e8f9f7 120 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 121 #include "stm32f2xx_hal.h"
<> 144:ef7eb2e8f9f7 122
<> 144:ef7eb2e8f9f7 123 /** @addtogroup STM32F2xx_HAL_Driver
<> 144:ef7eb2e8f9f7 124 * @{
<> 144:ef7eb2e8f9f7 125 */
<> 144:ef7eb2e8f9f7 126
<> 144:ef7eb2e8f9f7 127 #ifdef HAL_WWDG_MODULE_ENABLED
<> 144:ef7eb2e8f9f7 128 /** @defgroup WWDG WWDG
<> 144:ef7eb2e8f9f7 129 * @brief WWDG HAL module driver.
<> 144:ef7eb2e8f9f7 130 * @{
<> 144:ef7eb2e8f9f7 131 */
<> 144:ef7eb2e8f9f7 132
<> 144:ef7eb2e8f9f7 133 /* Private typedef -----------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 134 /* Private define ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 135 /* Private macro -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 136 /* Private variables ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 137 /* Private function prototypes -----------------------------------------------*/
<> 144:ef7eb2e8f9f7 138 /* Exported functions --------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 139
<> 144:ef7eb2e8f9f7 140 /** @defgroup WWDG_Exported_Functions WWDG Exported Functions
<> 144:ef7eb2e8f9f7 141 * @{
<> 144:ef7eb2e8f9f7 142 */
<> 144:ef7eb2e8f9f7 143
<> 144:ef7eb2e8f9f7 144 /** @defgroup WWDG_Exported_Functions_Group1 Initialization and Configuration functions
<> 144:ef7eb2e8f9f7 145 * @brief Initialization and Configuration functions.
<> 144:ef7eb2e8f9f7 146 *
<> 144:ef7eb2e8f9f7 147 @verbatim
<> 144:ef7eb2e8f9f7 148 ==============================================================================
<> 144:ef7eb2e8f9f7 149 ##### Initialization and Configuration functions #####
<> 144:ef7eb2e8f9f7 150 ==============================================================================
<> 144:ef7eb2e8f9f7 151 [..]
<> 144:ef7eb2e8f9f7 152 This section provides functions allowing to:
<> 144:ef7eb2e8f9f7 153 (+) Initialize and start the WWDG according to the specified parameters
<> 144:ef7eb2e8f9f7 154 in the WWDG_InitTypeDef of associated handle.
<> 144:ef7eb2e8f9f7 155 (+) Initialize the WWDG MSP.
<> 144:ef7eb2e8f9f7 156
<> 144:ef7eb2e8f9f7 157 @endverbatim
<> 144:ef7eb2e8f9f7 158 * @{
<> 144:ef7eb2e8f9f7 159 */
<> 144:ef7eb2e8f9f7 160
<> 144:ef7eb2e8f9f7 161 /**
<> 144:ef7eb2e8f9f7 162 * @brief Initialize the WWDG according to the specified.
<> 144:ef7eb2e8f9f7 163 * parameters in the WWDG_InitTypeDef of associated handle.
<> 144:ef7eb2e8f9f7 164 * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 165 * the configuration information for the specified WWDG module.
<> 144:ef7eb2e8f9f7 166 * @retval HAL status
<> 144:ef7eb2e8f9f7 167 */
<> 144:ef7eb2e8f9f7 168 HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg)
<> 144:ef7eb2e8f9f7 169 {
<> 144:ef7eb2e8f9f7 170 /* Check the WWDG handle allocation */
<> 144:ef7eb2e8f9f7 171 if(hwwdg == NULL)
<> 144:ef7eb2e8f9f7 172 {
<> 144:ef7eb2e8f9f7 173 return HAL_ERROR;
<> 144:ef7eb2e8f9f7 174 }
<> 144:ef7eb2e8f9f7 175
<> 144:ef7eb2e8f9f7 176 /* Check the parameters */
<> 144:ef7eb2e8f9f7 177 assert_param(IS_WWDG_ALL_INSTANCE(hwwdg->Instance));
<> 144:ef7eb2e8f9f7 178 assert_param(IS_WWDG_PRESCALER(hwwdg->Init.Prescaler));
<> 144:ef7eb2e8f9f7 179 assert_param(IS_WWDG_WINDOW(hwwdg->Init.Window));
<> 144:ef7eb2e8f9f7 180 assert_param(IS_WWDG_COUNTER(hwwdg->Init.Counter));
<> 144:ef7eb2e8f9f7 181 assert_param(IS_WWDG_EWI_MODE(hwwdg->Init.EWIMode));
<> 144:ef7eb2e8f9f7 182
<> 144:ef7eb2e8f9f7 183 /* Init the low level hardware */
<> 144:ef7eb2e8f9f7 184 HAL_WWDG_MspInit(hwwdg);
<> 144:ef7eb2e8f9f7 185
<> 144:ef7eb2e8f9f7 186 /* Set WWDG Counter */
<> 144:ef7eb2e8f9f7 187 WRITE_REG(hwwdg->Instance->CR, (WWDG_CR_WDGA | hwwdg->Init.Counter));
<> 144:ef7eb2e8f9f7 188
<> 144:ef7eb2e8f9f7 189 /* Set WWDG Prescaler and Window */
<> 144:ef7eb2e8f9f7 190 WRITE_REG(hwwdg->Instance->CFR, (hwwdg->Init.EWIMode | hwwdg->Init.Prescaler | hwwdg->Init.Window));
<> 144:ef7eb2e8f9f7 191
<> 144:ef7eb2e8f9f7 192 /* Return function status */
<> 144:ef7eb2e8f9f7 193 return HAL_OK;
<> 144:ef7eb2e8f9f7 194 }
<> 144:ef7eb2e8f9f7 195
<> 144:ef7eb2e8f9f7 196 /**
<> 144:ef7eb2e8f9f7 197 * @brief Initialize the WWDG MSP.
<> 144:ef7eb2e8f9f7 198 * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 199 * the configuration information for the specified WWDG module.
<> 144:ef7eb2e8f9f7 200 * @note When rewriting this function in user file, mechanism may be added
<> 144:ef7eb2e8f9f7 201 * to avoid multiple initialize when HAL_WWDG_Init function is called
<> 144:ef7eb2e8f9f7 202 * again to change parameters.
<> 144:ef7eb2e8f9f7 203 * @retval None
<> 144:ef7eb2e8f9f7 204 */
<> 144:ef7eb2e8f9f7 205 __weak void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg)
<> 144:ef7eb2e8f9f7 206 {
<> 144:ef7eb2e8f9f7 207 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 208 UNUSED(hwwdg);
<> 144:ef7eb2e8f9f7 209
<> 144:ef7eb2e8f9f7 210 /* NOTE: This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 211 the HAL_WWDG_MspInit could be implemented in the user file
<> 144:ef7eb2e8f9f7 212 */
<> 144:ef7eb2e8f9f7 213 }
<> 144:ef7eb2e8f9f7 214
<> 144:ef7eb2e8f9f7 215 /**
<> 144:ef7eb2e8f9f7 216 * @}
<> 144:ef7eb2e8f9f7 217 */
<> 144:ef7eb2e8f9f7 218
<> 144:ef7eb2e8f9f7 219 /** @defgroup WWDG_Exported_Functions_Group2 IO operation functions
<> 144:ef7eb2e8f9f7 220 * @brief IO operation functions
<> 144:ef7eb2e8f9f7 221 *
<> 144:ef7eb2e8f9f7 222 @verbatim
<> 144:ef7eb2e8f9f7 223 ==============================================================================
<> 144:ef7eb2e8f9f7 224 ##### IO operation functions #####
<> 144:ef7eb2e8f9f7 225 ==============================================================================
<> 144:ef7eb2e8f9f7 226 [..]
<> 144:ef7eb2e8f9f7 227 This section provides functions allowing to:
<> 144:ef7eb2e8f9f7 228 (+) Refresh the WWDG.
<> 144:ef7eb2e8f9f7 229 (+) Handle WWDG interrupt request and associated function callback.
<> 144:ef7eb2e8f9f7 230
<> 144:ef7eb2e8f9f7 231 @endverbatim
<> 144:ef7eb2e8f9f7 232 * @{
<> 144:ef7eb2e8f9f7 233 */
<> 144:ef7eb2e8f9f7 234
<> 144:ef7eb2e8f9f7 235 /**
<> 144:ef7eb2e8f9f7 236 * @brief Refresh the WWDG.
<> 144:ef7eb2e8f9f7 237 * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 238 * the configuration information for the specified WWDG module.
<> 144:ef7eb2e8f9f7 239 * @retval HAL status
<> 144:ef7eb2e8f9f7 240 */
<> 144:ef7eb2e8f9f7 241 HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg)
<> 144:ef7eb2e8f9f7 242 {
<> 144:ef7eb2e8f9f7 243 /* Write to WWDG CR the WWDG Counter value to refresh with */
<> 144:ef7eb2e8f9f7 244 WRITE_REG(hwwdg->Instance->CR, (hwwdg->Init.Counter));
<> 144:ef7eb2e8f9f7 245
<> 144:ef7eb2e8f9f7 246 /* Return function status */
<> 144:ef7eb2e8f9f7 247 return HAL_OK;
<> 144:ef7eb2e8f9f7 248 }
<> 144:ef7eb2e8f9f7 249
<> 144:ef7eb2e8f9f7 250 /**
<> 144:ef7eb2e8f9f7 251 * @brief Handle WWDG interrupt request.
<> 144:ef7eb2e8f9f7 252 * @note The Early Wakeup Interrupt (EWI) can be used if specific safety operations
<> 144:ef7eb2e8f9f7 253 * or data logging must be performed before the actual reset is generated.
<> 144:ef7eb2e8f9f7 254 * The EWI interrupt is enabled by calling HAL_WWDG_Init function with
<> 144:ef7eb2e8f9f7 255 * EWIMode set to WWDG_EWI_ENABLE.
<> 144:ef7eb2e8f9f7 256 * When the downcounter reaches the value 0x40, and EWI interrupt is
<> 144:ef7eb2e8f9f7 257 * generated and the corresponding Interrupt Service Routine (ISR) can
<> 144:ef7eb2e8f9f7 258 * be used to trigger specific actions (such as communications or data
<> 144:ef7eb2e8f9f7 259 * logging), before resetting the device.
<> 144:ef7eb2e8f9f7 260 * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 261 * the configuration information for the specified WWDG module.
<> 144:ef7eb2e8f9f7 262 * @retval None
<> 144:ef7eb2e8f9f7 263 */
<> 144:ef7eb2e8f9f7 264 void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)
<> 144:ef7eb2e8f9f7 265 {
<> 144:ef7eb2e8f9f7 266 /* Check if Early Wakeup Interrupt is enable */
<> 144:ef7eb2e8f9f7 267 if(__HAL_WWDG_GET_IT_SOURCE(hwwdg, WWDG_IT_EWI) != RESET)
<> 144:ef7eb2e8f9f7 268 {
<> 144:ef7eb2e8f9f7 269 /* Check if WWDG Early Wakeup Interrupt occurred */
<> 144:ef7eb2e8f9f7 270 if(__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET)
<> 144:ef7eb2e8f9f7 271 {
<> 144:ef7eb2e8f9f7 272 /* Clear the WWDG Early Wakeup flag */
<> 144:ef7eb2e8f9f7 273 __HAL_WWDG_CLEAR_FLAG(hwwdg, WWDG_FLAG_EWIF);
<> 144:ef7eb2e8f9f7 274
<> 144:ef7eb2e8f9f7 275 /* Early Wakeup callback */
<> 144:ef7eb2e8f9f7 276 HAL_WWDG_EarlyWakeupCallback(hwwdg);
<> 144:ef7eb2e8f9f7 277 }
<> 144:ef7eb2e8f9f7 278 }
<> 144:ef7eb2e8f9f7 279 }
<> 144:ef7eb2e8f9f7 280
<> 144:ef7eb2e8f9f7 281 /**
<> 144:ef7eb2e8f9f7 282 * @brief WWDG Early Wakeup callback.
<> 144:ef7eb2e8f9f7 283 * @param hwwdg : pointer to a WWDG_HandleTypeDef structure that contains
<> 144:ef7eb2e8f9f7 284 * the configuration information for the specified WWDG module.
<> 144:ef7eb2e8f9f7 285 * @retval None
<> 144:ef7eb2e8f9f7 286 */
<> 144:ef7eb2e8f9f7 287 __weak void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg)
<> 144:ef7eb2e8f9f7 288 {
<> 144:ef7eb2e8f9f7 289 /* Prevent unused argument(s) compilation warning */
<> 144:ef7eb2e8f9f7 290 UNUSED(hwwdg);
<> 144:ef7eb2e8f9f7 291
<> 144:ef7eb2e8f9f7 292 /* NOTE: This function should not be modified, when the callback is needed,
<> 144:ef7eb2e8f9f7 293 the HAL_WWDG_EarlyWakeupCallback could be implemented in the user file
<> 144:ef7eb2e8f9f7 294 */
<> 144:ef7eb2e8f9f7 295 }
<> 144:ef7eb2e8f9f7 296
<> 144:ef7eb2e8f9f7 297 /**
<> 144:ef7eb2e8f9f7 298 * @}
<> 144:ef7eb2e8f9f7 299 */
<> 144:ef7eb2e8f9f7 300
<> 144:ef7eb2e8f9f7 301 /**
<> 144:ef7eb2e8f9f7 302 * @}
<> 144:ef7eb2e8f9f7 303 */
<> 144:ef7eb2e8f9f7 304
<> 144:ef7eb2e8f9f7 305 #endif /* HAL_WWDG_MODULE_ENABLED */
<> 144:ef7eb2e8f9f7 306 /**
<> 144:ef7eb2e8f9f7 307 * @}
<> 144:ef7eb2e8f9f7 308 */
<> 144:ef7eb2e8f9f7 309
<> 144:ef7eb2e8f9f7 310 /**
<> 144:ef7eb2e8f9f7 311 * @}
<> 144:ef7eb2e8f9f7 312 */
<> 144:ef7eb2e8f9f7 313
<> 144:ef7eb2e8f9f7 314 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/