![]() |
|
|||
File indexing completed on 2025-05-11 08:23:36
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_hal_wwdg.h 0004 * @author MCD Application Team 0005 * @brief Header file of WWDG HAL module. 0006 ****************************************************************************** 0007 * @attention 0008 * 0009 * Copyright (c) 2017 STMicroelectronics. 0010 * All rights reserved. 0011 * 0012 * This software is licensed under terms that can be found in the LICENSE file 0013 * in the root directory of this software component. 0014 * If no LICENSE file comes with this software, it is provided AS-IS. 0015 * 0016 ****************************************************************************** 0017 */ 0018 0019 /* Define to prevent recursive inclusion -------------------------------------*/ 0020 #ifndef STM32H7xx_HAL_WWDG_H 0021 #define STM32H7xx_HAL_WWDG_H 0022 0023 #ifdef __cplusplus 0024 extern "C" { 0025 #endif 0026 0027 /* Includes ------------------------------------------------------------------*/ 0028 #include "stm32h7xx_hal_def.h" 0029 0030 /** @addtogroup STM32H7xx_HAL_Driver 0031 * @{ 0032 */ 0033 0034 /** @addtogroup WWDG 0035 * @{ 0036 */ 0037 0038 /* Exported types ------------------------------------------------------------*/ 0039 0040 /** @defgroup WWDG_Exported_Types WWDG Exported Types 0041 * @ingroup RTEMSBSPsARMSTM32H7 0042 * @{ 0043 */ 0044 0045 /** 0046 * @brief WWDG Init structure definition 0047 */ 0048 typedef struct 0049 { 0050 uint32_t Prescaler; /*!< Specifies the prescaler value of the WWDG. 0051 This parameter can be a value of @ref WWDG_Prescaler */ 0052 0053 uint32_t Window; /*!< Specifies the WWDG window value to be compared to the downcounter. 0054 This parameter must be a number Min_Data = 0x40 and Max_Data = 0x7F */ 0055 0056 uint32_t Counter; /*!< Specifies the WWDG free-running downcounter value. 0057 This parameter must be a number between Min_Data = 0x40 and Max_Data = 0x7F */ 0058 0059 uint32_t EWIMode ; /*!< Specifies if WWDG Early Wakeup Interrupt is enable or not. 0060 This parameter can be a value of @ref WWDG_EWI_Mode */ 0061 0062 } WWDG_InitTypeDef; 0063 0064 /** 0065 * @brief WWDG handle Structure definition 0066 */ 0067 #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1) 0068 typedef struct __WWDG_HandleTypeDef 0069 #else 0070 typedef struct 0071 #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */ 0072 { 0073 WWDG_TypeDef *Instance; /*!< Register base address */ 0074 0075 WWDG_InitTypeDef Init; /*!< WWDG required parameters */ 0076 0077 #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1) 0078 void (* EwiCallback)(struct __WWDG_HandleTypeDef *hwwdg); /*!< WWDG Early WakeUp Interrupt callback */ 0079 0080 void (* MspInitCallback)(struct __WWDG_HandleTypeDef *hwwdg); /*!< WWDG Msp Init callback */ 0081 #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */ 0082 } WWDG_HandleTypeDef; 0083 0084 #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1) 0085 /** 0086 * @brief HAL WWDG common Callback ID enumeration definition 0087 */ 0088 typedef enum 0089 { 0090 HAL_WWDG_EWI_CB_ID = 0x00U, /*!< WWDG EWI callback ID */ 0091 HAL_WWDG_MSPINIT_CB_ID = 0x01U, /*!< WWDG MspInit callback ID */ 0092 } HAL_WWDG_CallbackIDTypeDef; 0093 0094 /** 0095 * @brief HAL WWDG Callback pointer definition 0096 */ 0097 typedef void (*pWWDG_CallbackTypeDef)(WWDG_HandleTypeDef *hppp); /*!< pointer to a WWDG common callback functions */ 0098 0099 #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */ 0100 /** 0101 * @} 0102 */ 0103 0104 /* Exported constants --------------------------------------------------------*/ 0105 0106 /** @defgroup WWDG_Exported_Constants WWDG Exported Constants 0107 * @ingroup RTEMSBSPsARMSTM32H7 0108 * @{ 0109 */ 0110 0111 /** @defgroup WWDG_Interrupt_definition WWDG Interrupt definition 0112 * @ingroup RTEMSBSPsARMSTM32H7 0113 * @{ 0114 */ 0115 #define WWDG_IT_EWI WWDG_CFR_EWI /*!< Early wakeup interrupt */ 0116 /** 0117 * @} 0118 */ 0119 0120 /** @defgroup WWDG_Flag_definition WWDG Flag definition 0121 * @ingroup RTEMSBSPsARMSTM32H7 0122 * @brief WWDG Flag definition 0123 * @{ 0124 */ 0125 #define WWDG_FLAG_EWIF WWDG_SR_EWIF /*!< Early wakeup interrupt flag */ 0126 /** 0127 * @} 0128 */ 0129 0130 /** @defgroup WWDG_Prescaler WWDG Prescaler 0131 * @ingroup RTEMSBSPsARMSTM32H7 0132 * @{ 0133 */ 0134 #define WWDG_PRESCALER_1 0x00000000u /*!< WWDG counter clock = (PCLK1/4096)/1 */ 0135 #define WWDG_PRESCALER_2 WWDG_CFR_WDGTB_0 /*!< WWDG counter clock = (PCLK1/4096)/2 */ 0136 #define WWDG_PRESCALER_4 WWDG_CFR_WDGTB_1 /*!< WWDG counter clock = (PCLK1/4096)/4 */ 0137 #define WWDG_PRESCALER_8 (WWDG_CFR_WDGTB_1 | WWDG_CFR_WDGTB_0) /*!< WWDG counter clock = (PCLK1/4096)/8 */ 0138 #define WWDG_PRESCALER_16 WWDG_CFR_WDGTB_2 /*!< WWDG counter clock = (PCLK1/4096)/16 */ 0139 #define WWDG_PRESCALER_32 (WWDG_CFR_WDGTB_2 | WWDG_CFR_WDGTB_0) /*!< WWDG counter clock = (PCLK1/4096)/32 */ 0140 #define WWDG_PRESCALER_64 (WWDG_CFR_WDGTB_2 | WWDG_CFR_WDGTB_1) /*!< WWDG counter clock = (PCLK1/4096)/64 */ 0141 #define WWDG_PRESCALER_128 WWDG_CFR_WDGTB /*!< WWDG counter clock = (PCLK1/4096)/128 */ 0142 /** 0143 * @} 0144 */ 0145 0146 /** @defgroup WWDG_EWI_Mode WWDG Early Wakeup Interrupt Mode 0147 * @ingroup RTEMSBSPsARMSTM32H7 0148 * @{ 0149 */ 0150 #define WWDG_EWI_DISABLE 0x00000000u /*!< EWI Disable */ 0151 #define WWDG_EWI_ENABLE WWDG_CFR_EWI /*!< EWI Enable */ 0152 /** 0153 * @} 0154 */ 0155 0156 /** 0157 * @} 0158 */ 0159 0160 /* Private macros ------------------------------------------------------------*/ 0161 0162 /** @defgroup WWDG_Private_Macros WWDG Private Macros 0163 * @ingroup RTEMSBSPsARMSTM32H7 0164 * @{ 0165 */ 0166 #define IS_WWDG_PRESCALER(__PRESCALER__) (((__PRESCALER__) == WWDG_PRESCALER_1) || \ 0167 ((__PRESCALER__) == WWDG_PRESCALER_2) || \ 0168 ((__PRESCALER__) == WWDG_PRESCALER_4) || \ 0169 ((__PRESCALER__) == WWDG_PRESCALER_8) || \ 0170 ((__PRESCALER__) == WWDG_PRESCALER_16) || \ 0171 ((__PRESCALER__) == WWDG_PRESCALER_32) || \ 0172 ((__PRESCALER__) == WWDG_PRESCALER_64) || \ 0173 ((__PRESCALER__) == WWDG_PRESCALER_128)) 0174 0175 #define IS_WWDG_WINDOW(__WINDOW__) (((__WINDOW__) >= WWDG_CFR_W_6) && ((__WINDOW__) <= WWDG_CFR_W)) 0176 0177 #define IS_WWDG_COUNTER(__COUNTER__) (((__COUNTER__) >= WWDG_CR_T_6) && ((__COUNTER__) <= WWDG_CR_T)) 0178 0179 #define IS_WWDG_EWI_MODE(__MODE__) (((__MODE__) == WWDG_EWI_ENABLE) || \ 0180 ((__MODE__) == WWDG_EWI_DISABLE)) 0181 /** 0182 * @} 0183 */ 0184 0185 0186 /* Exported macros ------------------------------------------------------------*/ 0187 0188 /** @defgroup WWDG_Exported_Macros WWDG Exported Macros 0189 * @ingroup RTEMSBSPsARMSTM32H7 0190 * @{ 0191 */ 0192 0193 /** 0194 * @brief Enable the WWDG peripheral. 0195 * @param __HANDLE__ WWDG handle 0196 * @retval None 0197 */ 0198 #define __HAL_WWDG_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, WWDG_CR_WDGA) 0199 0200 /** 0201 * @brief Enable the WWDG early wakeup interrupt. 0202 * @param __HANDLE__ WWDG handle 0203 * @param __INTERRUPT__ specifies the interrupt to enable. 0204 * This parameter can be one of the following values: 0205 * @arg WWDG_IT_EWI: Early wakeup interrupt 0206 * @note Once enabled this interrupt cannot be disabled except by a system reset. 0207 * @retval None 0208 */ 0209 #define __HAL_WWDG_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CFR, (__INTERRUPT__)) 0210 0211 /** 0212 * @brief Check whether the selected WWDG interrupt has occurred or not. 0213 * @param __HANDLE__ WWDG handle 0214 * @param __INTERRUPT__ specifies the it to check. 0215 * This parameter can be one of the following values: 0216 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt IT 0217 * @retval The new state of WWDG_FLAG (SET or RESET). 0218 */ 0219 #define __HAL_WWDG_GET_IT(__HANDLE__, __INTERRUPT__) __HAL_WWDG_GET_FLAG((__HANDLE__),(__INTERRUPT__)) 0220 0221 /** @brief Clear the WWDG interrupt pending bits. 0222 * bits to clear the selected interrupt pending bits. 0223 * @param __HANDLE__ WWDG handle 0224 * @param __INTERRUPT__ specifies the interrupt pending bit to clear. 0225 * This parameter can be one of the following values: 0226 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag 0227 */ 0228 #define __HAL_WWDG_CLEAR_IT(__HANDLE__, __INTERRUPT__) __HAL_WWDG_CLEAR_FLAG((__HANDLE__), (__INTERRUPT__)) 0229 0230 /** 0231 * @brief Check whether the specified WWDG flag is set or not. 0232 * @param __HANDLE__ WWDG handle 0233 * @param __FLAG__ specifies the flag to check. 0234 * This parameter can be one of the following values: 0235 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag 0236 * @retval The new state of WWDG_FLAG (SET or RESET). 0237 */ 0238 #define __HAL_WWDG_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) 0239 0240 /** 0241 * @brief Clear the WWDG's pending flags. 0242 * @param __HANDLE__ WWDG handle 0243 * @param __FLAG__ specifies the flag to clear. 0244 * This parameter can be one of the following values: 0245 * @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag 0246 * @retval None 0247 */ 0248 #define __HAL_WWDG_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__)) 0249 0250 /** @brief Check whether the specified WWDG interrupt source is enabled or not. 0251 * @param __HANDLE__ WWDG Handle. 0252 * @param __INTERRUPT__ specifies the WWDG interrupt source to check. 0253 * This parameter can be one of the following values: 0254 * @arg WWDG_IT_EWI: Early Wakeup Interrupt 0255 * @retval state of __INTERRUPT__ (TRUE or FALSE). 0256 */ 0257 #define __HAL_WWDG_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CFR\ 0258 & (__INTERRUPT__)) == (__INTERRUPT__)) 0259 0260 /** 0261 * @} 0262 */ 0263 0264 /* Exported functions --------------------------------------------------------*/ 0265 0266 /** @addtogroup WWDG_Exported_Functions 0267 * @{ 0268 */ 0269 0270 /** @addtogroup WWDG_Exported_Functions_Group1 0271 * @{ 0272 */ 0273 /* Initialization/de-initialization functions **********************************/ 0274 HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg); 0275 void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg); 0276 /* Callbacks Register/UnRegister functions ***********************************/ 0277 #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1) 0278 HAL_StatusTypeDef HAL_WWDG_RegisterCallback(WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID, 0279 pWWDG_CallbackTypeDef pCallback); 0280 HAL_StatusTypeDef HAL_WWDG_UnRegisterCallback(WWDG_HandleTypeDef *hwwdg, HAL_WWDG_CallbackIDTypeDef CallbackID); 0281 #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */ 0282 0283 /** 0284 * @} 0285 */ 0286 0287 /** @addtogroup WWDG_Exported_Functions_Group2 0288 * @{ 0289 */ 0290 /* I/O operation functions ******************************************************/ 0291 HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg); 0292 void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg); 0293 void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg); 0294 /** 0295 * @} 0296 */ 0297 0298 /** 0299 * @} 0300 */ 0301 0302 /** 0303 * @} 0304 */ 0305 0306 /** 0307 * @} 0308 */ 0309 0310 #ifdef __cplusplus 0311 } 0312 #endif 0313 0314 #endif /* STM32H7xx_HAL_WWDG_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |