1 /** 2 ****************************************************************************** 3 * @file stm32u0xx_hal.h 4 * @author GPM 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 is licensed under terms that can be found in the LICENSE file in 14 * the root directory of this software component. 15 * If no LICENSE file comes with this software, it is provided AS-IS. 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef STM32U0xx_HAL_H 21 #define STM32U0xx_HAL_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "stm32u0xx_hal_conf.h" 29 30 /** @addtogroup STM32U0xx_HAL_Driver 31 * @{ 32 */ 33 34 /** @defgroup HAL HAL 35 * @{ 36 */ 37 38 /* Exported types ------------------------------------------------------------*/ 39 /* Exported constants --------------------------------------------------------*/ 40 41 /** @defgroup HAL_Exported_Constants HAL Exported Constants 42 * @{ 43 */ 44 45 /** @defgroup HAL_TICK_FREQ Tick Frequency 46 * @{ 47 */ 48 #define HAL_TICK_FREQ_10HZ 100U 49 #define HAL_TICK_FREQ_100HZ 10U 50 #define HAL_TICK_FREQ_1KHZ 1U 51 #define HAL_TICK_FREQ_DEFAULT HAL_TICK_FREQ_1KHZ 52 53 /** 54 * @} 55 */ 56 57 /** 58 * @} 59 */ 60 61 /** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants 62 * @{ 63 */ 64 65 /** @defgroup SYSCFG_BootMode Boot Mode 66 * @{ 67 */ 68 #define SYSCFG_BOOT_MAINFLASH 0x00000000U /*!< Main Flash memory mapped at 0x0000 0000 */ 69 #define SYSCFG_BOOT_SYSTEMFLASH SYSCFG_CFGR1_MEM_MODE_0 /*!< System Flash memory mapped at 0x0000 0000 */ 70 #define SYSCFG_BOOT_SRAM (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0) /*!< Embedded SRAM mapped at 0x0000 0000 */ 71 72 /** 73 * @} 74 */ 75 76 /** @defgroup SYSCFG_Break Break 77 * @{ 78 */ 79 #define SYSCFG_BREAK_SP SYSCFG_CFGR2_SPL /*!< Enables and locks the SRAM Parity error signal with Break Input of TIM1/15/16 */ 80 #if defined(SYSCFG_CFGR2_PVDL) 81 #define SYSCFG_BREAK_PVD SYSCFG_CFGR2_PVDL /*!< Enables and locks the PVD connection with TIM1/15/16 Break Input and also the PVDE and PLS bits of the Power Control Interface */ 82 #endif /* SYSCFG_CFGR2_PVDL */ 83 #define SYSCFG_BREAK_LOCKUP SYSCFG_CFGR2_CCL /*!< Enables and locks the LOCKUP output of CortexM0+ with Break Input of TIM1/15/16 */ 84 #define SYSCFG_BREAK_ECC SYSCFG_CFGR2_ECCL /*!< Enables and locks the ECC of CortexM0+ with Break Input of TIM1/15/16 */ 85 /** 86 * @} 87 */ 88 89 /** @defgroup HAL_Pin_remapping Pin remapping 90 * @{ 91 */ 92 /* Only available on cut2.0 */ 93 #define SYSCFG_REMAP_PA11 SYSCFG_CFGR1_PA11_RMP /*!< PA11 pad behaves digitally as PA9 GPIO pin */ 94 #define SYSCFG_REMAP_PA12 SYSCFG_CFGR1_PA12_RMP /*!< PA12 pad behaves digitally as PA10 GPIO pin */ 95 /** 96 * @} 97 */ 98 99 /** @defgroup HAL_IR_ENV_SEL IR Modulation Envelope signal selection 100 * @{ 101 */ 102 #define HAL_SYSCFG_IRDA_ENV_SEL_TIM16 (SYSCFG_CFGR1_IR_MOD_0 & SYSCFG_CFGR1_IR_MOD_1) /*!< 00: Timer16 is selected as IR Modulation envelope source */ 103 #define HAL_SYSCFG_IRDA_ENV_SEL_USART1 (SYSCFG_CFGR1_IR_MOD_0) /*!< 01: USART1 is selected as IR Modulation envelope source */ 104 #define HAL_SYSCFG_IRDA_ENV_SEL_USART2 (SYSCFG_CFGR1_IR_MOD_1) /*!< 10: USART2 is selected as IR Modulation envelope source */ 105 106 /** 107 * @} 108 */ 109 110 /** @defgroup HAL_IR_POL_SEL IR output polarity selection 111 * @{ 112 */ 113 #define HAL_SYSCFG_IRDA_POLARITY_NOT_INVERTED 0x00000000U /*!< 0: IR output polarity not inverted */ 114 #define HAL_SYSCFG_IRDA_POLARITY_INVERTED SYSCFG_CFGR1_IR_POL /*!< 1: IR output polarity inverted */ 115 116 /** 117 * @} 118 */ 119 120 #if defined(VREFBUF) 121 /** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale 122 * @{ 123 */ 124 #define SYSCFG_VREFBUF_VOLTAGE_SCALE0 0x00000000U /*!< Voltage reference scale 0: VREF_OUT1 around 2.048 V. 125 This requires VDDA equal to or higher than 2.4 V. */ 126 #define SYSCFG_VREFBUF_VOLTAGE_SCALE1 VREFBUF_CSR_VRS /*!< Voltage reference scale 1: VREF_OUT1 around 2.5 V. 127 This requires VDDA equal to or higher than 2.8 V. */ 128 129 /** 130 * @} 131 */ 132 133 /** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance 134 * @{ 135 */ 136 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE 0x00000000U /*!< VREF_plus pin is internally connected to Voltage reference buffer output */ 137 #define SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE VREFBUF_CSR_HIZ /*!< VREF_plus pin is high impedance */ 138 139 /** 140 * @} 141 */ 142 #endif /* VREFBUF */ 143 144 /** @defgroup SYSCFG_flags_definition Flags 145 * @{ 146 */ 147 #define SYSCFG_FLAG_SRAM1_PE SYSCFG_CFGR2_SPF /*!< SRAM1 parity error */ 148 #define SYSCFG_FLAG_SRAM2_PE SYSCFG_CFGR2_BKPF /*!< SRAM2 parity error */ 149 #define SYSCFG_FLAG_SRAM2_BUSY SYSCFG_SCSR_SRAM2BSY /*!< SRAM2 busy by erase operation */ 150 /** 151 * @} 152 */ 153 154 /** @defgroup SYSCFG_COMPMODE_GROUP SYSCFG TSC IO COMP MODE 155 * @{ 156 */ 157 #define SYSCFG_COMP_MODE_GRP2_IO1 SYSCFG_TSCCR_G2IO1 /*!< Enable comparator mode for group 2 on I/O 1 */ 158 #define SYSCFG_COMP_MODE_GRP2_IO3 SYSCFG_TSCCR_G2IO3 /*!< Enable comparator mode for group 2 on I/O 3 */ 159 #define SYSCFG_COMP_MODE_GRP4_IO1 SYSCFG_TSCCR_G4IO1 /*!< Enable comparator mode for group 4 on I/O 1 */ 160 #define SYSCFG_COMP_MODE_GRP6_IO1 SYSCFG_TSCCR_G6IO1 /*!< Enable comparator mode for group 6 on I/O 1 */ 161 #define SYSCFG_COMP_MODE_GRP7_IO2 SYSCFG_TSCCR_G7IO2 /*!< Enable comparator mode for group 7 on I/O 2 */ 162 /** 163 * @} 164 */ 165 166 /** @defgroup SYSCFG_FastModePlus_GPIO Fast mode Plus on GPIO 167 * @brief Fast mode Plus driving capability on a specific GPIO 168 * @{ 169 */ 170 #define SYSCFG_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast mode Plus on PB6 */ 171 #define SYSCFG_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast mode Plus on PB7 */ 172 #define SYSCFG_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast mode Plus on PB8 */ 173 #define SYSCFG_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast mode Plus on PB9 */ 174 #define SYSCFG_FASTMODEPLUS_PA9 SYSCFG_CFGR1_I2C_PA9_FMP /*!< Enable Fast mode Plus on PA9 */ 175 #define SYSCFG_FASTMODEPLUS_PA10 SYSCFG_CFGR1_I2C_PA10_FMP /*!< Enable Fast mode Plus on PA10 */ 176 /** 177 * @} 178 */ 179 180 /** @defgroup HAL_ISR_Wrapper HAL ISR Wrapper 181 * @brief ISR Wrapper 182 * @{ 183 */ 184 #define HAL_SYSCFG_ITLINE0 0x00000000U /*!< Internal define for macro handling */ 185 #define HAL_SYSCFG_ITLINE1 0x00000001U /*!< Internal define for macro handling */ 186 #define HAL_SYSCFG_ITLINE2 0x00000002U /*!< Internal define for macro handling */ 187 #define HAL_SYSCFG_ITLINE3 0x00000003U /*!< Internal define for macro handling */ 188 #define HAL_SYSCFG_ITLINE4 0x00000004U /*!< Internal define for macro handling */ 189 #define HAL_SYSCFG_ITLINE5 0x00000005U /*!< Internal define for macro handling */ 190 #define HAL_SYSCFG_ITLINE6 0x00000006U /*!< Internal define for macro handling */ 191 #define HAL_SYSCFG_ITLINE7 0x00000007U /*!< Internal define for macro handling */ 192 #define HAL_SYSCFG_ITLINE8 0x00000008U /*!< Internal define for macro handling */ 193 #define HAL_SYSCFG_ITLINE9 0x00000009U /*!< Internal define for macro handling */ 194 #define HAL_SYSCFG_ITLINE10 0x0000000AU /*!< Internal define for macro handling */ 195 #define HAL_SYSCFG_ITLINE11 0x0000000BU /*!< Internal define for macro handling */ 196 #define HAL_SYSCFG_ITLINE12 0x0000000CU /*!< Internal define for macro handling */ 197 #define HAL_SYSCFG_ITLINE13 0x0000000DU /*!< Internal define for macro handling */ 198 #define HAL_SYSCFG_ITLINE14 0x0000000EU /*!< Internal define for macro handling */ 199 #define HAL_SYSCFG_ITLINE15 0x0000000FU /*!< Internal define for macro handling */ 200 #define HAL_SYSCFG_ITLINE16 0x00000010U /*!< Internal define for macro handling */ 201 #define HAL_SYSCFG_ITLINE17 0x00000011U /*!< Internal define for macro handling */ 202 #define HAL_SYSCFG_ITLINE18 0x00000012U /*!< Internal define for macro handling */ 203 #define HAL_SYSCFG_ITLINE19 0x00000013U /*!< Internal define for macro handling */ 204 #define HAL_SYSCFG_ITLINE20 0x00000014U /*!< Internal define for macro handling */ 205 #define HAL_SYSCFG_ITLINE21 0x00000015U /*!< Internal define for macro handling */ 206 #define HAL_SYSCFG_ITLINE22 0x00000016U /*!< Internal define for macro handling */ 207 #define HAL_SYSCFG_ITLINE23 0x00000017U /*!< Internal define for macro handling */ 208 #define HAL_SYSCFG_ITLINE24 0x00000018U /*!< Internal define for macro handling */ 209 #define HAL_SYSCFG_ITLINE25 0x00000019U /*!< Internal define for macro handling */ 210 #define HAL_SYSCFG_ITLINE26 0x0000001AU /*!< Internal define for macro handling */ 211 #define HAL_SYSCFG_ITLINE27 0x0000001BU /*!< Internal define for macro handling */ 212 #define HAL_SYSCFG_ITLINE28 0x0000001CU /*!< Internal define for macro handling */ 213 #define HAL_SYSCFG_ITLINE29 0x0000001DU /*!< Internal define for macro handling */ 214 #define HAL_SYSCFG_ITLINE30 0x0000001EU /*!< Internal define for macro handling */ 215 #define HAL_SYSCFG_ITLINE31 0x0000001FU /*!< Internal define for macro handling */ 216 217 #define HAL_ITLINE_WWDG ((HAL_SYSCFG_ITLINE0 << 0x18U) | SYSCFG_ITLINE0_SR_WWDG) /*!< WWDG has expired .... */ 218 #if defined (SYSCFG_ITLINE1_SR_PVDOUT) 219 #define HAL_ITLINE_PVDOUT ((HAL_SYSCFG_ITLINE1 << 0x18U) | SYSCFG_ITLINE1_SR_PVDOUT) /*!< Power voltage detection Interrupt .... */ 220 #endif /* SYSCFG_ITLINE1_SR_PVDOUT */ 221 #if defined (SYSCFG_ITLINE1_SR_VDDUSB) 222 #define HAL_ITLINE_VDDUSB ((HAL_SYSCFG_ITLINE1 << 0x18U) | SYSCFG_ITLINE1_SR_VDDUSB) /*!< VDDUSB supply monitoring Interrupt .... */ 223 #endif /* SYSCFG_ITLINE1_SR_VDDUSB */ 224 #if defined (SYSCFG_ITLINE1_SR_VDDADC) 225 #define HAL_ITLINE_VDDADC ((HAL_SYSCFG_ITLINE1 << 0x18U) | SYSCFG_ITLINE1_SR_VDDADC) /*!< VDDADC supply monitoring Interrupt .... */ 226 #endif /* SYSCFG_ITLINE1_SR_VDDADC */ 227 #if defined (SYSCFG_ITLINE1_SR_VDDDAC) 228 #define HAL_ITLINE_VDDDAC ((HAL_SYSCFG_ITLINE1 << 0x18U) | SYSCFG_ITLINE1_SR_VDDDAC) /*!< VDDDAC supply monitoring Interrupt .... */ 229 #endif /* SYSCFG_ITLINE1_SR_VDDDAC */ 230 #define HAL_ITLINE_RTC ((HAL_SYSCFG_ITLINE2 << 0x18U) | SYSCFG_ITLINE2_SR_RTC) /*!< RTC -> exti[28] Interrupt */ 231 #define HAL_ITLINE_TAMPER ((HAL_SYSCFG_ITLINE2 << 0x18U) | SYSCFG_ITLINE2_SR_TAMPER) /*!< TAMPER -> exti[29] interrupt .... */ 232 #define HAL_ITLINE_FLASH_ECC ((HAL_SYSCFG_ITLINE3 << 0x18U) | SYSCFG_ITLINE3_SR_FLASH_ECC) /*!< Flash ECC Interrupt */ 233 #define HAL_ITLINE_FLASH_ITF ((HAL_SYSCFG_ITLINE3 << 0x18U) | SYSCFG_ITLINE3_SR_FLASH_ITF) /*!< Flash ITF Interrupt */ 234 #define HAL_ITLINE_RCC ((HAL_SYSCFG_ITLINE4 << 0x18U) | SYSCFG_ITLINE4_SR_RCC) /*!< RCC Interrupt */ 235 #define HAL_ITLINE_CRS ((HAL_SYSCFG_ITLINE4 << 0x18U) | SYSCFG_ITLINE4_SR_CRS) /*!< RCC Interrupt */ 236 #define HAL_ITLINE_EXTI0 ((HAL_SYSCFG_ITLINE5 << 0x18U) | SYSCFG_ITLINE5_SR_EXTI0) /*!< External Interrupt 0 */ 237 #define HAL_ITLINE_EXTI1 ((HAL_SYSCFG_ITLINE5 << 0x18U) | SYSCFG_ITLINE5_SR_EXTI1) /*!< External Interrupt 1 */ 238 #define HAL_ITLINE_EXTI2 ((HAL_SYSCFG_ITLINE6 << 0x18U) | SYSCFG_ITLINE6_SR_EXTI2) /*!< External Interrupt 2 */ 239 #define HAL_ITLINE_EXTI3 ((HAL_SYSCFG_ITLINE6 << 0x18U) | SYSCFG_ITLINE6_SR_EXTI3) /*!< External Interrupt 3 */ 240 #define HAL_ITLINE_EXTI4 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI4) /*!< EXTI4 Interrupt */ 241 #define HAL_ITLINE_EXTI5 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI5) /*!< EXTI5 Interrupt */ 242 #define HAL_ITLINE_EXTI6 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI6) /*!< EXTI6 Interrupt */ 243 #define HAL_ITLINE_EXTI7 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI7) /*!< EXTI7 Interrupt */ 244 #define HAL_ITLINE_EXTI8 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI8) /*!< EXTI8 Interrupt */ 245 #define HAL_ITLINE_EXTI9 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI9) /*!< EXTI9 Interrupt */ 246 #define HAL_ITLINE_EXTI10 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI10) /*!< EXTI10 Interrupt */ 247 #define HAL_ITLINE_EXTI11 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI11) /*!< EXTI11 Interrupt */ 248 #define HAL_ITLINE_EXTI12 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI12) /*!< EXTI12 Interrupt */ 249 #define HAL_ITLINE_EXTI13 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI13) /*!< EXTI13 Interrupt */ 250 #define HAL_ITLINE_EXTI14 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI14) /*!< EXTI14 Interrupt */ 251 #define HAL_ITLINE_EXTI15 ((HAL_SYSCFG_ITLINE7 << 0x18U) | SYSCFG_ITLINE7_SR_EXTI15) /*!< EXTI15 Interrupt */ 252 #if defined (SYSCFG_ITLINE8_SR_USBFS) 253 #define HAL_ITLINE_USBFS ((HAL_SYSCFG_ITLINE8 << 0x18U) | SYSCFG_ITLINE8_SR_USBFS1) /*!< USBFS Interrupt */ 254 #endif /* SYSCFG_ITLINE8_SR_USBFS */ 255 #define HAL_ITLINE_DMA1_CH1 ((HAL_SYSCFG_ITLINE9 << 0x18U) | SYSCFG_ITLINE9_SR_DMA1_CH1) /*!< DMA1 Channel 1 Interrupt */ 256 #define HAL_ITLINE_DMA1_CH2 ((HAL_SYSCFG_ITLINE10 << 0x18U) | SYSCFG_ITLINE10_SR_DMA1_CH2) /*!< DMA1 Channel 2 Interrupt */ 257 #define HAL_ITLINE_DMA1_CH3 ((HAL_SYSCFG_ITLINE10 << 0x18U) | SYSCFG_ITLINE10_SR_DMA1_CH3) /*!< DMA1 Channel 3 Interrupt */ 258 #define HAL_ITLINE_DMAMUX ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMAMUX) /*!< DMAMUX Interrupt */ 259 #define HAL_ITLINE_DMA1_CH4 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH4) /*!< DMA1 Channel 4 Interrupt */ 260 #define HAL_ITLINE_DMA1_CH5 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH5) /*!< DMA1 Channel 5 Interrupt */ 261 #define HAL_ITLINE_DMA1_CH6 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH6) /*!< DMA1 Channel 6 Interrupt */ 262 #define HAL_ITLINE_DMA1_CH7 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH7) /*!< DMA1 Channel 7 Interrupt */ 263 #define HAL_ITLINE_DMA1_CH8 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH8) /*!< DMA1 Channel 8 Interrupt */ 264 #define HAL_ITLINE_DMA1_CH9 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH9) /*!< DMA1 Channel 9 Interrupt */ 265 #define HAL_ITLINE_DMA1_CH10 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH10) /*!< DMA1 Channel 10 Interrupt */ 266 #define HAL_ITLINE_DMA1_CH11 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH11) /*!< DMA1 Channel 11 Interrupt */ 267 #define HAL_ITLINE_DMA1_CH12 ((HAL_SYSCFG_ITLINE11 << 0x18U) | SYSCFG_ITLINE11_SR_DMA1_CH12) /*!< DMA1 Channel 12 Interrupt */ 268 269 #define HAL_ITLINE_ADC ((HAL_SYSCFG_ITLINE12 << 0x18U) | SYSCFG_ITLINE12_SR_ADC) /*!< ADC Interrupt */ 270 #if defined (COMP1) 271 #define HAL_ITLINE_COMP1 ((HAL_SYSCFG_ITLINE12 << 0x18U) | SYSCFG_ITLINE12_SR_COMP1) /*!< COMP1 Interrupt -> exti[17] */ 272 #endif /* COMP1 */ 273 #if defined (COMP2) 274 #define HAL_ITLINE_COMP2 ((HAL_SYSCFG_ITLINE12 << 0x18U) | SYSCFG_ITLINE12_SR_COMP2) /*!< COMP2 Interrupt -> exti[18] */ 275 #endif /* COMP2 */ 276 #define HAL_ITLINE_TIM1_BRK ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_BRK) /*!< TIM1 BRK Interrupt */ 277 #define HAL_ITLINE_TIM1_UPD ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_UPD) /*!< TIM1 UPD Interrupt */ 278 #define HAL_ITLINE_TIM1_TRG ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_TRG) /*!< TIM1 TRG Interrupt */ 279 #define HAL_ITLINE_TIM1_CCU ((HAL_SYSCFG_ITLINE13 << 0x18U) | SYSCFG_ITLINE13_SR_TIM1_CCU) /*!< TIM1 CCU Interrupt */ 280 #define HAL_ITLINE_TIM1_CC1 ((HAL_SYSCFG_ITLINE14 << 0x18U) | SYSCFG_ITLINE14_SR_TIM1_CC1) /*!< TIM1 CC1 Interrupt */ 281 #define HAL_ITLINE_TIM1_CC2 ((HAL_SYSCFG_ITLINE14 << 0x18U) | SYSCFG_ITLINE14_SR_TIM1_CC2) /*!< TIM1 CC2 Interrupt */ 282 #define HAL_ITLINE_TIM1_CC3 ((HAL_SYSCFG_ITLINE14 << 0x18U) | SYSCFG_ITLINE14_SR_TIM1_CC3) /*!< TIM1 CC3 Interrupt */ 283 #define HAL_ITLINE_TIM1_CC4 ((HAL_SYSCFG_ITLINE14 << 0x18U) | SYSCFG_ITLINE14_SR_TIM1_CC4) /*!< TIM1 CC4 Interrupt */ 284 #if defined (TIM2) 285 #define HAL_ITLINE_TIM2 ((HAL_SYSCFG_ITLINE15 << 0x18U) | SYSCFG_ITLINE15_SR_TIM2_GLB) /*!< TIM2 Interrupt */ 286 #endif /* TIM2 */ 287 #define HAL_ITLINE_TIM3 ((HAL_SYSCFG_ITLINE16 << 0x18U) | SYSCFG_ITLINE16_SR_TIM3_GLB) /*!< TIM3 Interrupt */ 288 #if defined(TIM6) 289 #define HAL_ITLINE_TIM6 ((HAL_SYSCFG_ITLINE17 << 0x18U) | SYSCFG_ITLINE17_SR_TIM6_GLB) /*!< TIM6 Interrupt */ 290 #endif /* TIM6 */ 291 #if defined(DAC) 292 #define HAL_ITLINE_DAC ((HAL_SYSCFG_ITLINE17 << 0x18U) | SYSCFG_ITLINE17_SR_DAC_GLB) /*!< DAC Interrupt */ 293 #endif /* DAC */ 294 #if defined(LPTIM1) 295 #define HAL_ITLINE_LPTIM1 ((HAL_SYSCFG_ITLINE17 << 0x18U) | SYSCFG_ITLINE17_SR_LPTIM1_GLB) /*!< LPTIM1 Interrupt -> exti[24] */ 296 #endif /* LPTIM1 */ 297 #if defined(TIM7) 298 #define HAL_ITLINE_TIM7 ((HAL_SYSCFG_ITLINE18 << 0x18U) | SYSCFG_ITLINE18_SR_TIM7_GLB) /*!< TIM7 Interrupt */ 299 #endif /* TIM7 */ 300 #if defined(LPTIM2) 301 #define HAL_ITLINE_LPTIM2 ((HAL_SYSCFG_ITLINE18 << 0x18U) | SYSCFG_ITLINE18_SR_LPTIM2_GLB) /*!< LPTIM2 Interrupt -> exti[25] */ 302 #endif /* LPTIM2 */ 303 #define HAL_ITLINE_TIM14 ((HAL_SYSCFG_ITLINE19 << 0x18U) | SYSCFG_ITLINE19_SR_TIM14_GLB) /*!< TIM14 Interrupt */ 304 #if defined(TIM15) 305 #define HAL_ITLINE_TIM15 ((HAL_SYSCFG_ITLINE19 << 0x18U) | SYSCFG_ITLINE19_SR_TIM15_GLB) /*!< TIM15 Interrupt */ 306 #endif /* TIM15 */ 307 #if defined(TIM16) 308 #define HAL_ITLINE_TIM16 ((HAL_SYSCFG_ITLINE20 << 0x18U) | SYSCFG_ITLINE20_SR_TIM16_GLB) /*!< TIM16 Interrupt */ 309 #endif /* TIM16 */ 310 #if defined(LPTIM3) 311 #define HAL_ITLINE_LPTIM3 ((HAL_SYSCFG_ITLINE17 << 0x18U) | SYSCFG_ITLINE17_SR_LPTIM3_GLB) /*!< LPTIM3 Interrupt -> exti[26] */ 312 #endif /* LPTIM3 */ 313 314 #define HAL_ITLINE_TSC_MCE ((HAL_SYSCFG_ITLINE21 << 0x18U) | SYSCFG_ITLINE21_SR_TSC_MCE) /*!< TSC MCE Interrupt */ 315 #define HAL_ITLINE_TSC_EOA ((HAL_SYSCFG_ITLINE21 << 0x18U) | SYSCFG_ITLINE21_SR_TSC_EOA) /*!< TSC EOA Interrupt */ 316 317 #define HAL_ITLINE_LCD ((HAL_SYSCFG_ITLINE22 << 0x18U) | SYSCFG_ITLINE21_SR_LCD) /*!< LCD Interrupt */ 318 319 #define HAL_ITLINE_I2C1 ((HAL_SYSCFG_ITLINE23 << 0x18U) | SYSCFG_ITLINE23_SR_I2C1_GLB) /*!< I2C1 Interrupt -> exti[33] */ 320 #define HAL_ITLINE_I2C2 ((HAL_SYSCFG_ITLINE24 << 0x18U) | SYSCFG_ITLINE24_SR_I2C2_GLB) /*!< I2C2 Interrupt */ 321 322 #define HAL_ITLINE_I2C4 ((HAL_SYSCFG_ITLINE24 << 0x18U) | SYSCFG_ITLINE24_SR_I2C4_GLB) /*!< I2C4 Interrupt */ 323 #define HAL_ITLINE_I2C3 ((HAL_SYSCFG_ITLINE24 << 0x18U) | SYSCFG_ITLINE24_SR_I2C4_GLB) /*!< I2C3 Interrupt */ 324 325 #define HAL_ITLINE_SPI1 ((HAL_SYSCFG_ITLINE25 << 0x18U) | SYSCFG_ITLINE25_SR_SPI1) /*!< SPI1 Interrupt */ 326 #define HAL_ITLINE_SPI2 ((HAL_SYSCFG_ITLINE26 << 0x18U) | SYSCFG_ITLINE26_SR_SPI2) /*!< SPI2 Interrupt */ 327 #define HAL_ITLINE_USART1 ((HAL_SYSCFG_ITLINE27 << 0x18U) | SYSCFG_ITLINE27_SR_USART1_GLB) /*!< USART1 GLB Interrupt -> exti[25] */ 328 #define HAL_ITLINE_USART2 ((HAL_SYSCFG_ITLINE28 << 0x18U) | SYSCFG_ITLINE28_SR_USART2_GLB) /*!< USART2 GLB Interrupt -> exti[26] */ 329 #define HAL_ITLINE_LPUART2 ((HAL_SYSCFG_ITLINE28 << 0x18U) | SYSCFG_ITLINE28_SR_LPUART2_GLB) /*!< LPUART2 GLB Interrupt -> exti[31] */ 330 #if defined(USART3) 331 #define HAL_ITLINE_USART3 ((HAL_SYSCFG_ITLINE29 << 0x18U) | SYSCFG_ITLINE29_SR_USART3_GLB) /*!< USART3 Interrupt .... */ 332 #endif /* USART3 */ 333 #if defined (LPUART1) 334 #define HAL_ITLINE_LPUART1 ((HAL_SYSCFG_ITLINE29 << 0x18U) | SYSCFG_ITLINE29_SR_LPUART1_GLB) /*!< LPUART1 Interrupt -> exti[28]*/ 335 #endif /* LPUART1 */ 336 #if defined(USART4) 337 #define HAL_ITLINE_USART4 ((HAL_SYSCFG_ITLINE30 << 0x18U) | SYSCFG_ITLINE30_SR_USART4_GLB) /*!< USART4 Interrupt .... */ 338 #endif /* USART4 */ 339 #if defined (LPUART3) 340 #define HAL_ITLINE_LPUART3 ((HAL_SYSCFG_ITLINE29 << 0x18U) | SYSCFG_ITLINE29_SR_LPUART3_GLB) /*!< LPUART3 Interrupt -> exti[32]*/ 341 #endif /* LPUART3 */ 342 343 #if defined (RNG) 344 #define HAL_ITLINE_RNG ((HAL_SYSCFG_ITLINE31 << 0x18U) | SYSCFG_ITLINE31_SR_RNG) /*!< RNG Interrupt */ 345 #endif /* RNG */ 346 #if defined (AES) 347 #define HAL_ITLINE_AES ((HAL_SYSCFG_ITLINE31 << 0x18U) | SYSCFG_ITLINE31_SR_AES) /*!< AES Interrupt */ 348 #endif /* AES */ 349 /** 350 * @} 351 */ 352 353 /** 354 * @} 355 */ 356 357 /* Exported macros -----------------------------------------------------------*/ 358 /** @defgroup HAL_Exported_Macros HAL Exported Macros 359 * @{ 360 */ 361 362 /** @defgroup DBG_Exported_Macros DBG Exported Macros 363 * @{ 364 */ 365 366 /** @brief Freeze and Unfreeze Peripherals in Debug mode 367 */ 368 #if defined(DBGMCU_APBFZ1_DBG_TIM2_STOP) 369 #define __HAL_DBGMCU_FREEZE_TIM2() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM2_STOP) 370 #define __HAL_DBGMCU_UNFREEZE_TIM2() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM2_STOP) 371 #endif /* DBGMCU_APBFZ1_DBG_TIM2_STOP */ 372 373 #if defined(DBGMCU_APBFZ1_DBG_TIM3_STOP) 374 #define __HAL_DBGMCU_FREEZE_TIM3() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM3_STOP) 375 #define __HAL_DBGMCU_UNFREEZE_TIM3() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM3_STOP) 376 #endif /* DBGMCU_APBFZ1_DBG_TIM3_STOP */ 377 378 #if defined(DBGMCU_APBFZ1_DBG_TIM4_STOP) 379 #define __HAL_DBGMCU_FREEZE_TIM4() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM4_STOP) 380 #define __HAL_DBGMCU_UNFREEZE_TIM4() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM4_STOP) 381 #endif /* DBGMCU_APBFZ1_DBG_TIM4_STOP */ 382 383 #if defined(DBGMCU_APBFZ1_DBG_TIM6_STOP) 384 #define __HAL_DBGMCU_FREEZE_TIM6() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM6_STOP) 385 #define __HAL_DBGMCU_UNFREEZE_TIM6() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM6_STOP) 386 #endif /* DBGMCU_APBFZ1_DBG_TIM6_STOP */ 387 388 #if defined(DBGMCU_APBFZ1_DBG_TIM7_STOP) 389 #define __HAL_DBGMCU_FREEZE_TIM7() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM7_STOP) 390 #define __HAL_DBGMCU_UNFREEZE_TIM7() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_TIM7_STOP) 391 #endif /* DBGMCU_APBFZ1_DBG_TIM7_STOP */ 392 393 #if defined(DBGMCU_APBFZ1_DBG_RTC_STOP) 394 #define __HAL_DBGMCU_FREEZE_RTC() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_RTC_STOP) 395 #define __HAL_DBGMCU_UNFREEZE_RTC() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_RTC_STOP) 396 #endif /* DBGMCU_APBFZ1_DBG_RTC_STOP */ 397 398 #if defined(DBGMCU_APBFZ1_DBG_WWDG_STOP) 399 #define __HAL_DBGMCU_FREEZE_WWDG() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_WWDG_STOP) 400 #define __HAL_DBGMCU_UNFREEZE_WWDG() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_WWDG_STOP) 401 #endif /* DBGMCU_APBFZ1_DBG_WWDG_STOP */ 402 403 #if defined(DBGMCU_APBFZ1_DBG_IWDG_STOP) 404 #define __HAL_DBGMCU_FREEZE_IWDG() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_IWDG_STOP) 405 #define __HAL_DBGMCU_UNFREEZE_IWDG() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_IWDG_STOP) 406 #endif /* DBGMCU_APBFZ1_DBG_IWDG_STOP */ 407 408 #if defined(DBGMCU_APBFZ1_DBG_I2C3_STOP) 409 #define __HAL_DBGMCU_FREEZE_I2C3() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_I2C3_STOP) 410 #define __HAL_DBGMCU_UNFREEZE_I2C3() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_I2C3_STOP) 411 #endif /* DBGMCU_APBFZ1_DBG_I2C3_STOP */ 412 413 #if defined(DBGMCU_APBFZ1_DBG_I2C1_STOP) 414 #define __HAL_DBGMCU_FREEZE_I2C1() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_I2C1_STOP) 415 #define __HAL_DBGMCU_UNFREEZE_I2C1() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_I2C1_STOP) 416 #endif /* DBGMCU_APBFZ1_DBG_I2C1_STOP */ 417 418 #if defined(DBGMCU_APBFZ1_DBG_LPTIM2_STOP) 419 #define __HAL_DBGMCU_FREEZE_LPTIM2() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_LPTIM2_STOP) 420 #define __HAL_DBGMCU_UNFREEZE_LPTIM2() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_LPTIM2_STOP) 421 #endif /* DBGMCU_APBFZ1_DBG_LPTIM2_STOP */ 422 423 #if defined(DBGMCU_APBFZ1_DBG_LPTIM1_STOP) 424 #define __HAL_DBGMCU_FREEZE_LPTIM1() SET_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_LPTIM1_STOP) 425 #define __HAL_DBGMCU_UNFREEZE_LPTIM1() CLEAR_BIT(DBGMCU->APBFZ1, DBGMCU_APBFZ1_DBG_LPTIM1_STOP) 426 #endif /* DBGMCU_APBFZ1_DBG_LPTIM1_STOP */ 427 428 #if defined(DBGMCU_APBFZ2_DBG_TIM1_STOP) 429 #define __HAL_DBGMCU_FREEZE_TIM1() SET_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM1_STOP) 430 #define __HAL_DBGMCU_UNFREEZE_TIM1() CLEAR_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM1_STOP) 431 #endif /* DBGMCU_APBFZ2_DBG_TIM1_STOP */ 432 433 #if defined(DBGMCU_APBFZ2_DBG_TIM14_STOP) 434 #define __HAL_DBGMCU_FREEZE_TIM14() SET_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM14_STOP) 435 #define __HAL_DBGMCU_UNFREEZE_TIM14() CLEAR_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM14_STOP) 436 #endif /* DBGMCU_APBFZ2_DBG_TIM14_STOP */ 437 438 #if defined(DBGMCU_APBFZ2_DBG_TIM15_STOP) 439 #define __HAL_DBGMCU_FREEZE_TIM15() SET_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM15_STOP) 440 #define __HAL_DBGMCU_UNFREEZE_TIM15() CLEAR_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM15_STOP) 441 #endif /* DBGMCU_APBFZ2_DBG_TIM15_STOP */ 442 443 #if defined(DBGMCU_APBFZ2_DBG_TIM16_STOP) 444 #define __HAL_DBGMCU_FREEZE_TIM16() SET_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM16_STOP) 445 #define __HAL_DBGMCU_UNFREEZE_TIM16() CLEAR_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_TIM16_STOP) 446 #endif /* DBGMCU_APBFZ2_DBG_TIM16_STOP */ 447 448 #if defined(DBGMCU_APBFZ2_DBG_LPTIM3_STOP) 449 #define __HAL_DBGMCU_FREEZE_LPTIM3() SET_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_LPTIM3_STOP) 450 #define __HAL_DBGMCU_UNFREEZE_LPTIM3() CLEAR_BIT(DBGMCU->APBFZ2, DBGMCU_APBFZ2_DBG_LPTIM3_STOP) 451 #endif /* DBGMCU_APBFZ2_DBG_LPTIM3_STOP */ 452 453 /** 454 * @} 455 */ 456 457 /** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros 458 * @{ 459 */ 460 461 /** @brief Main Flash memory mapped at 0x00000000 462 */ 463 #define __HAL_SYSCFG_REMAPMEMORY_FLASH() CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE) 464 465 /** @brief System Flash memory mapped at 0x00000000 466 */ 467 #define __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH() MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, SYSCFG_CFGR1_MEM_MODE_0) 468 469 /** @brief Embedded SRAM mapped at 0x00000000 470 */ 471 #define __HAL_SYSCFG_REMAPMEMORY_SRAM() MODIFY_REG(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE, \ 472 (SYSCFG_CFGR1_MEM_MODE_1 | SYSCFG_CFGR1_MEM_MODE_0)) 473 474 /** 475 * @brief Return the boot mode as configured by user. 476 * @retval The boot mode as configured by user. The returned value can be one 477 * of the following values @ref SYSCFG_BootMode 478 */ 479 #define __HAL_SYSCFG_GET_BOOT_MODE() READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_MEM_MODE) 480 481 /** @brief SYSCFG Break ECC lock. 482 * Enable and lock the connection of Flash ECC error connection to TIM1 Break input. 483 * @note The selected configuration is locked and can be unlocked only by system reset. 484 */ 485 #define __HAL_SYSCFG_BREAK_ECC_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_ECCL) 486 487 /** @brief SYSCFG Break Cortex-M0+ Lockup lock. 488 * Enables and locks the connection of Cortex-M0+ LOCKUP (Hardfault) output to TIM1/15/16/17 Break input 489 * @note The selected configuration is locked and can be unlocked only by system reset. 490 */ 491 #define __HAL_SYSCFG_BREAK_LOCKUP_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_CCL) 492 493 #if defined(SYSCFG_CFGR2_PVDL) 494 /** @brief SYSCFG Break PVD lock. 495 * Enables and locks the PVD connection with Timer1/15/16/17 Break input, as well as the PVDE and PLS[2:0] 496 * in the PWR_CR register 497 * @note The selected configuration is locked and can be unlocked only by system reset 498 */ 499 #define __HAL_SYSCFG_BREAK_PVD_LOCK() SET_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_PVDL) 500 #endif /* SYSCFG_CFGR2_PVDL */ 501 502 /** @brief SYSCFG Break SRAM PARITY lock 503 * Enables and locks the SRAM_PARITY error signal with Break Input of TIMER1/15/16/17 504 * @note The selected configuration is locked and can only be unlocked by system reset 505 */ 506 #define __HAL_SYSCFG_BREAK_SRAMPARITY_LOCK() SET_BIT(SYSCFG->CFGR2,SYSCFG_CFGR2_SPL) 507 508 /** @brief Check SYSCFG flag is set or not. 509 * @param __FLAG__ specifies the flag to check. 510 * This parameter can be one of the following values: 511 * @arg @ref SYSCFG_FLAG_SRAM1_PE SRAM1 Parity Error Flag 512 * @arg @ref SYSCFG_FLAG_SRAM2_PE SRAM2 Parity Error Flag 513 * @arg @ref SYSCFG_FLAG_SRAM2_BUSY SRAM2 Erase Ongoing 514 * @retval The new state of __FLAG__ (TRUE or FALSE). 515 */ 516 #define __HAL_SYSCFG_GET_FLAG(__FLAG__) \ 517 ((((((__FLAG__) == SYSCFG_SCSR_SRAM2BSY)? SYSCFG->SCSR : SYSCFG->CFGR2) & (__FLAG__)) != 0U) ? 1U : 0U) 518 519 /** @brief Set the PEF bit to clear the SRAM Parity Error Flag. 520 * @param __FLAG__ specifies the flag to clear. 521 * This parameter can be one of the following values: 522 * @arg @ref SYSCFG_FLAG_SRAM1_PE SRAM1 Parity Error Flag 523 * @arg @ref SYSCFG_FLAG_SRAM2_PE SRAM2 Parity Error Flag 524 */ 525 #define __HAL_SYSCFG_CLEAR_FLAG(__FLAG__) \ 526 do{ \ 527 assert_param(IS_SYSCFG_PARITYFLAG((__FLAG__)));\ 528 SET_BIT(SYSCFG->CFGR2, (__FLAG__));\ 529 } while(0U) 530 531 /** @brief Fast-mode Plus driving capability enable/disable macros 532 * @param __FASTMODEPLUS__ This parameter can be a value of @ref SYSCFG_FastModePlus_GPIO 533 */ 534 #define __HAL_SYSCFG_FASTMODEPLUS_ENABLE(__FASTMODEPLUS__) \ 535 do { \ 536 assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ 537 SET_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ 538 } while(0U) 539 540 #define __HAL_SYSCFG_FASTMODEPLUS_DISABLE(__FASTMODEPLUS__) \ 541 do { \ 542 assert_param(IS_SYSCFG_FASTMODEPLUS((__FASTMODEPLUS__)));\ 543 CLEAR_BIT(SYSCFG->CFGR1, (__FASTMODEPLUS__));\ 544 } while(0U) 545 546 /** @brief ISR wrapper check 547 * @note Allow to determine interrupt source per line. 548 */ 549 #define __HAL_SYSCFG_GET_PENDING_IT(__SOURCE__) (SYSCFG->IT_LINE_SR[((__SOURCE__) >> 0x18U)] &\ 550 ((__SOURCE__) & 0x00FFFFFFU)) 551 552 /** @brief selection of the modulation envelope signal macro, using bits [7:6] of SYSCFG_CFGR1 register 553 * @param __SOURCE__ This parameter can be a value of @ref HAL_IR_ENV_SEL 554 */ 555 #define __HAL_SYSCFG_IRDA_ENV_SELECTION(__SOURCE__) do {assert_param(IS_HAL_SYSCFG_IRDA_ENV_SEL((__SOURCE__)));\ 556 CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_MOD);\ 557 SET_BIT(SYSCFG->CFGR1, (__SOURCE__));\ 558 }while(0U) 559 560 #define __HAL_SYSCFG_GET_IRDA_ENV_SELECTION() ((SYSCFG->CFGR1) & 0x000000C0U) 561 562 /** @brief IROut Polarity Selection, using bit[5] of SYSCFG_CFGR1 register 563 * @param __SEL__ This parameter can be a value of @ref HAL_IR_POL_SEL 564 */ 565 #define __HAL_SYSCFG_IRDA_OUT_POLARITY_SELECTION(__SEL__) do { assert_param(IS_HAL_SYSCFG_IRDA_POL_SEL((__SEL__)));\ 566 CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL);\ 567 SET_BIT(SYSCFG->CFGR1,(__SEL__));\ 568 }while(0U) 569 570 /** 571 * @brief Return the IROut Polarity mode as configured by user. 572 * @retval The IROut polarity as configured by user. The returned value can be one 573 * of @ref HAL_IR_POL_SEL 574 */ 575 #define __HAL_SYSCFG_GET_POLARITY() READ_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_IR_POL) 576 577 /** @brief Break input to TIM1/15/16 capability enable/disable macros 578 * @param __BREAK__ This parameter can be a value of @ref SYSCFG_Break 579 */ 580 #define __HAL_SYSCFG_BREAK_ENABLE(__BREAK__) do {assert_param(IS_SYSCFG_BREAK_CONFIG((__BREAK__)));\ 581 SET_BIT(SYSCFG->CFGR2, (__BREAK__));\ 582 }while(0U) 583 584 #define __HAL_SYSCFG_BREAK_DISABLE(__BREAK__) do {assert_param(IS_SYSCFG_BREAK_CONFIG((__BREAK__)));\ 585 CLEAR_BIT(SYSCFG->CFGR2, (__BREAK__));\ 586 }while(0U) 587 /** 588 * @} 589 */ 590 591 /** 592 * @} 593 */ 594 595 /* Private macros ------------------------------------------------------------*/ 596 /** @defgroup SYSCFG_Private_Macros SYSCFG Private Macros 597 * @{ 598 */ 599 #if defined (PWR_PVD_SUPPORT) 600 #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_SP) || \ 601 ((__CONFIG__) == SYSCFG_BREAK_PVD) || \ 602 ((__CONFIG__) == SYSCFG_BREAK_ECC) || \ 603 ((__CONFIG__) == SYSCFG_BREAK_LOCKUP)) 604 #else 605 #define IS_SYSCFG_BREAK_CONFIG(__CONFIG__) (((__CONFIG__) == SYSCFG_BREAK_SP) || \ 606 ((__CONFIG__) == SYSCFG_BREAK_ECC) || \ 607 ((__CONFIG__) == SYSCFG_BREAK_LOCKUP)) 608 #endif /* PWR_PVD_SUPPORT */ 609 610 #define IS_HAL_SYSCFG_IRDA_ENV_SEL(SEL) (((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_TIM16) || \ 611 ((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_USART1) || \ 612 ((SEL) == HAL_SYSCFG_IRDA_ENV_SEL_USART2)) 613 614 #define IS_HAL_SYSCFG_IRDA_POL_SEL(SEL) (((SEL) == HAL_SYSCFG_IRDA_POLARITY_NOT_INVERTED) || \ 615 ((SEL) == HAL_SYSCFG_IRDA_POLARITY_INVERTED)) 616 617 #if defined(VREFBUF) 618 #define IS_SYSCFG_VREFBUF_VOLTAGE_SCALE(__SCALE__) (((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE0) || \ 619 ((__SCALE__) == SYSCFG_VREFBUF_VOLTAGE_SCALE1)) 620 621 #define IS_SYSCFG_VREFBUF_HIGH_IMPEDANCE(__VALUE__) (((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE) || \ 622 ((__VALUE__) == SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE)) 623 624 #define IS_SYSCFG_VREFBUF_TRIMMING(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= VREFBUF_CCR_TRIM)) 625 #endif /* VREFBUF */ 626 627 #define IS_SYSCFG_COMPMODE(__COMPMODEIO__) \ 628 ((((__COMPMODEIO__) & SYSCFG_COMP_MODE_GRP2_IO1) == SYSCFG_COMP_MODE_GRP2_IO1) || \ 629 (((__COMPMODEIO__) & SYSCFG_COMP_MODE_GRP2_IO3) == SYSCFG_COMP_MODE_GRP2_IO3) || \ 630 (((__COMPMODEIO__) & SYSCFG_COMP_MODE_GRP4_IO1) == SYSCFG_COMP_MODE_GRP4_IO1) || \ 631 (((__COMPMODEIO__) & SYSCFG_COMP_MODE_GRP6_IO1) == SYSCFG_COMP_MODE_GRP6_IO1) || \ 632 (((__COMPMODEIO__) & SYSCFG_COMP_MODE_GRP7_IO2) == SYSCFG_COMP_MODE_GRP7_IO2)) 633 634 #define IS_SYSCFG_FASTMODEPLUS(__PIN__) ((((__PIN__) & SYSCFG_FASTMODEPLUS_PA9) == SYSCFG_FASTMODEPLUS_PA9) || \ 635 (((__PIN__) & SYSCFG_FASTMODEPLUS_PA10) == SYSCFG_FASTMODEPLUS_PA10) || \ 636 (((__PIN__) & SYSCFG_FASTMODEPLUS_PB6) == SYSCFG_FASTMODEPLUS_PB6) || \ 637 (((__PIN__) & SYSCFG_FASTMODEPLUS_PB7) == SYSCFG_FASTMODEPLUS_PB7) || \ 638 (((__PIN__) & SYSCFG_FASTMODEPLUS_PB8) == SYSCFG_FASTMODEPLUS_PB8) || \ 639 (((__PIN__) & SYSCFG_FASTMODEPLUS_PB9) == SYSCFG_FASTMODEPLUS_PB9)) 640 641 #define IS_HAL_REMAP_PIN(RMP) (((RMP) == SYSCFG_REMAP_PA11) || \ 642 ((RMP) == SYSCFG_REMAP_PA12) || \ 643 ((RMP) == (SYSCFG_REMAP_PA11 | SYSCFG_REMAP_PA12))) 644 645 #define IS_SYSCFG_PARITYFLAG(__FLAG__) (((__FLAG__) == SYSCFG_FLAG_SRAM1_PE) || \ 646 ((__FLAG__) == SYSCFG_FLAG_SRAM2_PE)) 647 /** 648 * @} 649 */ 650 651 /** @defgroup HAL_Private_Macros HAL Private Macros 652 * @{ 653 */ 654 #define IS_TICKFREQ(FREQ) (((FREQ) == HAL_TICK_FREQ_10HZ) || \ 655 ((FREQ) == HAL_TICK_FREQ_100HZ) || \ 656 ((FREQ) == HAL_TICK_FREQ_1KHZ)) 657 /** 658 * @} 659 */ 660 /* Exported functions --------------------------------------------------------*/ 661 662 /** @defgroup HAL_Exported_Functions HAL Exported Functions 663 * @{ 664 */ 665 666 /** @defgroup HAL_Exported_Functions_Group1 HAL Initialization and Configuration functions 667 * @{ 668 */ 669 670 /* Initialization and Configuration functions ******************************/ 671 HAL_StatusTypeDef HAL_Init(void); 672 HAL_StatusTypeDef HAL_DeInit(void); 673 void HAL_MspInit(void); 674 void HAL_MspDeInit(void); 675 HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); 676 677 /** 678 * @} 679 */ 680 681 /** @defgroup HAL_Exported_Functions_Group2 HAL Control functions 682 * @{ 683 */ 684 685 /* Peripheral Control functions ************************************************/ 686 void HAL_IncTick(void); 687 void HAL_Delay(uint32_t Delay); 688 uint32_t HAL_GetTick(void); 689 uint32_t HAL_GetTickPrio(void); 690 HAL_StatusTypeDef HAL_SetTickFreq(uint32_t Freq); 691 uint32_t HAL_GetTickFreq(void); 692 void HAL_SuspendTick(void); 693 void HAL_ResumeTick(void); 694 uint32_t HAL_GetHalVersion(void); 695 uint32_t HAL_GetREVID(void); 696 uint32_t HAL_GetDEVID(void); 697 uint32_t HAL_GetUIDw0(void); 698 uint32_t HAL_GetUIDw1(void); 699 uint32_t HAL_GetUIDw2(void); 700 701 /** 702 * @} 703 */ 704 705 /** @defgroup HAL_Exported_Functions_Group3 DBGMCU Control functions 706 * @{ 707 */ 708 709 /* DBGMCU Peripheral Control functions *****************************************/ 710 void HAL_DBGMCU_EnableDBGStopMode(void); 711 void HAL_DBGMCU_DisableDBGStopMode(void); 712 void HAL_DBGMCU_EnableDBGStandbyMode(void); 713 void HAL_DBGMCU_DisableDBGStandbyMode(void); 714 715 /** 716 * @} 717 */ 718 719 /* Exported variables ---------------------------------------------------------*/ 720 /** @addtogroup HAL_Exported_Variables 721 * @{ 722 */ 723 extern __IO uint32_t uwTick; 724 extern uint32_t uwTickPrio; 725 extern uint32_t uwTickFreq; 726 /** 727 * @} 728 */ 729 730 /** @defgroup HAL_Exported_Functions_Group4 SYSCFG configuration functions 731 * @{ 732 */ 733 734 /* SYSCFG Control functions ****************************************************/ 735 736 #if defined(VREFBUF) 737 void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling); 738 void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode); 739 void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue); 740 HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void); 741 void HAL_SYSCFG_DisableVREFBUF(void); 742 #endif /* VREFBUF */ 743 744 void HAL_SYSCFG_EnableIOAnalogSwitchBooster(void); 745 void HAL_SYSCFG_DisableIOAnalogSwitchBooster(void); 746 void HAL_SYSCFG_EnableRemap(uint32_t PinRemap); 747 void HAL_SYSCFG_DisableRemap(uint32_t PinRemap); 748 void HAL_SYSCFG_EnableTSCComparatorMode(void); 749 void HAL_SYSCFG_DisableTSCComparatorMode(void); 750 void HAL_SYSCFG_SetTSCComparatorModeIO(uint32_t CompModeIOGRP); 751 uint32_t HAL_SYSCFG_GetTSCComparatorModeIO(uint32_t CompModeIOGRP); 752 void HAL_SYSCFG_ClearTSCComparatorModeIO(uint32_t CompModeIOGRP); 753 void HAL_SYSCFG_LockSRAM2(void); 754 void HAL_SYSCFG_UnlockSRAM2(void); 755 void HAL_SYSCFG_EraseSRAM2(void); 756 757 /** 758 * @} 759 */ 760 761 /** 762 * @} 763 */ 764 765 /** 766 * @} 767 */ 768 769 /** 770 * @} 771 */ 772 773 #ifdef __cplusplus 774 } 775 #endif 776 777 #endif /* STM32U0xx_HAL_H */ 778