![]() |
|
|||
File indexing completed on 2025-05-11 08:23:35
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_hal_iwdg.h 0004 * @author MCD Application Team 0005 * @brief Header file of IWDG 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_IWDG_H 0021 #define STM32H7xx_HAL_IWDG_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 /** @defgroup IWDG IWDG 0035 * @ingroup RTEMSBSPsARMSTM32H7 0036 * @{ 0037 */ 0038 0039 /* Exported types ------------------------------------------------------------*/ 0040 /** @defgroup IWDG_Exported_Types IWDG Exported Types 0041 * @ingroup RTEMSBSPsARMSTM32H7 0042 * @{ 0043 */ 0044 0045 /** 0046 * @brief IWDG Init structure definition 0047 */ 0048 typedef struct 0049 { 0050 uint32_t Prescaler; /*!< Select the prescaler of the IWDG. 0051 This parameter can be a value of @ref IWDG_Prescaler */ 0052 0053 uint32_t Reload; /*!< Specifies the IWDG down-counter reload value. 0054 This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */ 0055 0056 uint32_t Window; /*!< Specifies the window value to be compared to the down-counter. 0057 This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */ 0058 0059 } IWDG_InitTypeDef; 0060 0061 /** 0062 * @brief IWDG Handle Structure definition 0063 */ 0064 typedef struct 0065 { 0066 IWDG_TypeDef *Instance; /*!< Register base address */ 0067 0068 IWDG_InitTypeDef Init; /*!< IWDG required parameters */ 0069 } IWDG_HandleTypeDef; 0070 0071 0072 /** 0073 * @} 0074 */ 0075 0076 /* Exported constants --------------------------------------------------------*/ 0077 /** @defgroup IWDG_Exported_Constants IWDG Exported Constants 0078 * @ingroup RTEMSBSPsARMSTM32H7 0079 * @{ 0080 */ 0081 0082 /** @defgroup IWDG_Prescaler IWDG Prescaler 0083 * @ingroup RTEMSBSPsARMSTM32H7 0084 * @{ 0085 */ 0086 #define IWDG_PRESCALER_4 0x00000000u /*!< IWDG prescaler set to 4 */ 0087 #define IWDG_PRESCALER_8 IWDG_PR_PR_0 /*!< IWDG prescaler set to 8 */ 0088 #define IWDG_PRESCALER_16 IWDG_PR_PR_1 /*!< IWDG prescaler set to 16 */ 0089 #define IWDG_PRESCALER_32 (IWDG_PR_PR_1 | IWDG_PR_PR_0) /*!< IWDG prescaler set to 32 */ 0090 #define IWDG_PRESCALER_64 IWDG_PR_PR_2 /*!< IWDG prescaler set to 64 */ 0091 #define IWDG_PRESCALER_128 (IWDG_PR_PR_2 | IWDG_PR_PR_0) /*!< IWDG prescaler set to 128 */ 0092 #define IWDG_PRESCALER_256 (IWDG_PR_PR_2 | IWDG_PR_PR_1) /*!< IWDG prescaler set to 256 */ 0093 /** 0094 * @} 0095 */ 0096 0097 /** @defgroup IWDG_Window_option IWDG Window option 0098 * @ingroup RTEMSBSPsARMSTM32H7 0099 * @{ 0100 */ 0101 #define IWDG_WINDOW_DISABLE IWDG_WINR_WIN 0102 /** 0103 * @} 0104 */ 0105 0106 /** 0107 * @} 0108 */ 0109 0110 /* Exported macros -----------------------------------------------------------*/ 0111 /** @defgroup IWDG_Exported_Macros IWDG Exported Macros 0112 * @ingroup RTEMSBSPsARMSTM32H7 0113 * @{ 0114 */ 0115 0116 /** 0117 * @brief Enable the IWDG peripheral. 0118 * @param __HANDLE__ IWDG handle 0119 * @retval None 0120 */ 0121 #define __HAL_IWDG_START(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_ENABLE) 0122 0123 /** 0124 * @brief Reload IWDG counter with value defined in the reload register 0125 * (write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers disabled). 0126 * @param __HANDLE__ IWDG handle 0127 * @retval None 0128 */ 0129 #define __HAL_IWDG_RELOAD_COUNTER(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_RELOAD) 0130 0131 /** 0132 * @} 0133 */ 0134 0135 /* Exported functions --------------------------------------------------------*/ 0136 /** @defgroup IWDG_Exported_Functions IWDG Exported Functions 0137 * @ingroup RTEMSBSPsARMSTM32H7 0138 * @{ 0139 */ 0140 0141 /** @defgroup IWDG_Exported_Functions_Group1 Initialization and Start functions 0142 * @ingroup RTEMSBSPsARMSTM32H7 0143 * @{ 0144 */ 0145 /* Initialization/Start functions ********************************************/ 0146 HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg); 0147 /** 0148 * @} 0149 */ 0150 0151 /** @defgroup IWDG_Exported_Functions_Group2 IO operation functions 0152 * @ingroup RTEMSBSPsARMSTM32H7 0153 * @{ 0154 */ 0155 /* I/O operation functions ****************************************************/ 0156 HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg); 0157 /** 0158 * @} 0159 */ 0160 0161 /** 0162 * @} 0163 */ 0164 0165 /* Private constants ---------------------------------------------------------*/ 0166 /** @defgroup IWDG_Private_Constants IWDG Private Constants 0167 * @ingroup RTEMSBSPsARMSTM32H7 0168 * @{ 0169 */ 0170 0171 /** 0172 * @brief IWDG Key Register BitMask 0173 */ 0174 #define IWDG_KEY_RELOAD 0x0000AAAAu /*!< IWDG Reload Counter Enable */ 0175 #define IWDG_KEY_ENABLE 0x0000CCCCu /*!< IWDG Peripheral Enable */ 0176 #define IWDG_KEY_WRITE_ACCESS_ENABLE 0x00005555u /*!< IWDG KR Write Access Enable */ 0177 #define IWDG_KEY_WRITE_ACCESS_DISABLE 0x00000000u /*!< IWDG KR Write Access Disable */ 0178 0179 /** 0180 * @} 0181 */ 0182 0183 /* Private macros ------------------------------------------------------------*/ 0184 /** @defgroup IWDG_Private_Macros IWDG Private Macros 0185 * @ingroup RTEMSBSPsARMSTM32H7 0186 * @{ 0187 */ 0188 0189 /** 0190 * @brief Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers. 0191 * @param __HANDLE__ IWDG handle 0192 * @retval None 0193 */ 0194 #define IWDG_ENABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_ENABLE) 0195 0196 /** 0197 * @brief Disable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers. 0198 * @param __HANDLE__ IWDG handle 0199 * @retval None 0200 */ 0201 #define IWDG_DISABLE_WRITE_ACCESS(__HANDLE__) WRITE_REG((__HANDLE__)->Instance->KR, IWDG_KEY_WRITE_ACCESS_DISABLE) 0202 0203 /** 0204 * @brief Check IWDG prescaler value. 0205 * @param __PRESCALER__ IWDG prescaler value 0206 * @retval None 0207 */ 0208 #define IS_IWDG_PRESCALER(__PRESCALER__) (((__PRESCALER__) == IWDG_PRESCALER_4) || \ 0209 ((__PRESCALER__) == IWDG_PRESCALER_8) || \ 0210 ((__PRESCALER__) == IWDG_PRESCALER_16) || \ 0211 ((__PRESCALER__) == IWDG_PRESCALER_32) || \ 0212 ((__PRESCALER__) == IWDG_PRESCALER_64) || \ 0213 ((__PRESCALER__) == IWDG_PRESCALER_128)|| \ 0214 ((__PRESCALER__) == IWDG_PRESCALER_256)) 0215 0216 /** 0217 * @brief Check IWDG reload value. 0218 * @param __RELOAD__ IWDG reload value 0219 * @retval None 0220 */ 0221 #define IS_IWDG_RELOAD(__RELOAD__) ((__RELOAD__) <= IWDG_RLR_RL) 0222 0223 /** 0224 * @brief Check IWDG window value. 0225 * @param __WINDOW__ IWDG window value 0226 * @retval None 0227 */ 0228 #define IS_IWDG_WINDOW(__WINDOW__) ((__WINDOW__) <= IWDG_WINR_WIN) 0229 0230 0231 /** 0232 * @} 0233 */ 0234 0235 /** 0236 * @} 0237 */ 0238 0239 /** 0240 * @} 0241 */ 0242 0243 0244 #ifdef __cplusplus 0245 } 0246 #endif 0247 0248 #endif /* STM32H7xx_HAL_IWDG_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |