1 /** 2 ****************************************************************************** 3 * @file stm32l1xx_hal_rcc_ex.h 4 * @author MCD Application Team 5 * @brief Header file of RCC HAL Extension module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file in 13 * the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 ****************************************************************************** 16 */ 17 18 /* Define to prevent recursive inclusion -------------------------------------*/ 19 #ifndef __STM32L1xx_HAL_RCC_EX_H 20 #define __STM32L1xx_HAL_RCC_EX_H 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 /* Includes ------------------------------------------------------------------*/ 27 #include "stm32l1xx_hal_def.h" 28 29 /** @addtogroup STM32L1xx_HAL_Driver 30 * @{ 31 */ 32 33 /** @addtogroup RCCEx 34 * @{ 35 */ 36 37 /** @addtogroup RCCEx_Private_Constants 38 * @{ 39 */ 40 41 #if defined(STM32L100xBA) || defined(STM32L151xBA) || defined(STM32L152xBA)\ 42 || defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 43 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 44 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 45 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX)\ 46 || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 47 48 /* Alias word address of LSECSSON bit */ 49 #define LSECSSON_BITNUMBER RCC_CSR_LSECSSON_Pos 50 #define CSR_LSECSSON_BB ((uint32_t)(PERIPH_BB_BASE + (RCC_CSR_OFFSET_BB * 32U) + (LSECSSON_BITNUMBER * 4U))) 51 52 #endif /* STM32L100xBA || STM32L151xBA || STM32L152xBA || STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX*/ 53 54 /** 55 * @} 56 */ 57 58 /** @addtogroup RCCEx_Private_Macros 59 * @{ 60 */ 61 #if defined(LCD) 62 63 #define IS_RCC_PERIPHCLOCK(__CLK__) ((RCC_PERIPHCLK_RTC <= (__CLK__)) && ((__CLK__) <= RCC_PERIPHCLK_LCD)) 64 65 #else /* Not LCD LINE */ 66 67 #define IS_RCC_PERIPHCLOCK(__CLK__) ((__CLK__) == RCC_PERIPHCLK_RTC) 68 69 #endif /* LCD */ 70 71 /** 72 * @} 73 */ 74 75 /* Exported types ------------------------------------------------------------*/ 76 77 /** @defgroup RCCEx_Exported_Types RCCEx Exported Types 78 * @{ 79 */ 80 81 /** 82 * @brief RCC extended clocks structure definition 83 */ 84 typedef struct 85 { 86 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured. 87 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */ 88 89 uint32_t RTCClockSelection; /*!< specifies the RTC clock source. 90 This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */ 91 92 #if defined(LCD) 93 94 uint32_t LCDClockSelection; /*!< specifies the LCD clock source. 95 This parameter can be a value of @ref RCC_RTC_LCD_Clock_Source */ 96 97 #endif /* LCD */ 98 } RCC_PeriphCLKInitTypeDef; 99 100 /** 101 * @} 102 */ 103 104 /* Exported constants --------------------------------------------------------*/ 105 106 /** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants 107 * @{ 108 */ 109 110 /** @defgroup RCCEx_Periph_Clock_Selection RCCEx Periph Clock Selection 111 * @{ 112 */ 113 #define RCC_PERIPHCLK_RTC (0x00000001U) 114 115 #if defined(LCD) 116 117 #define RCC_PERIPHCLK_LCD (0x00000002U) 118 119 #endif /* LCD */ 120 121 /** 122 * @} 123 */ 124 125 #if defined(RCC_LSECSS_SUPPORT) 126 /** @defgroup RCCEx_EXTI_LINE_LSECSS RCC LSE CSS external interrupt line 127 * @{ 128 */ 129 #define RCC_EXTI_LINE_LSECSS (EXTI_IMR_IM19) /*!< External interrupt line 19 connected to the LSE CSS EXTI Line */ 130 /** 131 * @} 132 */ 133 #endif /* RCC_LSECSS_SUPPORT */ 134 135 /** 136 * @} 137 */ 138 139 /* Exported macro ------------------------------------------------------------*/ 140 /** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros 141 * @{ 142 */ 143 144 /** @defgroup RCCEx_Peripheral_Clock_Enable_Disable RCCEx_Peripheral_Clock_Enable_Disable 145 * @brief Enables or disables the AHB1 peripheral clock. 146 * @note After reset, the peripheral clock (used for registers read/write access) 147 * is disabled and the application software has to enable this clock before 148 * using it. 149 * @{ 150 */ 151 #if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ 152 || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ 153 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 154 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 155 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 156 || defined(STM32L162xE) || defined(STM32L162xDX) 157 158 #define __HAL_RCC_GPIOE_CLK_ENABLE() do { \ 159 __IO uint32_t tmpreg; \ 160 SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ 161 /* Delay after an RCC peripheral clock enabling */ \ 162 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOEEN);\ 163 UNUSED(tmpreg); \ 164 } while(0U) 165 #define __HAL_RCC_GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN)) 166 167 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 168 169 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 170 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 171 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 172 173 #define __HAL_RCC_GPIOF_CLK_ENABLE() do { \ 174 __IO uint32_t tmpreg; \ 175 SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ 176 /* Delay after an RCC peripheral clock enabling */ \ 177 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOFEN);\ 178 UNUSED(tmpreg); \ 179 } while(0U) 180 #define __HAL_RCC_GPIOG_CLK_ENABLE() do { \ 181 __IO uint32_t tmpreg; \ 182 SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ 183 /* Delay after an RCC peripheral clock enabling */ \ 184 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_GPIOGEN);\ 185 UNUSED(tmpreg); \ 186 } while(0U) 187 188 #define __HAL_RCC_GPIOF_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOFEN)) 189 #define __HAL_RCC_GPIOG_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOGEN)) 190 191 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 192 193 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 194 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 195 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 196 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 197 || defined(STM32L162xE) || defined(STM32L162xDX) 198 199 #define __HAL_RCC_DMA2_CLK_ENABLE() do { \ 200 __IO uint32_t tmpreg; \ 201 SET_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ 202 /* Delay after an RCC peripheral clock enabling */ \ 203 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_DMA2EN);\ 204 UNUSED(tmpreg); \ 205 } while(0U) 206 207 #define __HAL_RCC_DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN)) 208 209 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 210 211 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ 212 || defined(STM32L162xE) || defined(STM32L162xDX) 213 214 #define __HAL_RCC_AES_CLK_ENABLE() do { \ 215 __IO uint32_t tmpreg; \ 216 SET_BIT(RCC->AHBENR, RCC_AHBENR_AESEN);\ 217 /* Delay after an RCC peripheral clock enabling */ \ 218 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_AESEN);\ 219 UNUSED(tmpreg); \ 220 } while(0U) 221 #define __HAL_RCC_AES_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_AESEN)) 222 223 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ 224 225 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 226 227 #define __HAL_RCC_FSMC_CLK_ENABLE() do { \ 228 __IO uint32_t tmpreg; \ 229 SET_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN);\ 230 /* Delay after an RCC peripheral clock enabling */ \ 231 tmpreg = READ_BIT(RCC->AHBENR, RCC_AHBENR_FSMCEN);\ 232 UNUSED(tmpreg); \ 233 } while(0U) 234 #define __HAL_RCC_FSMC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_FSMCEN)) 235 236 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 237 238 #if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ 239 || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ 240 || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ 241 || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ 242 || defined(STM32L162xE) || defined(STM32L162xDX) 243 244 #define __HAL_RCC_LCD_CLK_ENABLE() do { \ 245 __IO uint32_t tmpreg; \ 246 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_LCDEN);\ 247 /* Delay after an RCC peripheral clock enabling */ \ 248 tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_LCDEN);\ 249 UNUSED(tmpreg); \ 250 } while(0U) 251 #define __HAL_RCC_LCD_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_LCDEN)) 252 253 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 254 255 /** @brief Enables or disables the Low Speed APB (APB1) peripheral clock. 256 * @note After reset, the peripheral clock (used for registers read/write access) 257 * is disabled and the application software has to enable this clock before 258 * using it. 259 */ 260 #if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ 261 || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 262 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 263 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 264 265 #define __HAL_RCC_TIM5_CLK_ENABLE() do { \ 266 __IO uint32_t tmpreg; \ 267 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM5EN);\ 268 /* Delay after an RCC peripheral clock enabling */ \ 269 tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_TIM5EN);\ 270 UNUSED(tmpreg); \ 271 } while(0U) 272 #define __HAL_RCC_TIM5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN)) 273 274 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 275 276 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 277 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 278 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 279 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 280 || defined(STM32L162xE) || defined(STM32L162xDX) 281 282 #define __HAL_RCC_SPI3_CLK_ENABLE() do { \ 283 __IO uint32_t tmpreg; \ 284 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ 285 /* Delay after an RCC peripheral clock enabling */ \ 286 tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_SPI3EN);\ 287 UNUSED(tmpreg); \ 288 } while(0U) 289 #define __HAL_RCC_SPI3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI3EN)) 290 291 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 292 293 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ 294 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 295 296 #define __HAL_RCC_UART4_CLK_ENABLE() do { \ 297 __IO uint32_t tmpreg; \ 298 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_UART4EN);\ 299 /* Delay after an RCC peripheral clock enabling */ \ 300 tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_UART4EN);\ 301 UNUSED(tmpreg); \ 302 } while(0U) 303 #define __HAL_RCC_UART5_CLK_ENABLE() do { \ 304 __IO uint32_t tmpreg; \ 305 SET_BIT(RCC->APB1ENR, RCC_APB1ENR_UART5EN);\ 306 /* Delay after an RCC peripheral clock enabling */ \ 307 tmpreg = READ_BIT(RCC->APB1ENR, RCC_APB1ENR_UART5EN);\ 308 UNUSED(tmpreg); \ 309 } while(0U) 310 311 #define __HAL_RCC_UART4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART4EN)) 312 #define __HAL_RCC_UART5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_UART5EN)) 313 314 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || (...) || STM32L152xDX || STM32L162xE || STM32L162xDX */ 315 316 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 317 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 318 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE)\ 319 || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ 320 || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) 321 322 #define __HAL_RCC_OPAMP_CLK_ENABLE() __HAL_RCC_COMP_CLK_ENABLE() /* Peripherals COMP and OPAMP share the same clock domain */ 323 #define __HAL_RCC_OPAMP_CLK_DISABLE() __HAL_RCC_COMP_CLK_DISABLE() /* Peripherals COMP and OPAMP share the same clock domain */ 324 325 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || (...) || STM32L162xC || STM32L152xC || STM32L151xC */ 326 327 /** @brief Enables or disables the High Speed APB (APB2) peripheral clock. 328 * @note After reset, the peripheral clock (used for registers read/write access) 329 * is disabled and the application software has to enable this clock before 330 * using it. 331 */ 332 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 333 334 #define __HAL_RCC_SDIO_CLK_ENABLE() do { \ 335 __IO uint32_t tmpreg; \ 336 SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SDIOEN);\ 337 /* Delay after an RCC peripheral clock enabling */ \ 338 tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_SDIOEN);\ 339 UNUSED(tmpreg); \ 340 } while(0U) 341 #define __HAL_RCC_SDIO_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_SDIOEN)) 342 343 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 344 345 /** 346 * @} 347 */ 348 349 350 /** @defgroup RCCEx_Force_Release_Peripheral_Reset RCCEx Force Release Peripheral Reset 351 * @brief Forces or releases AHB peripheral reset. 352 * @{ 353 */ 354 #if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ 355 || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ 356 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 357 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 358 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 359 || defined(STM32L162xE) || defined(STM32L162xDX) 360 361 #define __HAL_RCC_GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST)) 362 #define __HAL_RCC_GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST)) 363 364 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 365 366 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 367 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 368 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 369 370 #define __HAL_RCC_GPIOF_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOFRST)) 371 #define __HAL_RCC_GPIOG_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOGRST)) 372 373 #define __HAL_RCC_GPIOF_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOFRST)) 374 #define __HAL_RCC_GPIOG_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOGRST)) 375 376 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 377 378 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 379 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 380 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 381 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 382 || defined(STM32L162xE) || defined(STM32L162xDX) 383 384 #define __HAL_RCC_DMA2_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_DMA2RST)) 385 #define __HAL_RCC_DMA2_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_DMA2RST)) 386 387 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 388 389 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ 390 || defined(STM32L162xE) || defined(STM32L162xDX) 391 392 #define __HAL_RCC_AES_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_AESRST)) 393 #define __HAL_RCC_AES_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_AESRST)) 394 395 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ 396 397 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 398 399 #define __HAL_RCC_FSMC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_FSMCRST)) 400 #define __HAL_RCC_FSMC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_FSMCRST)) 401 402 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 403 404 #if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ 405 || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ 406 || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ 407 || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ 408 || defined(STM32L162xE) || defined(STM32L162xDX) 409 410 #define __HAL_RCC_LCD_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_LCDRST)) 411 #define __HAL_RCC_LCD_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_LCDRST)) 412 413 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 414 415 /** @brief Forces or releases APB1 peripheral reset. 416 */ 417 #if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ 418 || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 419 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 420 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 421 422 #define __HAL_RCC_TIM5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM5RST)) 423 #define __HAL_RCC_TIM5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM5RST)) 424 425 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 426 427 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 428 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 429 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 430 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 431 || defined(STM32L162xE) || defined(STM32L162xDX) 432 433 #define __HAL_RCC_SPI3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI3RST)) 434 #define __HAL_RCC_SPI3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI3RST)) 435 436 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 437 438 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ 439 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 440 441 #define __HAL_RCC_UART4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART4RST)) 442 #define __HAL_RCC_UART5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_UART5RST)) 443 444 #define __HAL_RCC_UART4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART4RST)) 445 #define __HAL_RCC_UART5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_UART5RST)) 446 447 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 448 449 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 450 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 451 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ 452 || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) 453 454 #define __HAL_RCC_OPAMP_FORCE_RESET() __HAL_RCC_COMP_FORCE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */ 455 #define __HAL_RCC_OPAMP_RELEASE_RESET() __HAL_RCC_COMP_RELEASE_RESET() /* Peripherals COMP and OPAMP share the same clock domain */ 456 457 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ 458 459 /** @brief Forces or releases APB2 peripheral reset. 460 */ 461 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 462 463 #define __HAL_RCC_SDIO_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_SDIORST)) 464 #define __HAL_RCC_SDIO_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_SDIORST)) 465 466 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 467 468 /** 469 * @} 470 */ 471 472 /** @defgroup RCCEx_Peripheral_Clock_Sleep_Enable_Disable RCCEx Peripheral Clock Sleep Enable Disable 473 * @brief Enables or disables the AHB1 peripheral clock during Low Power (Sleep) mode. 474 * @note Peripheral clock gating in SLEEP mode can be used to further reduce 475 * power consumption. 476 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. 477 * @note By default, all peripheral clocks are enabled during SLEEP mode. 478 * @{ 479 */ 480 #if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ 481 || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ 482 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 483 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 484 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 485 || defined(STM32L162xE) || defined(STM32L162xDX) 486 487 #define __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOELPEN)) 488 #define __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOELPEN)) 489 490 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 491 492 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 493 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 494 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 495 496 #define __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOFLPEN)) 497 #define __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_GPIOGLPEN)) 498 499 #define __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOFLPEN)) 500 #define __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_GPIOGLPEN)) 501 502 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 503 504 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 505 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 506 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 507 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 508 || defined(STM32L162xE) || defined(STM32L162xDX) 509 510 #define __HAL_RCC_DMA2_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_DMA2LPEN)) 511 #define __HAL_RCC_DMA2_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_DMA2LPEN)) 512 513 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 514 515 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L162xE) || defined(STM32L162xDX) 516 517 #define __HAL_RCC_AES_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_AESLPEN)) 518 #define __HAL_RCC_AES_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_AESLPEN)) 519 520 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ 521 522 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 523 524 #define __HAL_RCC_FSMC_CLK_SLEEP_ENABLE() (RCC->AHBLPENR |= (RCC_AHBLPENR_FSMCLPEN)) 525 #define __HAL_RCC_FSMC_CLK_SLEEP_DISABLE() (RCC->AHBLPENR &= ~(RCC_AHBLPENR_FSMCLPEN)) 526 527 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 528 529 #if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ 530 || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ 531 || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ 532 || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ 533 || defined(STM32L162xE) || defined(STM32L162xDX) 534 535 #define __HAL_RCC_LCD_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_LCDLPEN)) 536 #define __HAL_RCC_LCD_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_LCDLPEN)) 537 538 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 539 540 /** @brief Enables or disables the APB1 peripheral clock during Low Power (Sleep) mode. 541 * @note Peripheral clock gating in SLEEP mode can be used to further reduce 542 * power consumption. 543 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. 544 * @note By default, all peripheral clocks are enabled during SLEEP mode. 545 */ 546 #if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ 547 || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 548 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 549 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 550 551 #define __HAL_RCC_TIM5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_TIM5LPEN)) 552 #define __HAL_RCC_TIM5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_TIM5LPEN)) 553 554 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 555 556 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 557 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 558 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 559 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 560 || defined(STM32L162xE) || defined(STM32L162xDX) 561 562 #define __HAL_RCC_SPI3_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_SPI3LPEN)) 563 #define __HAL_RCC_SPI3_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_SPI3LPEN)) 564 565 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 566 567 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ 568 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 569 570 #define __HAL_RCC_UART4_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART4LPEN)) 571 #define __HAL_RCC_UART5_CLK_SLEEP_ENABLE() (RCC->APB1LPENR |= (RCC_APB1LPENR_UART5LPEN)) 572 573 #define __HAL_RCC_UART4_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART4LPEN)) 574 #define __HAL_RCC_UART5_CLK_SLEEP_DISABLE() (RCC->APB1LPENR &= ~(RCC_APB1LPENR_UART5LPEN)) 575 576 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 577 578 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 579 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 580 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ 581 || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) 582 583 #define __HAL_RCC_OPAMP_CLK_SLEEP_ENABLE() __HAL_RCC_COMP_CLK_SLEEP_ENABLE() /* Peripherals COMP and OPAMP share the same clock domain */ 584 #define __HAL_RCC_OPAMP_CLK_SLEEP_DISABLE() __HAL_RCC_COMP_CLK_SLEEP_DISABLE() /* Peripherals COMP and OPAMP share the same clock domain */ 585 586 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ 587 588 /** @brief Enables or disables the APB2 peripheral clock during Low Power (Sleep) mode. 589 * @note Peripheral clock gating in SLEEP mode can be used to further reduce 590 * power consumption. 591 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. 592 * @note By default, all peripheral clocks are enabled during SLEEP mode. 593 */ 594 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 595 596 #define __HAL_RCC_SDIO_CLK_SLEEP_ENABLE() (RCC->APB2LPENR |= (RCC_APB2LPENR_SDIOLPEN)) 597 #define __HAL_RCC_SDIO_CLK_SLEEP_DISABLE() (RCC->APB2LPENR &= ~(RCC_APB2LPENR_SDIOLPEN)) 598 599 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 600 601 /** 602 * @} 603 */ 604 605 /** @defgroup RCCEx_Peripheral_Clock_Enable_Disable_Status Peripheral Clock Enable Disable Status 606 * @brief Get the enable or disable status of peripheral clock. 607 * @note After reset, the peripheral clock (used for registers read/write access) 608 * is disabled and the application software has to enable this clock before 609 * using it. 610 * @{ 611 */ 612 613 #if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ 614 || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ 615 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 616 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 617 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 618 || defined(STM32L162xE) || defined(STM32L162xDX) 619 620 #define __HAL_RCC_GPIOE_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) != 0U) 621 #define __HAL_RCC_GPIOE_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOEEN)) == 0U) 622 623 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 624 625 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 626 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 627 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 628 629 #define __HAL_RCC_GPIOF_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) != 0U) 630 #define __HAL_RCC_GPIOG_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) != 0U) 631 #define __HAL_RCC_GPIOF_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOFEN)) == 0U) 632 #define __HAL_RCC_GPIOG_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_GPIOGEN)) == 0U) 633 634 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 635 636 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 637 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 638 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 639 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 640 || defined(STM32L162xE) || defined(STM32L162xDX) 641 642 #define __HAL_RCC_DMA2_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) != 0U) 643 #define __HAL_RCC_DMA2_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_DMA2EN)) == 0U) 644 645 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 646 647 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ 648 || defined(STM32L162xE) || defined(STM32L162xDX) 649 650 #define __HAL_RCC_AES_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_AESEN)) != 0U) 651 #define __HAL_RCC_AES_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_AESEN)) == 0U) 652 653 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ 654 655 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 656 657 #define __HAL_RCC_FSMC_IS_CLK_ENABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) != 0U) 658 #define __HAL_RCC_FSMC_IS_CLK_DISABLED() ((RCC->AHBENR & (RCC_AHBENR_FSMCEN)) == 0U) 659 660 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 661 662 #if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ 663 || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ 664 || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ 665 || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ 666 || defined(STM32L162xE) || defined(STM32L162xDX) 667 668 #define __HAL_RCC_LCD_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_LCDEN)) != 0U) 669 #define __HAL_RCC_LCD_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_LCDEN)) == 0U) 670 671 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 672 673 #if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ 674 || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 675 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 676 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 677 678 #define __HAL_RCC_TIM5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) != 0U) 679 #define __HAL_RCC_TIM5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_TIM5EN)) == 0U) 680 681 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 682 683 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 684 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 685 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 686 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 687 || defined(STM32L162xE) || defined(STM32L162xDX) 688 689 #define __HAL_RCC_SPI3_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) != 0U) 690 #define __HAL_RCC_SPI3_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_SPI3EN)) == 0U) 691 692 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 693 694 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ 695 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 696 697 #define __HAL_RCC_UART4_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) != 0U) 698 #define __HAL_RCC_UART5_IS_CLK_ENABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) != 0U) 699 #define __HAL_RCC_UART4_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART4EN)) == 0U) 700 #define __HAL_RCC_UART5_IS_CLK_DISABLED() ((RCC->APB1ENR & (RCC_APB1ENR_UART5EN)) == 0U) 701 702 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 703 704 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 705 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 706 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ 707 || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) 708 709 #define __HAL_RCC_OPAMP_IS_CLK_ENABLED() __HAL_RCC_COMP_IS_CLK_ENABLED() 710 #define __HAL_RCC_OPAMP_IS_CLK_DISABLED() __HAL_RCC_COMP_IS_CLK_DISABLED() 711 712 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ 713 714 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 715 716 #define __HAL_RCC_SDIO_IS_CLK_ENABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDIOEN)) != 0U) 717 #define __HAL_RCC_SDIO_IS_CLK_DISABLED() ((RCC->APB2ENR & (RCC_APB2ENR_SDIOEN)) == 0U) 718 719 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 720 721 /** 722 * @} 723 */ 724 725 /** @defgroup RCCEx_Peripheral_Clock_Sleep_Enable_Disable_Status Peripheral Clock Sleep Enable Disable Status 726 * @brief Get the enable or disable status of peripheral clock during Low Power (Sleep) mode. 727 * @note Peripheral clock gating in SLEEP mode can be used to further reduce 728 * power consumption. 729 * @note After wakeup from SLEEP mode, the peripheral clock is enabled again. 730 * @note By default, all peripheral clocks are enabled during SLEEP mode. 731 * @{ 732 */ 733 734 #if defined(STM32L151xB) || defined(STM32L152xB) || defined(STM32L151xBA)\ 735 || defined(STM32L152xBA) || defined(STM32L151xC) || defined(STM32L152xC)\ 736 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 737 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 738 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 739 || defined(STM32L162xE) || defined(STM32L162xDX) 740 741 #define __HAL_RCC_GPIOE_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOELPEN)) != 0U) 742 #define __HAL_RCC_GPIOE_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOELPEN)) == 0U) 743 744 #endif /* STM32L151xB || STM32L152xB || ... || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 745 746 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 747 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 748 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 749 750 #define __HAL_RCC_GPIOF_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOFLPEN)) != 0U) 751 #define __HAL_RCC_GPIOG_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOGLPEN)) != 0U) 752 #define __HAL_RCC_GPIOF_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOFLPEN)) == 0U) 753 #define __HAL_RCC_GPIOG_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_GPIOGLPEN)) == 0U) 754 755 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 756 757 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 758 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 759 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 760 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 761 || defined(STM32L162xE) || defined(STM32L162xDX) 762 763 #define __HAL_RCC_DMA2_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA2LPEN)) != 0U) 764 #define __HAL_RCC_DMA2_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_DMA2LPEN)) == 0U) 765 766 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 767 768 #if defined(STM32L162xC) || defined(STM32L162xCA) || defined(STM32L162xD)\ 769 || defined(STM32L162xE) || defined(STM32L162xDX) 770 771 #define __HAL_RCC_AES_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_AESLPEN)) != 0U) 772 #define __HAL_RCC_AES_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_AESLPEN)) == 0U) 773 774 #endif /* STM32L162xC || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */ 775 776 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 777 778 #define __HAL_RCC_FSMC_IS_CLK_SLEEP_ENABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FSMCLPEN)) != 0U) 779 #define __HAL_RCC_FSMC_IS_CLK_SLEEP_DISABLED() ((RCC->AHBLPENR & (RCC_AHBLPENR_FSMCLPEN)) == 0U) 780 781 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 782 783 #if defined(STM32L100xB) || defined(STM32L100xBA) || defined(STM32L100xC)\ 784 || defined(STM32L152xB) || defined(STM32L152xBA) || defined(STM32L152xC)\ 785 || defined(STM32L162xC) || defined(STM32L152xCA) || defined(STM32L152xD)\ 786 || defined(STM32L162xCA) || defined(STM32L162xD) || defined(STM32L152xE) || defined(STM32L152xDX)\ 787 || defined(STM32L162xE) || defined(STM32L162xDX) 788 789 #define __HAL_RCC_LCD_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_LCDLPEN)) != 0U) 790 #define __HAL_RCC_LCD_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_LCDLPEN)) == 0U) 791 792 #endif /* STM32L100xB || STM32L152xBA || ... || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 793 794 #if defined(STM32L151xC) || defined(STM32L152xC) || defined(STM32L162xC)\ 795 || defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 796 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 797 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 798 799 #define __HAL_RCC_TIM5_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM5LPEN)) != 0U) 800 #define __HAL_RCC_TIM5_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_TIM5LPEN)) == 0U) 801 802 #endif /* STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 803 804 #if defined(STM32L100xC) || defined(STM32L151xC) || defined(STM32L152xC)\ 805 || defined(STM32L162xC) || defined(STM32L151xCA) || defined(STM32L151xD)\ 806 || defined(STM32L152xCA) || defined(STM32L152xD) || defined(STM32L162xCA)\ 807 || defined(STM32L162xD) || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX)\ 808 || defined(STM32L162xE) || defined(STM32L162xDX) 809 810 #define __HAL_RCC_SPI3_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI3LPEN)) != 0U) 811 #define __HAL_RCC_SPI3_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_SPI3LPEN)) == 0U) 812 813 #endif /* STM32L100xC || STM32L151xC || STM32L152xC || STM32L162xC || STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 814 815 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD)\ 816 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX) 817 818 #define __HAL_RCC_UART4_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART4LPEN)) != 0U) 819 #define __HAL_RCC_UART5_IS_CLK_SLEEP_ENABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART5LPEN)) != 0U) 820 #define __HAL_RCC_UART4_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART4LPEN)) == 0U) 821 #define __HAL_RCC_UART5_IS_CLK_SLEEP_DISABLED() ((RCC->APB1LPENR & (RCC_APB1LPENR_UART5LPEN)) == 0U) 822 823 #endif /* STM32L151xD || STM32L152xD || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX */ 824 825 #if defined(STM32L151xCA) || defined(STM32L151xD) || defined(STM32L152xCA)\ 826 || defined(STM32L152xD) || defined(STM32L162xCA) || defined(STM32L162xD)\ 827 || defined(STM32L151xE) || defined(STM32L151xDX) || defined(STM32L152xE) || defined(STM32L152xDX) || defined(STM32L162xE) || defined(STM32L162xDX)\ 828 || defined(STM32L162xC) || defined(STM32L152xC) || defined(STM32L151xC) 829 830 #define __HAL_RCC_OPAMP_IS_CLK_SLEEP_ENABLED() __HAL_RCC_COMP_IS_CLK_SLEEP_ENABLED() 831 #define __HAL_RCC_OPAMP_IS_CLK_SLEEP_DISABLED() __HAL_RCC_COMP_IS_CLK_SLEEP_DISABLED() 832 833 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xC || STM32L152xC || STM32L151xC */ 834 835 #if defined(STM32L151xD) || defined(STM32L152xD) || defined(STM32L162xD) 836 837 #define __HAL_RCC_SDIO_IS_CLK_SLEEP_ENABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SDIOLPEN)) != 0U) 838 #define __HAL_RCC_SDIO_IS_CLK_SLEEP_DISABLED() ((RCC->APB2LPENR & (RCC_APB2LPENR_SDIOLPEN)) == 0U) 839 840 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */ 841 842 /** 843 * @} 844 */ 845 846 847 #if defined(RCC_LSECSS_SUPPORT) 848 849 /** 850 * @brief Enable interrupt on RCC LSE CSS EXTI Line 19. 851 * @retval None 852 */ 853 #define __HAL_RCC_LSECSS_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR, RCC_EXTI_LINE_LSECSS) 854 855 /** 856 * @brief Disable interrupt on RCC LSE CSS EXTI Line 19. 857 * @retval None 858 */ 859 #define __HAL_RCC_LSECSS_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR, RCC_EXTI_LINE_LSECSS) 860 861 /** 862 * @brief Enable event on RCC LSE CSS EXTI Line 19. 863 * @retval None. 864 */ 865 #define __HAL_RCC_LSECSS_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR, RCC_EXTI_LINE_LSECSS) 866 867 /** 868 * @brief Disable event on RCC LSE CSS EXTI Line 19. 869 * @retval None. 870 */ 871 #define __HAL_RCC_LSECSS_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR, RCC_EXTI_LINE_LSECSS) 872 873 874 /** 875 * @brief RCC LSE CSS EXTI line configuration: set falling edge trigger. 876 * @retval None. 877 */ 878 #define __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR, RCC_EXTI_LINE_LSECSS) 879 880 881 /** 882 * @brief Disable the RCC LSE CSS Extended Interrupt Falling Trigger. 883 * @retval None. 884 */ 885 #define __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR, RCC_EXTI_LINE_LSECSS) 886 887 888 /** 889 * @brief RCC LSE CSS EXTI line configuration: set rising edge trigger. 890 * @retval None. 891 */ 892 #define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR, RCC_EXTI_LINE_LSECSS) 893 894 /** 895 * @brief Disable the RCC LSE CSS Extended Interrupt Rising Trigger. 896 * @retval None. 897 */ 898 #define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR, RCC_EXTI_LINE_LSECSS) 899 900 /** 901 * @brief RCC LSE CSS EXTI line configuration: set rising & falling edge trigger. 902 * @retval None. 903 */ 904 #define __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_FALLING_EDGE() \ 905 do { \ 906 __HAL_RCC_LSECSS_EXTI_ENABLE_RISING_EDGE(); \ 907 __HAL_RCC_LSECSS_EXTI_ENABLE_FALLING_EDGE(); \ 908 } while(0U) 909 910 /** 911 * @brief Disable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger. 912 * @retval None. 913 */ 914 #define __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_FALLING_EDGE() \ 915 do { \ 916 __HAL_RCC_LSECSS_EXTI_DISABLE_RISING_EDGE(); \ 917 __HAL_RCC_LSECSS_EXTI_DISABLE_FALLING_EDGE(); \ 918 } while(0U) 919 920 /** 921 * @brief Check whether the specified RCC LSE CSS EXTI interrupt flag is set or not. 922 * @retval EXTI RCC LSE CSS Line Status. 923 */ 924 #define __HAL_RCC_LSECSS_EXTI_GET_FLAG() (EXTI->PR & (RCC_EXTI_LINE_LSECSS)) 925 926 /** 927 * @brief Clear the RCC LSE CSS EXTI flag. 928 * @retval None. 929 */ 930 #define __HAL_RCC_LSECSS_EXTI_CLEAR_FLAG() (EXTI->PR = (RCC_EXTI_LINE_LSECSS)) 931 932 /** 933 * @brief Generate a Software interrupt on selected EXTI line. 934 * @retval None. 935 */ 936 #define __HAL_RCC_LSECSS_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER, RCC_EXTI_LINE_LSECSS) 937 938 #endif /* RCC_LSECSS_SUPPORT */ 939 940 #if defined(LCD) 941 942 /** @defgroup RCCEx_LCD_Configuration LCD Configuration 943 * @brief Macros to configure clock source of LCD peripherals. 944 * @{ 945 */ 946 947 /** @brief Macro to configures LCD clock (LCDCLK). 948 * @note LCD and RTC use the same configuration 949 * @note LCD can however be used in the Stop low power mode if the LSE or LSI is used as the 950 * LCD clock source. 951 * 952 * @param __LCD_CLKSOURCE__ specifies the LCD clock source. 953 * This parameter can be one of the following values: 954 * @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as LCD clock 955 * @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as LCD clock 956 * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV2 HSE divided by 2 selected as LCD clock 957 * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV4 HSE divided by 4 selected as LCD clock 958 * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV8 HSE divided by 8 selected as LCD clock 959 * @arg @ref RCC_RTCCLKSOURCE_HSE_DIV16 HSE divided by 16 selected as LCD clock 960 */ 961 #define __HAL_RCC_LCD_CONFIG(__LCD_CLKSOURCE__) __HAL_RCC_RTC_CONFIG(__LCD_CLKSOURCE__) 962 963 /** @brief Macro to get the LCD clock source. 964 */ 965 #define __HAL_RCC_GET_LCD_SOURCE() __HAL_RCC_GET_RTC_SOURCE() 966 967 /** @brief Macro to get the LCD clock pre-scaler. 968 */ 969 #define __HAL_RCC_GET_LCD_HSE_PRESCALER() __HAL_RCC_GET_RTC_HSE_PRESCALER() 970 971 /** 972 * @} 973 */ 974 975 #endif /* LCD */ 976 977 978 /** 979 * @} 980 */ 981 982 /* Exported functions --------------------------------------------------------*/ 983 /** @addtogroup RCCEx_Exported_Functions 984 * @{ 985 */ 986 987 /** @addtogroup RCCEx_Exported_Functions_Group1 988 * @{ 989 */ 990 991 HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit); 992 void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit); 993 uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk); 994 995 #if defined(RCC_LSECSS_SUPPORT) 996 997 void HAL_RCCEx_EnableLSECSS(void); 998 void HAL_RCCEx_DisableLSECSS(void); 999 void HAL_RCCEx_EnableLSECSS_IT(void); 1000 void HAL_RCCEx_LSECSS_IRQHandler(void); 1001 void HAL_RCCEx_LSECSS_Callback(void); 1002 1003 #endif /* RCC_LSECSS_SUPPORT */ 1004 1005 /** 1006 * @} 1007 */ 1008 1009 /** 1010 * @} 1011 */ 1012 1013 /** 1014 * @} 1015 */ 1016 1017 /** 1018 * @} 1019 */ 1020 1021 #ifdef __cplusplus 1022 } 1023 #endif 1024 1025 #endif /* __STM32L1xx_HAL_RCC_EX_H */ 1026 1027 1028