1 /** 2 ****************************************************************************** 3 * @file stm32h5xx_hal.h 4 * @author MCD Application Team 5 * @brief This file contains all the functions prototypes for the HAL 6 * module driver. 7 ****************************************************************************** 8 * @attention 9 * 10 * Copyright (c) 2023 STMicroelectronics. 11 * All rights reserved. 12 * 13 * This software component is licensed by ST under BSD 3-Clause license, 14 * the "License"; You may not use this file except in compliance with the 15 * License. You may obtain a copy of the License at: 16 * opensource.org/licenses/BSD-3-Clause 17 * 18 ****************************************************************************** 19 */ 20 21 /* Define to prevent recursive inclusion -------------------------------------*/ 22 #ifndef __STM32H5xx_HAL_H 23 #define __STM32H5xx_HAL_H 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif /* __cplusplus */ 28 29 /* Includes ------------------------------------------------------------------*/ 30 #include "stm32h5xx_hal_conf.h" 31 32 /** @addtogroup STM32H5xx_HAL_Driver 33 * @{ 34 */ 35 36 /** @addtogroup HAL 37 * @{ 38 */ 39 40 /* Exported types ------------------------------------------------------------*/ 41 /** @defgroup HAL_Exported_Types HAL Exported Types 42 * @{ 43 */ 44 45 /** @defgroup HAL_TICK_FREQ Tick Frequency 46 * @{ 47 */ 48 typedef enum 49 { 50 HAL_TICK_FREQ_10HZ = 100U, 51 HAL_TICK_FREQ_100HZ = 10U, 52 HAL_TICK_FREQ_1KHZ = 1U, 53 HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ 54 } HAL_TickFreqTypeDef; 55 /** 56 * @} 57 */ 58 59 /** 60 * @} 61 */ 62 63 /* Exported variables --------------------------------------------------------*/ 64 /** @defgroup HAL_Exported_Variables HAL Exported Variables 65 * @{ 66 */ 67 extern __IO uint32_t uwTick; 68 extern uint32_t uwTickPrio; 69 extern HAL_TickFreqTypeDef uwTickFreq; 70 /** 71 * @} 72 */ 73 74 /* Exported constants --------------------------------------------------------*/ 75 /** @defgroup SBS_Exported_Constants SBS Exported Constants 76 * @{ 77 */ 78 79 /** @defgroup SBS_FPU_Interrupts FPU Interrupts 80 * @{ 81 */ 82 #define SBS_IT_FPU_IOC SBS_FPUIMR_FPU_IE_0 /*!< Floating Point Unit Invalid operation Interrupt */ 83 #define SBS_IT_FPU_DZC SBS_FPUIMR_FPU_IE_1 /*!< Floating Point Unit Divide-by-zero Interrupt */ 84 #define SBS_IT_FPU_UFC SBS_FPUIMR_FPU_IE_2 /*!< Floating Point Unit Underflow Interrupt */ 85 #define SBS_IT_FPU_OFC SBS_FPUIMR_FPU_IE_3 /*!< Floating Point Unit Overflow Interrupt */ 86 #define SBS_IT_FPU_IDC SBS_FPUIMR_FPU_IE_4 /*!< Floating Point Unit Input denormal Interrupt */ 87 #define SBS_IT_FPU_IXC SBS_FPUIMR_FPU_IE_5 /*!< Floating Point Unit Inexact Interrupt */ 88 89 /** 90 * @} 91 */ 92 93 /** @defgroup SBS_BREAK_CONFIG SBS Break Config 94 * @{ 95 */ 96 #define SBS_BREAK_FLASH_ECC SBS_CFGR2_ECCL /*!< Enable and lock the FLASH ECC double error with TIM1/8/15/16/17 97 Break inputs.*/ 98 #define SBS_BREAK_PVD SBS_CFGR2_PVDL /*!< Enable and lock the PVD connection with TIM1/8/15/16/17 99 Break inputs. */ 100 #define SBS_BREAK_SRAM_ECC SBS_CFGR2_SEL /*!< Enable and lock the SRAM ECC double error signal with 101 TIM1/8/15/16/17 Break inputs.*/ 102 #define SBS_BREAK_LOCKUP SBS_CFGR2_CLL /*!< Enable and lock the connection of Cortex-M33 LOCKUP (hardfault) 103 output to TIM1/8/15/16/17 Break inputs.*/ 104 105 /** 106 * @} 107 */ 108 109 /** @defgroup VREFBUF_VoltageScale VREFBUF Voltage Scale 110 * @{ 111 */ 112 #define VREFBUF_VOLTAGE_SCALE0 ((uint32_t)0x00000000) /*!< Voltage reference scale 0 (VREF_OUT1) */ 113 #define VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS_0 /*!< Voltage reference scale 1 (VREF_OUT2) */ 114 #define VREFBUF_VOLTAGE_SCALE2 VREFBUF_CSR_VRS_1 /*!< Voltage reference scale 2 (VREF_OUT3) */ 115 #define VREFBUF_VOLTAGE_SCALE3 (VREFBUF_CSR_VRS_0 | VREFBUF_CSR_VRS_1) /*!< Voltage reference scale 3 (VREF_OUT4) */ 116 117 /** 118 * @} 119 */ 120 121 /** @defgroup VREFBUF_HighImpedance VREFBUF High Impedance 122 * @{ 123 */ 124 #define VREFBUF_HIGH_IMPEDANCE_DISABLE ((uint32_t)0x00000000) /*!< VREF_plus pin is internally connected to 125 Voltage reference buffer output */ 126 #define VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_CSR_HIZ /*!< VREF_plus pin is high impedance */ 127 128 /** 129 * @} 130 */ 131 132 /** @defgroup SBS_FastModePlus_GPIO Fast-mode Plus on GPIO 133 * @{ 134 */ 135 136 /** @brief Fast-mode Plus driving capability on a specific GPIO 137 */ 138 #define SBS_FASTMODEPLUS_PB6 SBS_PMCR_PB6_FMP /*!< Enable Fast-mode Plus on PB6 */ 139 #define SBS_FASTMODEPLUS_PB7 SBS_PMCR_PB7_FMP /*!< Enable Fast-mode Plus on PB7 */ 140 #define SBS_FASTMODEPLUS_PB8 SBS_PMCR_PB8_FMP /*!< Enable Fast-mode Plus on PB8 */ 141 #if defined(SBS_PMCR_PB9_FMP) 142 #define SBS_FASTMODEPLUS_PB9 SBS_PMCR_PB9_FMP /*!< Enable Fast-mode Plus on PB9 */ 143 #endif /* SBS_PMCR_PB9_FMP */ 144 145 /** 146 * @} 147 */ 148 149 #if defined(SBS_PMCR_ETH_SEL_PHY) 150 /** @defgroup SBS_Ethernet_Config Ethernet Config 151 * @{ 152 */ 153 #define SBS_ETH_MII ((uint32_t)0x00000000) /*!< Select the Media Independent Interface (MII) or GMII */ 154 #define SBS_ETH_RMII SBS_PMCR_ETH_SEL_PHY_2 /*!< Select the Reduced Media Independent Interface (RMII) */ 155 156 #define IS_SBS_ETHERNET_CONFIG(CONFIG) (((CONFIG) == SBS_ETH_MII) || \ 157 ((CONFIG) == SBS_ETH_RMII)) 158 159 /** 160 * @} 161 */ 162 #endif /* SBS_PMCR_ETH_SEL_PHY */ 163 164 /** @defgroup SBS_Boostvddsel_Selection Boost VDD Selection 165 * @{ 166 */ 167 #define SBS_BOOSTVDDSEL_VDDA ((uint32_t)0x00000000) /*!< Select VDDA as analog switch supply voltage 168 (when BOOSTEN bit is cleared) */ 169 #define SBS_BOOSTVDDSEL_VDD SBS_PMCR_BOOSTVDDSEL /*!< Select VDD as analog switch supply voltage 170 (regardless of BOOSTEN bit) */ 171 172 #define IS_SBS_BOOSTVDD_SELECTION(BOOSTVDDSEL) (((BOOSTVDDSEL) == SBS_BOOSTVDDSEL_VDDA) || \ 173 ((BOOSTVDDSEL) == SBS_BOOSTVDDSEL_VDD)) 174 175 /** 176 * @} 177 */ 178 179 180 /** @defgroup SBS_Memories_Erase_Flag_Status Memory Erase Flags Status 181 * @{ 182 */ 183 #define SBS_MEMORIES_ERASE_FLAG_IPMEE SBS_MESR_IPMEE /*!< Select the Status of End Of Erase for ICACHE 184 and PKA RAMs */ 185 #define SBS_MEMORIES_ERASE_FLAG_MCLR SBS_MESR_MCLR /*!< Select the Status of Erase after Power-on Reset 186 (SRAM2, BKPRAM, ICACHE, DCACHE, PKA rams) */ 187 188 #define IS_SBS_MEMORIES_ERASE_FLAG(FLAG) (((FLAG) == SBS_MEMORIES_ERASE_FLAG_IPMEE) || \ 189 ((FLAG) == SBS_MEMORIES_ERASE_FLAG_MCLR)) 190 191 /** 192 * @} 193 */ 194 195 /** @defgroup SBS_IOCompenstionCell_Config IOCompenstionCell Config 196 * @{ 197 */ 198 #define SBS_VDD_CELL_CODE ((uint32_t)0x00000000) /*!< Select Code from the cell */ 199 #define SBS_VDD_REGISTER_CODE SBS_CCCSR_CS1 /*!< Code from the SBS compensation cell code register */ 200 201 #define IS_SBS_VDD_CODE_SELECT(SELECT) (((SELECT) == SBS_VDD_CELL_CODE)|| \ 202 ((SELECT) == SBS_VDD_REGISTER_CODE)) 203 204 #define SBS_VDDIO_CELL_CODE ((uint32_t)0x00000000) /*!< Select Code from the cell */ 205 #define SBS_VDDIO_REGISTER_CODE SBS_CCCSR_CS2 /*!< Code from the SBS compensation cell code register */ 206 207 #define IS_SBS_VDDIO_CODE_SELECT(SELECT) (((SELECT) == SBS_VDDIO_CELL_CODE)|| \ 208 ((SELECT) == SBS_VDDIO_REGISTER_CODE)) 209 210 #define IS_SBS_CODE_CONFIG(CONFIG) ((CONFIG) < (0x10UL)) 211 212 /** 213 * @} 214 */ 215 216 #if defined(SBS_EPOCHSELCR_EPOCH_SEL) 217 /** @defgroup SBS_EPOCH_Selection EPOCH Selection 218 * @{ 219 */ 220 #define SBS_EPOCH_SEL_SECURE 0x0UL /*!< EPOCH secure selected */ 221 #define SBS_EPOCH_SEL_NONSECURE SBS_EPOCHSELCR_EPOCH_SEL_0 /*!< EPOCH non secure selected */ 222 #define SBS_EPOCH_SEL_PUFCHECK SBS_EPOCHSELCR_EPOCH_SEL_1 /*!< EPOCH all zeros for PUF integrity check */ 223 224 #define IS_SBS_EPOCH_SELECTION(SELECT) (((SELECT) == SBS_EPOCH_SEL_SECURE) || \ 225 ((SELECT) == SBS_EPOCH_SEL_NONSECURE) || \ 226 ((SELECT) == SBS_EPOCH_SEL_PUFCHECK)) 227 /** 228 * @} 229 */ 230 #endif /* SBS_EPOCHSELCR_EPOCH_SEL */ 231 232 #if defined(SBS_NEXTHDPLCR_NEXTHDPL) 233 /** @defgroup SBS_NextHDPL_Selection Next HDPL Selection 234 * @{ 235 */ 236 #define SBS_OBKHDPL_INCR_0 0x00U 237 #define SBS_OBKHDPL_INCR_1 SBS_NEXTHDPLCR_NEXTHDPL_0 238 #define SBS_OBKHDPL_INCR_2 SBS_NEXTHDPLCR_NEXTHDPL_1 239 #define SBS_OBKHDPL_INCR_3 SBS_NEXTHDPLCR_NEXTHDPL 240 /** 241 * @} 242 */ 243 #endif /* SBS_NEXTHDPLCR_NEXTHDPL */ 244 245 /** @defgroup SBS_HDPL_Value HDPL Value 246 * @{ 247 */ 248 #define SBS_HDPL_VALUE_0 0x000000B4U 249 #define SBS_HDPL_VALUE_1 0x00000051U 250 #define SBS_HDPL_VALUE_2 0x0000008AU 251 #define SBS_HDPL_VALUE_3 0x0000006FU 252 /** 253 * @} 254 */ 255 256 257 /** @defgroup SBS_Lock_items SBS Lock items 258 * @brief SBS items to set lock on 259 * @{ 260 */ 261 #define SBS_MPU_NSEC SBS_CNSLCKR_LOCKNSMPU /*!< Non-secure MPU lock (privileged secure or 262 non-secure only) */ 263 #define SBS_VTOR_NSEC SBS_CNSLCKR_LOCKNSVTOR /*!< Non-secure VTOR lock (privileged secure or 264 non-secure only) */ 265 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 266 #define SBS_SAU (SBS_CSLCKR_LOCKSAU << 16U) /*!< SAU lock (privileged secure code only) */ 267 #define SBS_MPU_SEC (SBS_CSLCKR_LOCKSMPU << 16U) /*!< Secure MPU lock (privileged secure code only) 268 */ 269 #define SBS_VTOR_AIRCR_SEC (SBS_CSLCKR_LOCKSVTAIRCR << 16U) /*!< VTOR_S and AIRCR lock (privileged secure 270 code only) */ 271 #define SBS_LOCK_ALL (SBS_MPU_NSEC|SBS_VTOR_NSEC|SBS_SAU|SBS_MPU_SEC|SBS_VTOR_AIRCR_SEC) /*!< All */ 272 #else 273 #define SBS_LOCK_ALL (SBS_MPU_NSEC|SBS_VTOR_NSEC) /*!< All (privileged secure or non-secure only) */ 274 #endif /* __ARM_FEATURE_CMSE */ 275 /** 276 * @} 277 */ 278 279 /** @defgroup SBS_Attributes_items SBS Attributes items 280 * @brief SBS items to configure secure or non-secure attributes on 281 * @{ 282 */ 283 #define SBS_CLK SBS_SECCFGR_SBSSEC /*!< SBS clock control */ 284 #define SBS_CLASSB SBS_SECCFGR_CLASSBSEC /*!< Class B */ 285 #define SBS_FPU SBS_SECCFGR_FPUSEC /*!< FPU */ 286 #define SBS_SMPS SBS_SECCFGR_SDCE_SEC_EN /*!< SMPS */ 287 #define SBS_ALL (SBS_CLK | SBS_CLASSB | SBS_FPU | SBS_SMPS) /*!< All */ 288 /** 289 * @} 290 */ 291 292 /** @defgroup SBS_attributes SBS attributes 293 * @brief SBS secure or non-secure attributes 294 * @{ 295 */ 296 #define SBS_SEC 0x00000001U /*!< Secure attribute */ 297 #define SBS_NSEC 0x00000000U /*!< Non-secure attribute */ 298 /** 299 * @} 300 */ 301 302 /** 303 * @} 304 */ 305 306 /* Exported macros -----------------------------------------------------------*/ 307 308 /** @defgroup DBGMCU_Exported_Macros DBGMCU Exported Macros 309 * @{ 310 */ 311 312 /** @brief Freeze/Unfreeze Peripherals in Debug mode 313 */ 314 #if defined(DBGMCU_APB1FZR1_DBG_TIM2_STOP) 315 #define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP) 316 #define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM2_STOP) 317 #endif /* DBGMCU_APB1FZR1_DBG_TIM2_STOP */ 318 319 #if defined(DBGMCU_APB1FZR1_DBG_TIM3_STOP) 320 #define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP) 321 #define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM3_STOP) 322 #endif /* DBGMCU_APB1FZR1_DBG_TIM3_STOP */ 323 324 #if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP) 325 #define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP) 326 #define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM4_STOP) 327 #endif /* DBGMCU_APB1FZR1_DBG_TIM4_STOP */ 328 329 #if defined(DBGMCU_APB1FZR1_DBG_TIM4_STOP) 330 #define __HAL_DBGMCU_FREEZE_TIM5() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP) 331 #define __HAL_DBGMCU_UNFREEZE_TIM5() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM5_STOP) 332 #endif /* DBGMCU_APB1FZR1_DBG_TIM4_STOP */ 333 334 #if defined(DBGMCU_APB1FZR1_DBG_TIM6_STOP) 335 #define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP) 336 #define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM6_STOP) 337 #endif /* DBGMCU_APB1FZR1_DBG_TIM6_STOP */ 338 339 #if defined(DBGMCU_APB1FZR1_DBG_TIM7_STOP) 340 #define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP) 341 #define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM7_STOP) 342 #endif /* DBGMCU_APB1FZR1_DBG_TIM7_STOP */ 343 344 #if defined(DBGMCU_APB1FZR1_DBG_TIM12_STOP) 345 #define __HAL_DBGMCU_FREEZE_TIM12() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM12_STOP) 346 #define __HAL_DBGMCU_UNFREEZE_TIM12() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM12_STOP) 347 #endif /* DBGMCU_APB1FZR1_DBG_TIM12_STOP */ 348 349 #if defined(DBGMCU_APB1FZR1_DBG_TIM13_STOP) 350 #define __HAL_DBGMCU_FREEZE_TIM13() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM13_STOP) 351 #define __HAL_DBGMCU_UNFREEZE_TIM13() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM13_STOP) 352 #endif /* DBGMCU_APB1FZR1_DBG_TIM13_STOP */ 353 354 #if defined(DBGMCU_APB1FZR1_DBG_TIM14_STOP) 355 #define __HAL_DBGMCU_FREEZE_TIM14() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM14_STOP) 356 #define __HAL_DBGMCU_UNFREEZE_TIM14() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_TIM14_STOP) 357 #endif /* DBGMCU_APB1FZR1_DBG_TIM14_STOP */ 358 359 #if defined(DBGMCU_APB1FZR1_DBG_WWDG_STOP) 360 #define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP) 361 #define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_WWDG_STOP) 362 #endif /* DBGMCU_APB1FZR1_DBG_WWDG_STOP */ 363 364 #if defined(DBGMCU_APB1FZR1_DBG_IWDG_STOP) 365 #define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP) 366 #define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_IWDG_STOP) 367 #endif /* DBGMCU_APB1FZR1_DBG_IWDG_STOP */ 368 369 #if defined(DBGMCU_APB1FZR1_DBG_I2C1_STOP) 370 #define __HAL_DBGMCU_FREEZE_I2C1() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP) 371 #define __HAL_DBGMCU_UNFREEZE_I2C1() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C1_STOP) 372 #endif /* DBGMCU_APB1FZR1_DBG_I2C1_STOP */ 373 374 #if defined(DBGMCU_APB1FZR1_DBG_I2C2_STOP) 375 #define __HAL_DBGMCU_FREEZE_I2C2() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP) 376 #define __HAL_DBGMCU_UNFREEZE_I2C2() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I2C2_STOP) 377 #endif /* DBGMCU_APB1FZR1_DBG_I2C2_STOP */ 378 379 #if defined(DBGMCU_APB1FZR1_DBG_I3C1_STOP) 380 #define __HAL_DBGMCU_FREEZE_I3C1() SET_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I3C1_STOP) 381 #define __HAL_DBGMCU_UNFREEZE_I3C1() CLEAR_BIT(DBGMCU->APB1FZR1, DBGMCU_APB1FZR1_DBG_I3C1_STOP) 382 #endif /* DBGMCU_APB1FZR1_DBG_I3C1_STOP */ 383 384 #if defined(DBGMCU_APB1FZR2_DBG_LPTIM2_STOP) 385 #define __HAL_DBGMCU_FREEZE_LPTIM2() SET_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP) 386 #define __HAL_DBGMCU_UNFREEZE_LPTIM2() CLEAR_BIT(DBGMCU->APB1FZR2, DBGMCU_APB1FZR2_DBG_LPTIM2_STOP) 387 #endif /* DBGMCU_APB1FZR2_DBG_LPTIM2_STOP */ 388 389 #if defined(DBGMCU_APB2FZR_DBG_TIM1_STOP) 390 #define __HAL_DBGMCU_FREEZE_TIM1() SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM1_STOP) 391 #define __HAL_DBGMCU_UNFREEZE_TIM1() CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM1_STOP) 392 #endif /* DBGMCU_APB2FZR_DBG_TIM1_STOP */ 393 394 #if defined(DBGMCU_APB2FZR_DBG_TIM8_STOP) 395 #define __HAL_DBGMCU_FREEZE_TIM8() SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM8_STOP) 396 #define __HAL_DBGMCU_UNFREEZE_TIM8() CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM8_STOP) 397 #endif /* DBGMCU_APB2FZR_DBG_TIM8_STOP */ 398 399 #if defined(DBGMCU_APB2FZR_DBG_TIM15_STOP) 400 #define __HAL_DBGMCU_FREEZE_TIM15() SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM15_STOP) 401 #define __HAL_DBGMCU_UNFREEZE_TIM15() CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM15_STOP) 402 #endif /* DBGMCU_APB2FZR_DBG_TIM15_STOP */ 403 404 #if defined(DBGMCU_APB2FZR_DBG_TIM16_STOP) 405 #define __HAL_DBGMCU_FREEZE_TIM16() SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM16_STOP) 406 #define __HAL_DBGMCU_UNFREEZE_TIM16() CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM16_STOP) 407 #endif /* DBGMCU_APB2FZR_DBG_TIM16_STOP */ 408 409 #if defined(DBGMCU_APB2FZR_DBG_TIM17_STOP) 410 #define __HAL_DBGMCU_FREEZE_TIM17() SET_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM17_STOP) 411 #define __HAL_DBGMCU_UNFREEZE_TIM17() CLEAR_BIT(DBGMCU->APB2FZR, DBGMCU_APB2FZR_DBG_TIM17_STOP) 412 #endif /* DBGMCU_APB2FZR_DBG_TIM17_STOP */ 413 414 #if defined(DBGMCU_APB3FZR_DBG_I2C3_STOP) 415 #define __HAL_DBGMCU_FREEZE_I2C3() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C3_STOP) 416 #define __HAL_DBGMCU_UNFREEZE_I2C3() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C3_STOP) 417 #endif /* DBGMCU_APB3FZR_DBG_I2C3_STOP */ 418 419 #if defined(DBGMCU_APB3FZR_DBG_I2C4_STOP) 420 #define __HAL_DBGMCU_FREEZE_I2C4() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C4_STOP) 421 #define __HAL_DBGMCU_UNFREEZE_I2C4() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I2C4_STOP) 422 #endif /* DBGMCU_APB3FZR_DBG_I2C4_STOP */ 423 424 #if defined(DBGMCU_APB3FZR_DBG_I3C2_STOP) 425 #define __HAL_DBGMCU_FREEZE_I3C2() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I3C2_STOP) 426 #define __HAL_DBGMCU_UNFREEZE_I3C2() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_I3C2_STOP) 427 #endif /* DBGMCU_APB3FZR_DBG_I3C2_STOP */ 428 429 #if defined(DBGMCU_APB3FZR_DBG_LPTIM1_STOP) 430 #define __HAL_DBGMCU_FREEZE_LPTIM1() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM1_STOP) 431 #define __HAL_DBGMCU_UNFREEZE_LPTIM1() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM1_STOP) 432 #endif /* DBGMCU_APB3FZR_DBG_LPTIM1_STOP */ 433 434 #if defined(DBGMCU_APB3FZR_DBG_LPTIM3_STOP) 435 #define __HAL_DBGMCU_FREEZE_LPTIM3() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM3_STOP) 436 #define __HAL_DBGMCU_UNFREEZE_LPTIM3() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM3_STOP) 437 #endif /* DBGMCU_APB3FZR_DBG_LPTIM3_STOP */ 438 439 #if defined(DBGMCU_APB3FZR_DBG_LPTIM4_STOP) 440 #define __HAL_DBGMCU_FREEZE_LPTIM4() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM4_STOP) 441 #define __HAL_DBGMCU_UNFREEZE_LPTIM4() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM4_STOP) 442 #endif /* DBGMCU_APB3FZR_DBG_LPTIM4_STOP */ 443 444 #if defined(DBGMCU_APB3FZR_DBG_LPTIM5_STOP) 445 #define __HAL_DBGMCU_FREEZE_LPTIM5() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM5_STOP) 446 #define __HAL_DBGMCU_UNFREEZE_LPTIM5() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM5_STOP) 447 #endif /* DBGMCU_APB3FZR_DBG_LPTIM5_STOP */ 448 449 #if defined(DBGMCU_APB3FZR_DBG_LPTIM6_STOP) 450 #define __HAL_DBGMCU_FREEZE_LPTIM6() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM6_STOP) 451 #define __HAL_DBGMCU_UNFREEZE_LPTIM6() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_LPTIM6_STOP) 452 #endif /* DBGMCU_APB3FZR_DBG_LPTIM6_STOP */ 453 454 #if defined(DBGMCU_APB3FZR_DBG_RTC_STOP) 455 #define __HAL_DBGMCU_FREEZE_RTC() SET_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_RTC_STOP) 456 #define __HAL_DBGMCU_UNFREEZE_RTC() CLEAR_BIT(DBGMCU->APB3FZR, DBGMCU_APB3FZR_DBG_RTC_STOP) 457 #endif /* DBGMCU_APB3FZR_DBG_RTC_STOP */ 458 459 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH0_STOP) 460 #define __HAL_DBGMCU_FREEZE_GPDMA1_0() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH0_STOP) 461 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_0() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH0_STOP) 462 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH0_STOP */ 463 464 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH1_STOP) 465 #define __HAL_DBGMCU_FREEZE_GPDMA1_1() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH1_STOP) 466 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_1() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH1_STOP) 467 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH1_STOP */ 468 469 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH2_STOP) 470 #define __HAL_DBGMCU_FREEZE_GPDMA1_2() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH2_STOP) 471 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_2() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH2_STOP) 472 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH2_STOP */ 473 474 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH3_STOP) 475 #define __HAL_DBGMCU_FREEZE_GPDMA1_3() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH3_STOP) 476 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_3() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH3_STOP) 477 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH3_STOP */ 478 479 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH4_STOP) 480 #define __HAL_DBGMCU_FREEZE_GPDMA1_4() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH4_STOP) 481 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_4() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH4_STOP) 482 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH4_STOP */ 483 484 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH5_STOP) 485 #define __HAL_DBGMCU_FREEZE_GPDMA1_5() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH5_STOP) 486 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_5() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH5_STOP) 487 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH5_STOP */ 488 489 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH6_STOP) 490 #define __HAL_DBGMCU_FREEZE_GPDMA1_6() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH6_STOP) 491 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_6() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH6_STOP) 492 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH6_STOP */ 493 494 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA1_CH7_STOP) 495 #define __HAL_DBGMCU_FREEZE_GPDMA1_7() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH7_STOP) 496 #define __HAL_DBGMCU_UNFREEZE_GPDMA1_7() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA1_CH7_STOP) 497 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA1_CH7_STOP */ 498 499 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH0_STOP) 500 #define __HAL_DBGMCU_FREEZE_GPDMA2_0() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH0_STOP) 501 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_0() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH0_STOP) 502 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH0_STOP */ 503 504 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH1_STOP) 505 #define __HAL_DBGMCU_FREEZE_GPDMA2_1() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH1_STOP) 506 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_1() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH1_STOP) 507 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH1_STOP */ 508 509 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH2_STOP) 510 #define __HAL_DBGMCU_FREEZE_GPDMA2_2() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH2_STOP) 511 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_2() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH2_STOP) 512 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH2_STOP */ 513 514 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH3_STOP) 515 #define __HAL_DBGMCU_FREEZE_GPDMA2_3() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH3_STOP) 516 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_3() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH3_STOP) 517 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH3_STOP */ 518 519 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH4_STOP) 520 #define __HAL_DBGMCU_FREEZE_GPDMA2_4() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH4_STOP) 521 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_4() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH4_STOP) 522 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH4_STOP */ 523 524 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH5_STOP) 525 #define __HAL_DBGMCU_FREEZE_GPDMA2_5() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH5_STOP) 526 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_5() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH5_STOP) 527 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH5_STOP */ 528 529 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH6_STOP) 530 #define __HAL_DBGMCU_FREEZE_GPDMA2_6() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH6_STOP) 531 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_6() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH6_STOP) 532 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH6_STOP */ 533 534 #if defined(DBGMCU_AHB1FZR_DBG_GPDMA2_CH7_STOP) 535 #define __HAL_DBGMCU_FREEZE_GPDMA2_7() SET_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH7_STOP) 536 #define __HAL_DBGMCU_UNFREEZE_GPDMA2_7() CLEAR_BIT(DBGMCU->AHB1FZR, DBGMCU_AHB1FZR_DBG_GPDMA2_CH7_STOP) 537 #endif /* DBGMCU_AHB1FZR_DBG_GPDMA2_CH7_STOP */ 538 539 /** 540 * @} 541 */ 542 543 /** @defgroup SBS_Exported_Macros SBS Exported Macros 544 * @{ 545 */ 546 547 /** @brief Floating Point Unit interrupt enable/disable macros 548 * @param __INTERRUPT__: This parameter can be a value of @ref SBS_FPU_Interrupts 549 */ 550 #define __HAL_SBS_FPU_INTERRUPT_ENABLE(__INTERRUPT__) do {assert_param(IS_SBS_FPU_INTERRUPT((__INTERRUPT__)));\ 551 SET_BIT(SBS->FPUIMR, (__INTERRUPT__));\ 552 }while(0) 553 554 #define __HAL_SBS_FPU_INTERRUPT_DISABLE(__INTERRUPT__) do {assert_param(IS_SBS_FPU_INTERRUPT((__INTERRUPT__)));\ 555 CLEAR_BIT(SBS->FPUIMR, (__INTERRUPT__));\ 556 }while(0) 557 558 /** @brief SBS Break ECC lock. 559 * Enable and lock the connection of Flash ECC error connection to TIM1/8/15/16/17 Break input. 560 * @note The selected configuration is locked and can be unlocked only by system reset. 561 */ 562 #define __HAL_SBS_BREAK_ECC_LOCK() SET_BIT(SBS->CFGR2, SBS_CFGR2_ECCL) 563 564 /** @brief SBS Break Cortex-M33 Lockup lock. 565 * Enable and lock the connection of Cortex-M33 LOCKUP (Hardfault) output to TIM1/8/15/16/17 Break input. 566 * @note The selected configuration is locked and can be unlocked only by system reset. 567 */ 568 #define __HAL_SBS_BREAK_LOCKUP_LOCK() SET_BIT(SBS->CFGR2, SBS_CFGR2_CLL) 569 570 /** @brief SBS Break PVD lock. 571 * Enable and lock the PVD connection to Timer1/8/15/16/17 Break input, as well as the PVDE and PLS[2:0] 572 * in the PWR_CR2 register. 573 * @note The selected configuration is locked and can be unlocked only by system reset. 574 */ 575 #define __HAL_SBS_BREAK_PVD_LOCK() SET_BIT(SBS->CFGR2, SBS_CFGR2_PVDL) 576 577 /** @brief SBS Break SRAM double ECC lock. 578 * Enable and lock the connection of SRAM double ECC error to TIM1/8/15/16/17 Break input. 579 * @note The selected configuration is locked and can be unlocked only by system reset. 580 */ 581 #define __HAL_SBS_BREAK_SRAM_ECC_LOCK() SET_BIT(SBS->CFGR2, SBS_CFGR2_SEL) 582 583 /** @brief Fast-mode Plus driving capability enable/disable macros 584 * @param __FASTMODEPLUS__: This parameter can be a value of : 585 * @arg @ref SBS_FASTMODEPLUS_PB6 Fast-mode Plus driving capability activation on PB6 586 * @arg @ref SBS_FASTMODEPLUS_PB7 Fast-mode Plus driving capability activation on PB7 587 * @arg @ref SBS_FASTMODEPLUS_PB8 Fast-mode Plus driving capability activation on PB8 588 * @arg @ref SBS_FASTMODEPLUS_PB9 Fast-mode Plus driving capability activation on PB9 589 */ 590 #define __HAL_SBS_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) do {assert_param(IS_SBS_FASTMODEPLUS((__FASTMODEPLUS__)));\ 591 SET_BIT(SBS->PMCR, (__FASTMODEPLUS__));\ 592 }while(0) 593 594 #define __HAL_SBS_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) do {assert_param(IS_SBS_FASTMODEPLUS((__FASTMODEPLUS__)));\ 595 CLEAR_BIT(SBS->PMCR, (__FASTMODEPLUS__));\ 596 }while(0) 597 598 /** @brief Check SBS Memories Erase Status Flags. 599 * @param __FLAG__: specifies the flag to check. 600 * This parameter can be one of the following values: 601 * @arg @ref SBS_MEMORIES_ERASE_FLAG_IPMEE Status of End Of Erase for ICACHE and PKA RAMs 602 * @arg @ref SBS_MEMORIES_ERASE_FLAG_MCLR Status of Erase after Power-on Reset ((SRAM2, BKPRAM, 603 * ICACHE, DCACHE, PKA RAMs) 604 * @retval The new state of __FLAG__ (TRUE or FALSE). 605 */ 606 #define __HAL_SBS_GET_MEMORIES_ERASE_STATUS(__FLAG__) ((((SBS->MESR) & (__FLAG__))!= 0) ? 1 : 0) 607 608 /** @brief Clear SBS Memories Erase Status Flags. 609 * @param __FLAG__: specifies the flag to clear. 610 * This parameter can be one of the following values: 611 * @arg @ref SBS_MEMORIES_ERASE_FLAG_IPMEE Status of End Of Erase for ICACHE and PKA RAMs 612 * @arg @ref SBS_MEMORIES_ERASE_FLAG_MCLR Status of Erase after Power-on Reset ((SRAM2, BKPRAM, 613 * ICACHE, DCACHE, PKA RAMs) 614 */ 615 #define __HAL_SBS_CLEAR_MEMORIES_ERASE_STATUS(__FLAG__) do {assert_param(IS_SBS_MEMORIES_ERASE_FLAG((__FLAG__)));\ 616 WRITE_REG(SBS->MESR, (__FLAG__));\ 617 }while(0) 618 619 /** 620 * @} 621 */ 622 623 /* Private macros ------------------------------------------------------------*/ 624 625 /** @defgroup SBS_Private_Macros SBS Private Macros 626 * @{ 627 */ 628 629 #define IS_SBS_FPU_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & SBS_IT_FPU_IOC) == SBS_IT_FPU_IOC) || \ 630 (((__INTERRUPT__) & SBS_IT_FPU_DZC) == SBS_IT_FPU_DZC) || \ 631 (((__INTERRUPT__) & SBS_IT_FPU_UFC) == SBS_IT_FPU_UFC) || \ 632 (((__INTERRUPT__) & SBS_IT_FPU_OFC) == SBS_IT_FPU_OFC) || \ 633 (((__INTERRUPT__) & SBS_IT_FPU_IDC) == SBS_IT_FPU_IDC) || \ 634 (((__INTERRUPT__) & SBS_IT_FPU_IXC) == SBS_IT_FPU_IXC)) 635 636 #define IS_SBS_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SBS_BREAK_FLASH_ECC) || \ 637 ((__CONFIG__) == SBS_BREAK_PVD) || \ 638 ((__CONFIG__) == SBS_BREAK_SRAM_ECC) || \ 639 ((__CONFIG__) == SBS_BREAK_LOCKUP)) 640 641 #define IS_VREFBUF_VOLTAGE_SCALE(__SCALE__) (((__SCALE__) == VREFBUF_VOLTAGE_SCALE0) || \ 642 ((__SCALE__) == VREFBUF_VOLTAGE_SCALE1) || \ 643 ((__SCALE__) == VREFBUF_VOLTAGE_SCALE2) || \ 644 ((__SCALE__) == VREFBUF_VOLTAGE_SCALE3)) 645 646 #define IS_VREFBUF_HIGH_IMPEDANCE(__VALUE__) (((__VALUE__) == VREFBUF_HIGH_IMPEDANCE_DISABLE) || \ 647 ((__VALUE__) == VREFBUF_HIGH_IMPEDANCE_ENABLE)) 648 649 #define IS_VREFBUF_TRIMMING(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM)) 650 651 #if defined(SBS_FASTMODEPLUS_PB9) 652 #define IS_SBS_FASTMODEPLUS(__PIN__) ((((__PIN__) & SBS_FASTMODEPLUS_PB6) == SBS_FASTMODEPLUS_PB6) || \ 653 (((__PIN__) & SBS_FASTMODEPLUS_PB7) == SBS_FASTMODEPLUS_PB7) || \ 654 (((__PIN__) & SBS_FASTMODEPLUS_PB8) == SBS_FASTMODEPLUS_PB8) || \ 655 (((__PIN__) & SBS_FASTMODEPLUS_PB9) == SBS_FASTMODEPLUS_PB9)) 656 #else 657 #define IS_SBS_FASTMODEPLUS(__PIN__) ((((__PIN__) & SBS_FASTMODEPLUS_PB6) == SBS_FASTMODEPLUS_PB6) || \ 658 (((__PIN__) & SBS_FASTMODEPLUS_PB7) == SBS_FASTMODEPLUS_PB7) || \ 659 (((__PIN__) & SBS_FASTMODEPLUS_PB8) == SBS_FASTMODEPLUS_PB8)) 660 #endif /* SBS_FASTMODEPLUS_PB9 */ 661 662 #define IS_SBS_OBKHDPL_SELECTION(__SELECT__) (((__SELECT__) == SBS_OBKHDPL_INCR_0) || \ 663 ((__SELECT__) == SBS_OBKHDPL_INCR_1) || \ 664 ((__SELECT__) == SBS_OBKHDPL_INCR_2) || \ 665 ((__SELECT__) == SBS_OBKHDPL_INCR_3)) 666 667 #define IS_SBS_ITEMS_ATTRIBUTES(__ITEM__) ((((__ITEM__) & SBS_CLK) == SBS_CLK) || \ 668 (((__ITEM__) & SBS_CLASSB) == SBS_CLASSB) || \ 669 (((__ITEM__) & SBS_FPU) == SBS_FPU) || \ 670 (((__ITEM__) & SBS_SMPS) == SBS_SMPS) || \ 671 (((__ITEM__) & ~(SBS_ALL)) == 0U)) 672 673 #define IS_SBS_ATTRIBUTES(__ATTRIBUTES__) (((__ATTRIBUTES__) == SBS_SEC) ||\ 674 ((__ATTRIBUTES__) == SBS_NSEC)) 675 676 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 677 678 #define IS_SBS_LOCK_ITEMS(__ITEM__) ((((__ITEM__) & SBS_MPU_NSEC) == SBS_MPU_NSEC) || \ 679 (((__ITEM__) & SBS_VTOR_NSEC) == SBS_VTOR_NSEC) || \ 680 (((__ITEM__) & SBS_SAU) == SBS_SAU) || \ 681 (((__ITEM__) & SBS_MPU_SEC) == SBS_MPU_SEC) || \ 682 (((__ITEM__) & SBS_VTOR_AIRCR_SEC) == SBS_VTOR_AIRCR_SEC) || \ 683 (((__ITEM__) & ~(SBS_LOCK_ALL)) == 0U)) 684 685 #else 686 687 #define IS_SBS_LOCK_ITEMS(__ITEM__) ((((__ITEM__) & SBS_MPU_NSEC) == SBS_MPU_NSEC) || \ 688 (((__ITEM__) & SBS_VTOR_NSEC) == SBS_VTOR_NSEC) || \ 689 (((__ITEM__) & ~(SBS_LOCK_ALL)) == 0U)) 690 691 692 #endif /* __ARM_FEATURE_CMSE */ 693 /** 694 * @} 695 */ 696 697 /** @defgroup HAL_Private_Macros HAL Private Macros 698 * @{ 699 */ 700 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \ 701 ((FREQ) == HAL_TICK_FREQ_100HZ) || \ 702 ((FREQ) == HAL_TICK_FREQ_1KHZ)) 703 /** 704 * @} 705 */ 706 /* Exported functions --------------------------------------------------------*/ 707 708 /** @addtogroup HAL_Exported_Functions 709 * @{ 710 */ 711 712 /** @addtogroup HAL_Exported_Functions_Group1 713 * @{ 714 */ 715 716 /* Initialization and de-initialization functions ******************************/ 717 HAL_StatusTypeDef HAL_Init(void); 718 HAL_StatusTypeDef HAL_DeInit(void); 719 void HAL_MspInit(void); 720 void HAL_MspDeInit(void); 721 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); 722 723 /** 724 * @} 725 */ 726 727 /** @addtogroup HAL_Exported_Functions_Group2 728 * @{ 729 */ 730 731 /* Peripheral Control functions ************************************************/ 732 void HAL_IncTick(void); 733 void HAL_Delay(uint32_t Delay); 734 uint32_t HAL_GetTick(void); 735 uint32_t HAL_GetTickPrio(void); 736 HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); 737 HAL_TickFreqTypeDef HAL_GetTickFreq(void); 738 void HAL_SuspendTick(void); 739 void HAL_ResumeTick(void); 740 uint32_t HAL_GetHalVersion(void); 741 uint32_t HAL_GetREVID(void); 742 uint32_t HAL_GetDEVID(void); 743 uint32_t HAL_GetUIDw0(void); 744 uint32_t HAL_GetUIDw1(void); 745 uint32_t HAL_GetUIDw2(void); 746 747 /** 748 * @} 749 */ 750 751 /** @addtogroup HAL_Exported_Functions_Group3 752 * @{ 753 */ 754 755 /* DBGMCU Peripheral Control functions *****************************************/ 756 void HAL_DBGMCU_EnableDBGStopMode(void); 757 void HAL_DBGMCU_DisableDBGStopMode(void); 758 void HAL_DBGMCU_EnableDBGStandbyMode(void); 759 void HAL_DBGMCU_DisableDBGStandbyMode(void); 760 761 /** 762 * @} 763 */ 764 765 /** @addtogroup HAL_Exported_Functions_Group4 766 * @{ 767 */ 768 769 /* SBS Control functions ****************************************************/ 770 771 void HAL_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling); 772 void HAL_VREFBUF_HighImpedanceConfig(uint32_t Mode); 773 void HAL_VREFBUF_TrimmingConfig(uint32_t TrimmingValue); 774 HAL_StatusTypeDef HAL_EnableVREFBUF(void); 775 void HAL_DisableVREFBUF(void); 776 777 void HAL_SBS_EnableIOAnalogSwitchBooster(void); 778 void HAL_SBS_DisableIOAnalogSwitchBooster(void); 779 void HAL_SBS_ETHInterfaceSelect(uint32_t SBS_ETHInterface); 780 void HAL_SBS_AnalogSwitchSupplyVoltageSelection(uint32_t SBS_BOOSTVDDSEL); 781 void HAL_SBS_EnableVddIO1CompensationCell(void); 782 void HAL_SBS_DisableVddIO1CompensationCell(void); 783 void HAL_SBS_EnableVddIO2CompensationCell(void); 784 void HAL_SBS_DisableVddIO2CompensationCell(void); 785 void HAL_SBS_VDDCompensationCodeSelect(uint32_t SBS_CompCode); 786 void HAL_SBS_VDDIOCompensationCodeSelect(uint32_t SBS_CompCode); 787 uint32_t HAL_SBS_GetVddIO1CompensationCellReadyFlag(void); 788 uint32_t HAL_SBS_GetVddIO2CompensationCellReadyFlag(void); 789 void HAL_SBS_VDDCompensationCodeConfig(uint32_t SBS_PMOSCode, uint32_t SBS_NMOSCode); 790 void HAL_SBS_VDDIOCompensationCodeConfig(uint32_t SBS_PMOSCode, uint32_t SBS_NMOSCode); 791 uint32_t HAL_SBS_GetNMOSVddCompensationValue(void); 792 uint32_t HAL_SBS_GetPMOSVddCompensationValue(void); 793 uint32_t HAL_SBS_GetNMOSVddIO2CompensationValue(void); 794 uint32_t HAL_SBS_GetPMOSVddIO2CompensationValue(void); 795 void HAL_SBS_EPOCHSelection(uint32_t Epoch_Selection); 796 uint32_t HAL_SBS_GetEPOCHSelection(void); 797 void HAL_SBS_IncrementHDPLValue(void); 798 uint32_t HAL_SBS_GetHDPLValue(void); 799 void HAL_SBS_SetOBKHDPL(uint32_t OBKHDPL_Value); 800 uint32_t HAL_SBS_GetOBKHDPL(void); 801 void HAL_SBS_FLASH_EnableECCNMI(void); 802 void HAL_SBS_FLASH_DisableECCNMI(void); 803 uint32_t HAL_SBS_FLASH_ECCNMI_IsDisabled(void); 804 805 /** 806 * @} 807 */ 808 809 810 /** @addtogroup HAL_Exported_Functions_Group5 811 * @{ 812 */ 813 814 /* SBS Lock functions ********************************************/ 815 void HAL_SBS_Lock(uint32_t Item); 816 HAL_StatusTypeDef HAL_SBS_GetLock(uint32_t *pItem); 817 818 /** 819 * @} 820 */ 821 822 /** @addtogroup HAL_Exported_Functions_Group6 823 * @{ 824 */ 825 826 /* SBS Attributes functions ********************************************/ 827 #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 828 void HAL_SBS_ConfigAttributes(uint32_t Item, uint32_t Attributes); 829 HAL_StatusTypeDef HAL_SBS_GetConfigAttributes(uint32_t Item, uint32_t *pAttributes); 830 #endif /* __ARM_FEATURE_CMSE */ 831 832 /** 833 * @} 834 */ 835 836 /** 837 * @} 838 */ 839 840 /** 841 * @} 842 */ 843 844 /** 845 * @} 846 */ 847 848 #ifdef __cplusplus 849 } 850 #endif /* __cplusplus */ 851 852 #endif /* __STM32H5xx_HAL_H */ 853 854