STM32L443xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32l4xx_ll_bus.h 00004 * @author MCD Application Team 00005 * @brief Header file of BUS LL module. 00006 00007 @verbatim 00008 ##### RCC Limitations ##### 00009 ============================================================================== 00010 [..] 00011 A delay between an RCC peripheral clock enable and the effective peripheral 00012 enabling should be taken into account in order to manage the peripheral read/write 00013 from/to registers. 00014 (+) This delay depends on the peripheral mapping. 00015 (++) AHB & APB peripherals, 1 dummy read is necessary 00016 00017 [..] 00018 Workarounds: 00019 (#) For AHB & APB peripherals, a dummy read to the peripheral register has been 00020 inserted in each LL_{BUS}_GRP{x}_EnableClock() function. 00021 00022 @endverbatim 00023 ****************************************************************************** 00024 * @attention 00025 * 00026 * Copyright (c) 2017 STMicroelectronics. 00027 * All rights reserved. 00028 * 00029 * This software is licensed under terms that can be found in the LICENSE file in 00030 * the root directory of this software component. 00031 * If no LICENSE file comes with this software, it is provided AS-IS. 00032 ****************************************************************************** 00033 */ 00034 00035 /* Define to prevent recursive inclusion -------------------------------------*/ 00036 #ifndef STM32L4xx_LL_BUS_H 00037 #define STM32L4xx_LL_BUS_H 00038 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif 00042 00043 /* Includes ------------------------------------------------------------------*/ 00044 #include "stm32l4xx.h" 00045 00046 /** @addtogroup STM32L4xx_LL_Driver 00047 * @{ 00048 */ 00049 00050 #if defined(RCC) 00051 00052 /** @defgroup BUS_LL BUS 00053 * @{ 00054 */ 00055 00056 /* Private types -------------------------------------------------------------*/ 00057 /* Private variables ---------------------------------------------------------*/ 00058 00059 /* Private constants ---------------------------------------------------------*/ 00060 00061 /* Private macros ------------------------------------------------------------*/ 00062 00063 /* Exported types ------------------------------------------------------------*/ 00064 /* Exported constants --------------------------------------------------------*/ 00065 /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants 00066 * @{ 00067 */ 00068 00069 /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH 00070 * @{ 00071 */ 00072 #define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU 00073 #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN 00074 #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN 00075 #if defined(DMAMUX1) 00076 #define LL_AHB1_GRP1_PERIPH_DMAMUX1 RCC_AHB1ENR_DMAMUX1EN 00077 #endif /* DMAMUX1 */ 00078 #define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHB1ENR_FLASHEN 00079 #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN 00080 #define LL_AHB1_GRP1_PERIPH_TSC RCC_AHB1ENR_TSCEN 00081 #if defined(DMA2D) 00082 #define LL_AHB1_GRP1_PERIPH_DMA2D RCC_AHB1ENR_DMA2DEN 00083 #endif /* DMA2D */ 00084 #if defined(GFXMMU) 00085 #define LL_AHB1_GRP1_PERIPH_GFXMMU RCC_AHB1ENR_GFXMMUEN 00086 #endif /* GFXMMU */ 00087 #define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1SMENR_SRAM1SMEN 00088 /** 00089 * @} 00090 */ 00091 00092 /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH 00093 * @{ 00094 */ 00095 #define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU 00096 #define LL_AHB2_GRP1_PERIPH_GPIOA RCC_AHB2ENR_GPIOAEN 00097 #define LL_AHB2_GRP1_PERIPH_GPIOB RCC_AHB2ENR_GPIOBEN 00098 #define LL_AHB2_GRP1_PERIPH_GPIOC RCC_AHB2ENR_GPIOCEN 00099 #if defined(GPIOD) 00100 #define LL_AHB2_GRP1_PERIPH_GPIOD RCC_AHB2ENR_GPIODEN 00101 #endif /*GPIOD*/ 00102 #if defined(GPIOE) 00103 #define LL_AHB2_GRP1_PERIPH_GPIOE RCC_AHB2ENR_GPIOEEN 00104 #endif /*GPIOE*/ 00105 #if defined(GPIOF) 00106 #define LL_AHB2_GRP1_PERIPH_GPIOF RCC_AHB2ENR_GPIOFEN 00107 #endif /* GPIOF */ 00108 #if defined(GPIOG) 00109 #define LL_AHB2_GRP1_PERIPH_GPIOG RCC_AHB2ENR_GPIOGEN 00110 #endif /* GPIOG */ 00111 #define LL_AHB2_GRP1_PERIPH_GPIOH RCC_AHB2ENR_GPIOHEN 00112 #if defined(GPIOI) 00113 #define LL_AHB2_GRP1_PERIPH_GPIOI RCC_AHB2ENR_GPIOIEN 00114 #endif /* GPIOI */ 00115 #if defined(USB_OTG_FS) 00116 #define LL_AHB2_GRP1_PERIPH_OTGFS RCC_AHB2ENR_OTGFSEN 00117 #endif /* USB_OTG_FS */ 00118 #define LL_AHB2_GRP1_PERIPH_ADC RCC_AHB2ENR_ADCEN 00119 #if defined(DCMI) 00120 #define LL_AHB2_GRP1_PERIPH_DCMI RCC_AHB2ENR_DCMIEN 00121 #endif /* DCMI */ 00122 #if defined(AES) 00123 #define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN 00124 #endif /* AES */ 00125 #if defined(HASH) 00126 #define LL_AHB2_GRP1_PERIPH_HASH RCC_AHB2ENR_HASHEN 00127 #endif /* HASH */ 00128 #define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN 00129 #if defined(OCTOSPIM) 00130 #define LL_AHB2_GRP1_PERIPH_OSPIM RCC_AHB2ENR_OSPIMEN 00131 #endif /* OCTOSPIM */ 00132 #if defined(PKA) 00133 #define LL_AHB2_GRP1_PERIPH_PKA RCC_AHB2ENR_PKAEN 00134 #endif /* PKA */ 00135 #if defined(SDMMC1) && defined(RCC_AHB2ENR_SDMMC1EN) 00136 #define LL_AHB2_GRP1_PERIPH_SDMMC1 RCC_AHB2ENR_SDMMC1EN 00137 #endif /* SDMMC1 && RCC_AHB2ENR_SDMMC1EN */ 00138 #define LL_AHB2_GRP1_PERIPH_SRAM2 RCC_AHB2SMENR_SRAM2SMEN 00139 #if defined(SRAM3_BASE) 00140 #define LL_AHB2_GRP1_PERIPH_SRAM3 RCC_AHB2SMENR_SRAM3SMEN 00141 #endif /* SRAM3_BASE */ 00142 /** 00143 * @} 00144 */ 00145 00146 /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH 00147 * @{ 00148 */ 00149 #define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU 00150 #if defined(FMC_Bank1_R) 00151 #define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN 00152 #endif /* FMC_Bank1_R */ 00153 #if defined(QUADSPI) 00154 #define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN 00155 #endif /* QUADSPI */ 00156 #if defined(OCTOSPI1) 00157 #define LL_AHB3_GRP1_PERIPH_OSPI1 RCC_AHB3ENR_OSPI1EN 00158 #endif /* OCTOSPI1 */ 00159 #if defined(OCTOSPI2) 00160 #define LL_AHB3_GRP1_PERIPH_OSPI2 RCC_AHB3ENR_OSPI2EN 00161 #endif /* OCTOSPI2 */ 00162 /** 00163 * @} 00164 */ 00165 00166 /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH 00167 * @{ 00168 */ 00169 #define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU 00170 #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR1_TIM2EN 00171 #if defined(TIM3) 00172 #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR1_TIM3EN 00173 #endif /* TIM3 */ 00174 #if defined(TIM4) 00175 #define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR1_TIM4EN 00176 #endif /* TIM4 */ 00177 #if defined(TIM5) 00178 #define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR1_TIM5EN 00179 #endif /* TIM5 */ 00180 #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR1_TIM6EN 00181 #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR1_TIM7EN 00182 #if defined(LCD) 00183 #define LL_APB1_GRP1_PERIPH_LCD RCC_APB1ENR1_LCDEN 00184 #endif /* LCD */ 00185 #if defined(RCC_APB1ENR1_RTCAPBEN) 00186 #define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR1_RTCAPBEN 00187 #endif /* RCC_APB1ENR1_RTCAPBEN */ 00188 #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR1_WWDGEN 00189 #if defined(SPI2) 00190 #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR1_SPI2EN 00191 #endif /* SPI2 */ 00192 #define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR1_SPI3EN 00193 #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR1_USART2EN 00194 #if defined(USART3) 00195 #define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR1_USART3EN 00196 #endif /* USART3 */ 00197 #if defined(UART4) 00198 #define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR1_UART4EN 00199 #endif /* UART4 */ 00200 #if defined(UART5) 00201 #define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR1_UART5EN 00202 #endif /* UART5 */ 00203 #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR1_I2C1EN 00204 #if defined(I2C2) 00205 #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR1_I2C2EN 00206 #endif /* I2C2 */ 00207 #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR1_I2C3EN 00208 #if defined(CRS) 00209 #define LL_APB1_GRP1_PERIPH_CRS RCC_APB1ENR1_CRSEN 00210 #endif /* CRS */ 00211 #define LL_APB1_GRP1_PERIPH_CAN1 RCC_APB1ENR1_CAN1EN 00212 #if defined(CAN2) 00213 #define LL_APB1_GRP1_PERIPH_CAN2 RCC_APB1ENR1_CAN2EN 00214 #endif /* CAN2 */ 00215 #if defined(USB) 00216 #define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR1_USBFSEN 00217 #endif /* USB */ 00218 #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR1_PWREN 00219 #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR1_DAC1EN 00220 #define LL_APB1_GRP1_PERIPH_OPAMP RCC_APB1ENR1_OPAMPEN 00221 #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR1_LPTIM1EN 00222 /** 00223 * @} 00224 */ 00225 00226 00227 /** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH APB1 GRP2 PERIPH 00228 * @{ 00229 */ 00230 #define LL_APB1_GRP2_PERIPH_ALL 0xFFFFFFFFU 00231 #define LL_APB1_GRP2_PERIPH_LPUART1 RCC_APB1ENR2_LPUART1EN 00232 #if defined(I2C4) 00233 #define LL_APB1_GRP2_PERIPH_I2C4 RCC_APB1ENR2_I2C4EN 00234 #endif /* I2C4 */ 00235 #if defined(SWPMI1) 00236 #define LL_APB1_GRP2_PERIPH_SWPMI1 RCC_APB1ENR2_SWPMI1EN 00237 #endif /* SWPMI1 */ 00238 #define LL_APB1_GRP2_PERIPH_LPTIM2 RCC_APB1ENR2_LPTIM2EN 00239 /** 00240 * @} 00241 */ 00242 00243 /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH 00244 * @{ 00245 */ 00246 #define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU 00247 #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN 00248 #define LL_APB2_GRP1_PERIPH_FW RCC_APB2ENR_FWEN 00249 #if defined(SDMMC1) && defined(RCC_APB2ENR_SDMMC1EN) 00250 #define LL_APB2_GRP1_PERIPH_SDMMC1 RCC_APB2ENR_SDMMC1EN 00251 #endif /* SDMMC1 && RCC_APB2ENR_SDMMC1EN */ 00252 #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN 00253 #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN 00254 #if defined(TIM8) 00255 #define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN 00256 #endif /* TIM8 */ 00257 #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN 00258 #define LL_APB2_GRP1_PERIPH_TIM15 RCC_APB2ENR_TIM15EN 00259 #define LL_APB2_GRP1_PERIPH_TIM16 RCC_APB2ENR_TIM16EN 00260 #if defined(TIM17) 00261 #define LL_APB2_GRP1_PERIPH_TIM17 RCC_APB2ENR_TIM17EN 00262 #endif /* TIM17 */ 00263 #define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN 00264 #if defined(SAI2) 00265 #define LL_APB2_GRP1_PERIPH_SAI2 RCC_APB2ENR_SAI2EN 00266 #endif /* SAI2 */ 00267 #if defined(DFSDM1_Channel0) 00268 #define LL_APB2_GRP1_PERIPH_DFSDM1 RCC_APB2ENR_DFSDM1EN 00269 #endif /* DFSDM1_Channel0 */ 00270 #if defined(LTDC) 00271 #define LL_APB2_GRP1_PERIPH_LTDC RCC_APB2ENR_LTDCEN 00272 #endif /* LTDC */ 00273 #if defined(DSI) 00274 #define LL_APB2_GRP1_PERIPH_DSI RCC_APB2ENR_DSIEN 00275 #endif /* DSI */ 00276 /** 00277 * @} 00278 */ 00279 00280 /** Legacy definitions for compatibility purpose 00281 @cond 0 00282 */ 00283 #if defined(DFSDM1_Channel0) 00284 #define LL_APB2_GRP1_PERIPH_DFSDM LL_APB2_GRP1_PERIPH_DFSDM1 00285 #endif /* DFSDM1_Channel0 */ 00286 /** 00287 @endcond 00288 */ 00289 00290 /** 00291 * @} 00292 */ 00293 00294 /* Exported macro ------------------------------------------------------------*/ 00295 /* Exported functions --------------------------------------------------------*/ 00296 /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions 00297 * @{ 00298 */ 00299 00300 /** @defgroup BUS_LL_EF_AHB1 AHB1 00301 * @{ 00302 */ 00303 00304 /** 00305 * @brief Enable AHB1 peripherals clock. 00306 * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n 00307 * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n 00308 * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_EnableClock\n 00309 * AHB1ENR FLASHEN LL_AHB1_GRP1_EnableClock\n 00310 * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock\n 00311 * AHB1ENR TSCEN LL_AHB1_GRP1_EnableClock\n 00312 * AHB1ENR DMA2DEN LL_AHB1_GRP1_EnableClock\n 00313 * AHB1ENR GFXMMUEN LL_AHB1_GRP1_EnableClock 00314 * @param Periphs This parameter can be a combination of the following values: 00315 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00316 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00317 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00318 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00319 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00320 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00321 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00322 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00323 * 00324 * (*) value not defined in all devices. 00325 * @retval None 00326 */ 00327 __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs) 00328 { 00329 __IO uint32_t tmpreg; 00330 SET_BIT(RCC->AHB1ENR, Periphs); 00331 /* Delay after an RCC peripheral clock enabling */ 00332 tmpreg = READ_BIT(RCC->AHB1ENR, Periphs); 00333 (void)tmpreg; 00334 } 00335 00336 /** 00337 * @brief Check if AHB1 peripheral clock is enabled or not 00338 * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n 00339 * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n 00340 * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_IsEnabledClock\n 00341 * AHB1ENR FLASHEN LL_AHB1_GRP1_IsEnabledClock\n 00342 * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n 00343 * AHB1ENR TSCEN LL_AHB1_GRP1_IsEnabledClock\n 00344 * AHB1ENR DMA2DEN LL_AHB1_GRP1_IsEnabledClock\n 00345 * AHB1ENR GFXMMUEN LL_AHB1_GRP1_IsEnabledClock 00346 * @param Periphs This parameter can be a combination of the following values: 00347 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00348 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00349 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00350 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00351 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00352 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00353 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00354 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00355 * 00356 * (*) value not defined in all devices. 00357 * @retval State of Periphs (1 or 0). 00358 */ 00359 __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs) 00360 { 00361 return ((READ_BIT(RCC->AHB1ENR, Periphs) == Periphs) ? 1UL : 0UL); 00362 } 00363 00364 /** 00365 * @brief Disable AHB1 peripherals clock. 00366 * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n 00367 * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n 00368 * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_DisableClock\n 00369 * AHB1ENR FLASHEN LL_AHB1_GRP1_DisableClock\n 00370 * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock\n 00371 * AHB1ENR TSCEN LL_AHB1_GRP1_DisableClock\n 00372 * AHB1ENR DMA2DEN LL_AHB1_GRP1_DisableClock\n 00373 * AHB1ENR GFXMMUEN LL_AHB1_GRP1_DisableClock 00374 * @param Periphs This parameter can be a combination of the following values: 00375 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00376 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00377 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00378 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00379 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00380 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00381 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00382 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00383 * 00384 * (*) value not defined in all devices. 00385 * @retval None 00386 */ 00387 __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs) 00388 { 00389 CLEAR_BIT(RCC->AHB1ENR, Periphs); 00390 } 00391 00392 /** 00393 * @brief Force AHB1 peripherals reset. 00394 * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n 00395 * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n 00396 * AHB1RSTR DMAMUX1RST LL_AHB1_GRP1_ForceReset\n 00397 * AHB1RSTR FLASHRST LL_AHB1_GRP1_ForceReset\n 00398 * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset\n 00399 * AHB1RSTR TSCRST LL_AHB1_GRP1_ForceReset\n 00400 * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ForceReset\n 00401 * AHB1RSTR GFXMMURST LL_AHB1_GRP1_ForceReset 00402 * @param Periphs This parameter can be a combination of the following values: 00403 * @arg @ref LL_AHB1_GRP1_PERIPH_ALL 00404 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00405 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00406 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00407 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00408 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00409 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00410 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00411 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00412 * 00413 * (*) value not defined in all devices. 00414 * @retval None 00415 */ 00416 __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs) 00417 { 00418 SET_BIT(RCC->AHB1RSTR, Periphs); 00419 } 00420 00421 /** 00422 * @brief Release AHB1 peripherals reset. 00423 * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n 00424 * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n 00425 * AHB1RSTR DMAMUX1RST LL_AHB1_GRP1_ReleaseReset\n 00426 * AHB1RSTR FLASHRST LL_AHB1_GRP1_ReleaseReset\n 00427 * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n 00428 * AHB1RSTR TSCRST LL_AHB1_GRP1_ReleaseReset\n 00429 * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ReleaseReset\n 00430 * AHB1RSTR GFXMMURST LL_AHB1_GRP1_ReleaseReset 00431 * @param Periphs This parameter can be a combination of the following values: 00432 * @arg @ref LL_AHB1_GRP1_PERIPH_ALL 00433 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00434 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00435 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00436 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00437 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00438 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00439 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00440 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00441 * 00442 * (*) value not defined in all devices. 00443 * @retval None 00444 */ 00445 __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs) 00446 { 00447 CLEAR_BIT(RCC->AHB1RSTR, Periphs); 00448 } 00449 00450 /** 00451 * @brief Enable AHB1 peripheral clocks in Sleep and Stop modes 00452 * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00453 * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00454 * AHB1SMENR DMAMUX1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00455 * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00456 * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00457 * AHB1SMENR CRCSMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00458 * AHB1SMENR TSCSMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00459 * AHB1SMENR DMA2DSMEN LL_AHB1_GRP1_EnableClockStopSleep\n 00460 * AHB1SMENR GFXMMUSMEN LL_AHB1_GRP1_EnableClockStopSleep 00461 * @param Periphs This parameter can be a combination of the following values: 00462 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00463 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00464 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00465 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00466 * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1 00467 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00468 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00469 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00470 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00471 * 00472 * (*) value not defined in all devices. 00473 * @retval None 00474 */ 00475 __STATIC_INLINE void LL_AHB1_GRP1_EnableClockStopSleep(uint32_t Periphs) 00476 { 00477 __IO uint32_t tmpreg; 00478 SET_BIT(RCC->AHB1SMENR, Periphs); 00479 /* Delay after an RCC peripheral clock enabling */ 00480 tmpreg = READ_BIT(RCC->AHB1SMENR, Periphs); 00481 (void)tmpreg; 00482 } 00483 00484 /** 00485 * @brief Disable AHB1 peripheral clocks in Sleep and Stop modes 00486 * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00487 * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00488 * AHB1SMENR DMAMUX1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00489 * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00490 * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00491 * AHB1SMENR CRCSMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00492 * AHB1SMENR TSCSMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00493 * AHB1SMENR DMA2DSMEN LL_AHB1_GRP1_DisableClockStopSleep\n 00494 * AHB1SMENR GFXMMUSMEN LL_AHB1_GRP1_DisableClockStopSleep 00495 * @param Periphs This parameter can be a combination of the following values: 00496 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1 00497 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 00498 * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1 (*) 00499 * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH 00500 * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1 00501 * @arg @ref LL_AHB1_GRP1_PERIPH_CRC 00502 * @arg @ref LL_AHB1_GRP1_PERIPH_TSC 00503 * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*) 00504 * @arg @ref LL_AHB1_GRP1_PERIPH_GFXMMU (*) 00505 * 00506 * (*) value not defined in all devices. 00507 * @retval None 00508 */ 00509 __STATIC_INLINE void LL_AHB1_GRP1_DisableClockStopSleep(uint32_t Periphs) 00510 { 00511 CLEAR_BIT(RCC->AHB1SMENR, Periphs); 00512 } 00513 00514 /** 00515 * @} 00516 */ 00517 00518 /** @defgroup BUS_LL_EF_AHB2 AHB2 00519 * @{ 00520 */ 00521 00522 /** 00523 * @brief Enable AHB2 peripherals clock. 00524 * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_EnableClock\n 00525 * AHB2ENR GPIOBEN LL_AHB2_GRP1_EnableClock\n 00526 * AHB2ENR GPIOCEN LL_AHB2_GRP1_EnableClock\n 00527 * AHB2ENR GPIODEN LL_AHB2_GRP1_EnableClock\n 00528 * AHB2ENR GPIOEEN LL_AHB2_GRP1_EnableClock\n 00529 * AHB2ENR GPIOFEN LL_AHB2_GRP1_EnableClock\n 00530 * AHB2ENR GPIOGEN LL_AHB2_GRP1_EnableClock\n 00531 * AHB2ENR GPIOHEN LL_AHB2_GRP1_EnableClock\n 00532 * AHB2ENR GPIOIEN LL_AHB2_GRP1_EnableClock\n 00533 * AHB2ENR OTGFSEN LL_AHB2_GRP1_EnableClock\n 00534 * AHB2ENR ADCEN LL_AHB2_GRP1_EnableClock\n 00535 * AHB2ENR DCMIEN LL_AHB2_GRP1_EnableClock\n 00536 * AHB2ENR AESEN LL_AHB2_GRP1_EnableClock\n 00537 * AHB2ENR HASHEN LL_AHB2_GRP1_EnableClock\n 00538 * AHB2ENR RNGEN LL_AHB2_GRP1_EnableClock\n 00539 * AHB2ENR OSPIMEN LL_AHB2_GRP1_EnableClock\n 00540 * AHB2ENR SDMMC1EN LL_AHB2_GRP1_EnableClock 00541 * @param Periphs This parameter can be a combination of the following values: 00542 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00543 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00544 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00545 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00546 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00547 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00548 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00549 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00550 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00551 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00552 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00553 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00554 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00555 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00556 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00557 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00558 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00559 * 00560 * (*) value not defined in all devices. 00561 * @retval None 00562 */ 00563 __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs) 00564 { 00565 __IO uint32_t tmpreg; 00566 SET_BIT(RCC->AHB2ENR, Periphs); 00567 /* Delay after an RCC peripheral clock enabling */ 00568 tmpreg = READ_BIT(RCC->AHB2ENR, Periphs); 00569 (void)tmpreg; 00570 } 00571 00572 /** 00573 * @brief Check if AHB2 peripheral clock is enabled or not 00574 * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_IsEnabledClock\n 00575 * AHB2ENR GPIOBEN LL_AHB2_GRP1_IsEnabledClock\n 00576 * AHB2ENR GPIOCEN LL_AHB2_GRP1_IsEnabledClock\n 00577 * AHB2ENR GPIODEN LL_AHB2_GRP1_IsEnabledClock\n 00578 * AHB2ENR GPIOEEN LL_AHB2_GRP1_IsEnabledClock\n 00579 * AHB2ENR GPIOFEN LL_AHB2_GRP1_IsEnabledClock\n 00580 * AHB2ENR GPIOGEN LL_AHB2_GRP1_IsEnabledClock\n 00581 * AHB2ENR GPIOHEN LL_AHB2_GRP1_IsEnabledClock\n 00582 * AHB2ENR GPIOIEN LL_AHB2_GRP1_IsEnabledClock\n 00583 * AHB2ENR OTGFSEN LL_AHB2_GRP1_IsEnabledClock\n 00584 * AHB2ENR ADCEN LL_AHB2_GRP1_IsEnabledClock\n 00585 * AHB2ENR DCMIEN LL_AHB2_GRP1_IsEnabledClock\n 00586 * AHB2ENR AESEN LL_AHB2_GRP1_IsEnabledClock\n 00587 * AHB2ENR HASHEN LL_AHB2_GRP1_IsEnabledClock\n 00588 * AHB2ENR RNGEN LL_AHB2_GRP1_IsEnabledClock\n 00589 * AHB2ENR OSPIMEN LL_AHB2_GRP1_IsEnabledClock\n 00590 * AHB2ENR SDMMC1EN LL_AHB2_GRP1_IsEnabledClock 00591 * @param Periphs This parameter can be a combination of the following values: 00592 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00593 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00594 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00595 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00596 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00597 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00598 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00599 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00600 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00601 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00602 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00603 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00604 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00605 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00606 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00607 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00608 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00609 * 00610 * (*) value not defined in all devices. 00611 * @retval State of Periphs (1 or 0). 00612 */ 00613 __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs) 00614 { 00615 return ((READ_BIT(RCC->AHB2ENR, Periphs) == Periphs) ? 1UL : 0UL); 00616 } 00617 00618 /** 00619 * @brief Disable AHB2 peripherals clock. 00620 * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_DisableClock\n 00621 * AHB2ENR GPIOBEN LL_AHB2_GRP1_DisableClock\n 00622 * AHB2ENR GPIOCEN LL_AHB2_GRP1_DisableClock\n 00623 * AHB2ENR GPIODEN LL_AHB2_GRP1_DisableClock\n 00624 * AHB2ENR GPIOEEN LL_AHB2_GRP1_DisableClock\n 00625 * AHB2ENR GPIOFEN LL_AHB2_GRP1_DisableClock\n 00626 * AHB2ENR GPIOGEN LL_AHB2_GRP1_DisableClock\n 00627 * AHB2ENR GPIOHEN LL_AHB2_GRP1_DisableClock\n 00628 * AHB2ENR GPIOIEN LL_AHB2_GRP1_DisableClock\n 00629 * AHB2ENR OTGFSEN LL_AHB2_GRP1_DisableClock\n 00630 * AHB2ENR ADCEN LL_AHB2_GRP1_DisableClock\n 00631 * AHB2ENR DCMIEN LL_AHB2_GRP1_DisableClock\n 00632 * AHB2ENR AESEN LL_AHB2_GRP1_DisableClock\n 00633 * AHB2ENR HASHEN LL_AHB2_GRP1_DisableClock\n 00634 * AHB2ENR RNGEN LL_AHB2_GRP1_DisableClock\n 00635 * AHB2ENR OSPIMEN LL_AHB2_GRP1_DisableClock\n 00636 * AHB2ENR SDMMC1EN LL_AHB2_GRP1_DisableClock 00637 * @param Periphs This parameter can be a combination of the following values: 00638 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00639 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00640 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00641 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00642 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00643 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00644 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00645 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00646 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00647 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00648 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00649 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00650 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00651 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00652 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00653 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00654 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00655 * 00656 * (*) value not defined in all devices. 00657 * @retval None 00658 */ 00659 __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs) 00660 { 00661 CLEAR_BIT(RCC->AHB2ENR, Periphs); 00662 } 00663 00664 /** 00665 * @brief Force AHB2 peripherals reset. 00666 * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ForceReset\n 00667 * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ForceReset\n 00668 * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ForceReset\n 00669 * AHB2RSTR GPIODRST LL_AHB2_GRP1_ForceReset\n 00670 * AHB2RSTR GPIOERST LL_AHB2_GRP1_ForceReset\n 00671 * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ForceReset\n 00672 * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ForceReset\n 00673 * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ForceReset\n 00674 * AHB2RSTR GPIOIRST LL_AHB2_GRP1_ForceReset\n 00675 * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ForceReset\n 00676 * AHB2RSTR ADCRST LL_AHB2_GRP1_ForceReset\n 00677 * AHB2RSTR DCMIRST LL_AHB2_GRP1_ForceReset\n 00678 * AHB2RSTR AESRST LL_AHB2_GRP1_ForceReset\n 00679 * AHB2RSTR HASHRST LL_AHB2_GRP1_ForceReset\n 00680 * AHB2RSTR RNGRST LL_AHB2_GRP1_ForceReset\n 00681 * AHB2RSTR OSPIMRST LL_AHB2_GRP1_ForceReset\n 00682 * AHB2RSTR SDMMC1RST LL_AHB2_GRP1_ForceReset 00683 * @param Periphs This parameter can be a combination of the following values: 00684 * @arg @ref LL_AHB2_GRP1_PERIPH_ALL 00685 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00686 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00687 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00688 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00689 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00690 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00691 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00692 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00693 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00694 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00695 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00696 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00697 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00698 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00699 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00700 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00701 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00702 * 00703 * (*) value not defined in all devices. 00704 * @retval None 00705 */ 00706 __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs) 00707 { 00708 SET_BIT(RCC->AHB2RSTR, Periphs); 00709 } 00710 00711 /** 00712 * @brief Release AHB2 peripherals reset. 00713 * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ReleaseReset\n 00714 * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ReleaseReset\n 00715 * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ReleaseReset\n 00716 * AHB2RSTR GPIODRST LL_AHB2_GRP1_ReleaseReset\n 00717 * AHB2RSTR GPIOERST LL_AHB2_GRP1_ReleaseReset\n 00718 * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ReleaseReset\n 00719 * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ReleaseReset\n 00720 * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ReleaseReset\n 00721 * AHB2RSTR GPIOIRST LL_AHB2_GRP1_ReleaseReset\n 00722 * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ReleaseReset\n 00723 * AHB2RSTR ADCRST LL_AHB2_GRP1_ReleaseReset\n 00724 * AHB2RSTR DCMIRST LL_AHB2_GRP1_ReleaseReset\n 00725 * AHB2RSTR AESRST LL_AHB2_GRP1_ReleaseReset\n 00726 * AHB2RSTR HASHRST LL_AHB2_GRP1_ReleaseReset\n 00727 * AHB2RSTR RNGRST LL_AHB2_GRP1_ReleaseReset\n 00728 * AHB2RSTR OSPIMRST LL_AHB2_GRP1_ReleaseReset\n 00729 * AHB2RSTR SDMMC1RST LL_AHB2_GRP1_ReleaseReset 00730 * @param Periphs This parameter can be a combination of the following values: 00731 * @arg @ref LL_AHB2_GRP1_PERIPH_ALL 00732 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00733 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00734 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00735 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00736 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00737 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00738 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00739 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00740 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00741 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00742 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00743 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00744 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00745 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00746 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00747 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00748 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00749 * 00750 * (*) value not defined in all devices. 00751 * @retval None 00752 */ 00753 __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs) 00754 { 00755 CLEAR_BIT(RCC->AHB2RSTR, Periphs); 00756 } 00757 00758 /** 00759 * @brief Enable AHB2 peripheral clocks in Sleep and Stop modes 00760 * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00761 * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00762 * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00763 * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00764 * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00765 * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00766 * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00767 * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00768 * AHB2SMENR GPIOISMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00769 * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00770 * AHB2SMENR SRAM3SMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00771 * AHB2SMENR OTGFSSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00772 * AHB2SMENR ADCSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00773 * AHB2SMENR DCMISMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00774 * AHB2SMENR AESSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00775 * AHB2SMENR HASHSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00776 * AHB2SMENR RNGSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00777 * AHB2SMENR OSPIMSMEN LL_AHB2_GRP1_EnableClockStopSleep\n 00778 * AHB2SMENR SDMMC1SMEN LL_AHB2_GRP1_EnableClockStopSleep 00779 * @param Periphs This parameter can be a combination of the following values: 00780 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00781 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00782 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00783 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00784 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00785 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00786 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00787 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00788 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00789 * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 00790 * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*) 00791 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00792 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00793 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00794 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00795 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00796 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00797 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00798 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00799 * 00800 * (*) value not defined in all devices. 00801 * @retval None 00802 */ 00803 __STATIC_INLINE void LL_AHB2_GRP1_EnableClockStopSleep(uint32_t Periphs) 00804 { 00805 __IO uint32_t tmpreg; 00806 SET_BIT(RCC->AHB2SMENR, Periphs); 00807 /* Delay after an RCC peripheral clock enabling */ 00808 tmpreg = READ_BIT(RCC->AHB2SMENR, Periphs); 00809 (void)tmpreg; 00810 } 00811 00812 /** 00813 * @brief Disable AHB2 peripheral clocks in Sleep and Stop modes 00814 * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00815 * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00816 * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00817 * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00818 * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00819 * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00820 * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00821 * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00822 * AHB2SMENR GPIOISMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00823 * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00824 * AHB2SMENR SRAM3SMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00825 * AHB2SMENR OTGFSSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00826 * AHB2SMENR ADCSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00827 * AHB2SMENR DCMISMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00828 * AHB2SMENR AESSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00829 * AHB2SMENR HASHSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00830 * AHB2SMENR RNGSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00831 * AHB2SMENR OSPIMSMEN LL_AHB2_GRP1_DisableClockStopSleep\n 00832 * AHB2SMENR SDMMC1SMEN LL_AHB2_GRP1_DisableClockStopSleep 00833 * @param Periphs This parameter can be a combination of the following values: 00834 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA 00835 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB 00836 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC 00837 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*) 00838 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*) 00839 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*) 00840 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*) 00841 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH 00842 * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*) 00843 * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 00844 * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*) 00845 * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*) 00846 * @arg @ref LL_AHB2_GRP1_PERIPH_ADC 00847 * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*) 00848 * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*) 00849 * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*) 00850 * @arg @ref LL_AHB2_GRP1_PERIPH_RNG 00851 * @arg @ref LL_AHB2_GRP1_PERIPH_OSPIM (*) 00852 * @arg @ref LL_AHB2_GRP1_PERIPH_SDMMC1 (*) 00853 * 00854 * (*) value not defined in all devices. 00855 * @retval None 00856 */ 00857 __STATIC_INLINE void LL_AHB2_GRP1_DisableClockStopSleep(uint32_t Periphs) 00858 { 00859 CLEAR_BIT(RCC->AHB2SMENR, Periphs); 00860 } 00861 00862 /** 00863 * @} 00864 */ 00865 00866 /** @defgroup BUS_LL_EF_AHB3 AHB3 00867 * @{ 00868 */ 00869 00870 /** 00871 * @brief Enable AHB3 peripherals clock. 00872 * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_EnableClock\n 00873 * AHB3ENR QSPIEN LL_AHB3_GRP1_EnableClock\n 00874 * AHB3ENR OSPI1EN LL_AHB3_GRP1_EnableClock\n 00875 * AHB3ENR OSPI2EN LL_AHB3_GRP1_EnableClock 00876 * @param Periphs This parameter can be a combination of the following values: 00877 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00878 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00879 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00880 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00881 * 00882 * (*) value not defined in all devices. 00883 * @retval None 00884 */ 00885 __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs) 00886 { 00887 __IO uint32_t tmpreg; 00888 SET_BIT(RCC->AHB3ENR, Periphs); 00889 /* Delay after an RCC peripheral clock enabling */ 00890 tmpreg = READ_BIT(RCC->AHB3ENR, Periphs); 00891 (void)tmpreg; 00892 } 00893 00894 /** 00895 * @brief Check if AHB3 peripheral clock is enabled or not 00896 * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_IsEnabledClock\n 00897 * AHB3ENR QSPIEN LL_AHB3_GRP1_IsEnabledClock\n 00898 * AHB3ENR OSPI1EN LL_AHB3_GRP1_IsEnabledClock\n 00899 * AHB3ENR OSPI2EN LL_AHB3_GRP1_IsEnabledClock 00900 * @param Periphs This parameter can be a combination of the following values: 00901 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00902 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00903 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00904 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00905 * 00906 * (*) value not defined in all devices. 00907 * @retval State of Periphs (1 or 0). 00908 */ 00909 __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs) 00910 { 00911 return ((READ_BIT(RCC->AHB3ENR, Periphs) == Periphs) ? 1UL : 0UL); 00912 } 00913 00914 /** 00915 * @brief Disable AHB3 peripherals clock. 00916 * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_DisableClock\n 00917 * AHB3ENR QSPIEN LL_AHB3_GRP1_DisableClock\n 00918 * AHB3ENR OSPI1EN LL_AHB3_GRP1_DisableClock\n 00919 * AHB3ENR OSPI2EN LL_AHB3_GRP1_DisableClock 00920 * @param Periphs This parameter can be a combination of the following values: 00921 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00922 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00923 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00924 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00925 * 00926 * (*) value not defined in all devices. 00927 * @retval None 00928 */ 00929 __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs) 00930 { 00931 CLEAR_BIT(RCC->AHB3ENR, Periphs); 00932 } 00933 00934 /** 00935 * @brief Force AHB3 peripherals reset. 00936 * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ForceReset\n 00937 * AHB3RSTR QSPIRST LL_AHB3_GRP1_ForceReset\n 00938 * AHB3RSTR OSPI1RST LL_AHB3_GRP1_ForceReset\n 00939 * AHB3RSTR OSPI2RST LL_AHB3_GRP1_ForceReset 00940 * @param Periphs This parameter can be a combination of the following values: 00941 * @arg @ref LL_AHB3_GRP1_PERIPH_ALL 00942 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00943 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00944 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00945 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00946 * 00947 * (*) value not defined in all devices. 00948 * @retval None 00949 */ 00950 __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs) 00951 { 00952 SET_BIT(RCC->AHB3RSTR, Periphs); 00953 } 00954 00955 /** 00956 * @brief Release AHB3 peripherals reset. 00957 * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ReleaseReset\n 00958 * AHB3RSTR QSPIRST LL_AHB3_GRP1_ReleaseReset\n 00959 * AHB3RSTR OSPI1RST LL_AHB3_GRP1_ReleaseReset\n 00960 * AHB3RSTR OSPI2RST LL_AHB3_GRP1_ReleaseReset 00961 * @param Periphs This parameter can be a combination of the following values: 00962 * @arg @ref LL_AHB2_GRP1_PERIPH_ALL 00963 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00964 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00965 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00966 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00967 * 00968 * (*) value not defined in all devices. 00969 * @retval None 00970 */ 00971 __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs) 00972 { 00973 CLEAR_BIT(RCC->AHB3RSTR, Periphs); 00974 } 00975 00976 /** 00977 * @brief Enable AHB3 peripheral clocks in Sleep and Stop modes 00978 * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_EnableClockStopSleep\n 00979 * AHB3SMENR QSPISMEN LL_AHB3_GRP1_EnableClockStopSleep\n 00980 * AHB3SMENR OSPI1SMEN LL_AHB3_GRP1_EnableClockStopSleep\n 00981 * AHB3SMENR OSPI2SMEN LL_AHB3_GRP1_EnableClockStopSleep 00982 * @param Periphs This parameter can be a combination of the following values: 00983 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 00984 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 00985 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 00986 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 00987 * 00988 * (*) value not defined in all devices. 00989 * @retval None 00990 */ 00991 __STATIC_INLINE void LL_AHB3_GRP1_EnableClockStopSleep(uint32_t Periphs) 00992 { 00993 __IO uint32_t tmpreg; 00994 SET_BIT(RCC->AHB3SMENR, Periphs); 00995 /* Delay after an RCC peripheral clock enabling */ 00996 tmpreg = READ_BIT(RCC->AHB3SMENR, Periphs); 00997 (void)tmpreg; 00998 } 00999 01000 /** 01001 * @brief Disable AHB3 peripheral clocks in Sleep and Stop modes 01002 * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_DisableClockStopSleep\n 01003 * AHB3SMENR QSPISMEN LL_AHB3_GRP1_DisableClockStopSleep\n 01004 * AHB3SMENR OSPI1SMEN LL_AHB3_GRP1_DisableClockStopSleep\n 01005 * AHB3SMENR OSPI2SMEN LL_AHB3_GRP1_DisableClockStopSleep\n 01006 * @param Periphs This parameter can be a combination of the following values: 01007 * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*) 01008 * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*) 01009 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI1 (*) 01010 * @arg @ref LL_AHB3_GRP1_PERIPH_OSPI2 (*) 01011 * 01012 * (*) value not defined in all devices. 01013 * @retval None 01014 */ 01015 __STATIC_INLINE void LL_AHB3_GRP1_DisableClockStopSleep(uint32_t Periphs) 01016 { 01017 CLEAR_BIT(RCC->AHB3SMENR, Periphs); 01018 } 01019 01020 /** 01021 * @} 01022 */ 01023 01024 /** @defgroup BUS_LL_EF_APB1 APB1 01025 * @{ 01026 */ 01027 01028 /** 01029 * @brief Enable APB1 peripherals clock. 01030 * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_EnableClock\n 01031 * APB1ENR1 TIM3EN LL_APB1_GRP1_EnableClock\n 01032 * APB1ENR1 TIM4EN LL_APB1_GRP1_EnableClock\n 01033 * APB1ENR1 TIM5EN LL_APB1_GRP1_EnableClock\n 01034 * APB1ENR1 TIM6EN LL_APB1_GRP1_EnableClock\n 01035 * APB1ENR1 TIM7EN LL_APB1_GRP1_EnableClock\n 01036 * APB1ENR1 LCDEN LL_APB1_GRP1_EnableClock\n 01037 * APB1ENR1 RTCAPBEN LL_APB1_GRP1_EnableClock\n 01038 * APB1ENR1 WWDGEN LL_APB1_GRP1_EnableClock\n 01039 * APB1ENR1 SPI2EN LL_APB1_GRP1_EnableClock\n 01040 * APB1ENR1 SPI3EN LL_APB1_GRP1_EnableClock\n 01041 * APB1ENR1 USART2EN LL_APB1_GRP1_EnableClock\n 01042 * APB1ENR1 USART3EN LL_APB1_GRP1_EnableClock\n 01043 * APB1ENR1 UART4EN LL_APB1_GRP1_EnableClock\n 01044 * APB1ENR1 UART5EN LL_APB1_GRP1_EnableClock\n 01045 * APB1ENR1 I2C1EN LL_APB1_GRP1_EnableClock\n 01046 * APB1ENR1 I2C2EN LL_APB1_GRP1_EnableClock\n 01047 * APB1ENR1 I2C3EN LL_APB1_GRP1_EnableClock\n 01048 * APB1ENR1 CRSEN LL_APB1_GRP1_EnableClock\n 01049 * APB1ENR1 CAN1EN LL_APB1_GRP1_EnableClock\n 01050 * APB1ENR1 USBFSEN LL_APB1_GRP1_EnableClock\n 01051 * APB1ENR1 CAN2EN LL_APB1_GRP1_EnableClock\n 01052 * APB1ENR1 PWREN LL_APB1_GRP1_EnableClock\n 01053 * APB1ENR1 DAC1EN LL_APB1_GRP1_EnableClock\n 01054 * APB1ENR1 OPAMPEN LL_APB1_GRP1_EnableClock\n 01055 * APB1ENR1 LPTIM1EN LL_APB1_GRP1_EnableClock 01056 * @param Periphs This parameter can be a combination of the following values: 01057 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01058 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01059 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01060 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01061 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01062 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01063 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01064 * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*) 01065 * @arg @ref LL_APB1_GRP1_PERIPH_WWDG 01066 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01067 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01068 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01069 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01070 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01071 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01072 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01073 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01074 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01075 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01076 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01077 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01078 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01079 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01080 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01081 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01082 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01083 * 01084 * (*) value not defined in all devices. 01085 * @retval None 01086 */ 01087 __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs) 01088 { 01089 __IO uint32_t tmpreg; 01090 SET_BIT(RCC->APB1ENR1, Periphs); 01091 /* Delay after an RCC peripheral clock enabling */ 01092 tmpreg = READ_BIT(RCC->APB1ENR1, Periphs); 01093 (void)tmpreg; 01094 } 01095 01096 /** 01097 * @brief Enable APB1 peripherals clock. 01098 * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_EnableClock\n 01099 * APB1ENR2 I2C4EN LL_APB1_GRP2_EnableClock\n 01100 * APB1ENR2 SWPMI1EN LL_APB1_GRP2_EnableClock\n 01101 * APB1ENR2 LPTIM2EN LL_APB1_GRP2_EnableClock 01102 * @param Periphs This parameter can be a combination of the following values: 01103 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01104 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01105 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01106 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01107 * 01108 * (*) value not defined in all devices. 01109 * @retval None 01110 */ 01111 __STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs) 01112 { 01113 __IO uint32_t tmpreg; 01114 SET_BIT(RCC->APB1ENR2, Periphs); 01115 /* Delay after an RCC peripheral clock enabling */ 01116 tmpreg = READ_BIT(RCC->APB1ENR2, Periphs); 01117 (void)tmpreg; 01118 } 01119 01120 /** 01121 * @brief Check if APB1 peripheral clock is enabled or not 01122 * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_IsEnabledClock\n 01123 * APB1ENR1 TIM3EN LL_APB1_GRP1_IsEnabledClock\n 01124 * APB1ENR1 TIM4EN LL_APB1_GRP1_IsEnabledClock\n 01125 * APB1ENR1 TIM5EN LL_APB1_GRP1_IsEnabledClock\n 01126 * APB1ENR1 TIM6EN LL_APB1_GRP1_IsEnabledClock\n 01127 * APB1ENR1 TIM7EN LL_APB1_GRP1_IsEnabledClock\n 01128 * APB1ENR1 LCDEN LL_APB1_GRP1_IsEnabledClock\n 01129 * APB1ENR1 RTCAPBEN LL_APB1_GRP1_IsEnabledClock\n 01130 * APB1ENR1 WWDGEN LL_APB1_GRP1_IsEnabledClock\n 01131 * APB1ENR1 SPI2EN LL_APB1_GRP1_IsEnabledClock\n 01132 * APB1ENR1 SPI3EN LL_APB1_GRP1_IsEnabledClock\n 01133 * APB1ENR1 USART2EN LL_APB1_GRP1_IsEnabledClock\n 01134 * APB1ENR1 USART3EN LL_APB1_GRP1_IsEnabledClock\n 01135 * APB1ENR1 UART4EN LL_APB1_GRP1_IsEnabledClock\n 01136 * APB1ENR1 UART5EN LL_APB1_GRP1_IsEnabledClock\n 01137 * APB1ENR1 I2C1EN LL_APB1_GRP1_IsEnabledClock\n 01138 * APB1ENR1 I2C2EN LL_APB1_GRP1_IsEnabledClock\n 01139 * APB1ENR1 I2C3EN LL_APB1_GRP1_IsEnabledClock\n 01140 * APB1ENR1 CRSEN LL_APB1_GRP1_IsEnabledClock\n 01141 * APB1ENR1 CAN1EN LL_APB1_GRP1_IsEnabledClock\n 01142 * APB1ENR1 USBFSEN LL_APB1_GRP1_IsEnabledClock\n 01143 * APB1ENR1 CAN2EN LL_APB1_GRP1_IsEnabledClock\n 01144 * APB1ENR1 PWREN LL_APB1_GRP1_IsEnabledClock\n 01145 * APB1ENR1 DAC1EN LL_APB1_GRP1_IsEnabledClock\n 01146 * APB1ENR1 OPAMPEN LL_APB1_GRP1_IsEnabledClock\n 01147 * APB1ENR1 LPTIM1EN LL_APB1_GRP1_IsEnabledClock 01148 * @param Periphs This parameter can be a combination of the following values: 01149 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01150 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01151 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01152 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01153 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01154 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01155 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01156 * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*) 01157 * @arg @ref LL_APB1_GRP1_PERIPH_WWDG 01158 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01159 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01160 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01161 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01162 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01163 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01164 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01165 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01166 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01167 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01168 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01169 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01170 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01171 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01172 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01173 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01174 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01175 * 01176 * (*) value not defined in all devices. 01177 * @retval State of Periphs (1 or 0). 01178 */ 01179 __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs) 01180 { 01181 return ((READ_BIT(RCC->APB1ENR1, Periphs) == Periphs) ? 1UL : 0UL); 01182 } 01183 01184 /** 01185 * @brief Check if APB1 peripheral clock is enabled or not 01186 * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_IsEnabledClock\n 01187 * APB1ENR2 I2C4EN LL_APB1_GRP2_IsEnabledClock\n 01188 * APB1ENR2 SWPMI1EN LL_APB1_GRP2_IsEnabledClock\n 01189 * APB1ENR2 LPTIM2EN LL_APB1_GRP2_IsEnabledClock 01190 * @param Periphs This parameter can be a combination of the following values: 01191 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01192 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01193 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01194 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01195 * 01196 * (*) value not defined in all devices. 01197 * @retval State of Periphs (1 or 0). 01198 */ 01199 __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs) 01200 { 01201 return ((READ_BIT(RCC->APB1ENR2, Periphs) == Periphs) ? 1UL : 0UL); 01202 } 01203 01204 /** 01205 * @brief Disable APB1 peripherals clock. 01206 * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_DisableClock\n 01207 * APB1ENR1 TIM3EN LL_APB1_GRP1_DisableClock\n 01208 * APB1ENR1 TIM4EN LL_APB1_GRP1_DisableClock\n 01209 * APB1ENR1 TIM5EN LL_APB1_GRP1_DisableClock\n 01210 * APB1ENR1 TIM6EN LL_APB1_GRP1_DisableClock\n 01211 * APB1ENR1 TIM7EN LL_APB1_GRP1_DisableClock\n 01212 * APB1ENR1 LCDEN LL_APB1_GRP1_DisableClock\n 01213 * APB1ENR1 RTCAPBEN LL_APB1_GRP1_DisableClock\n 01214 * APB1ENR1 WWDGEN LL_APB1_GRP1_DisableClock\n 01215 * APB1ENR1 SPI2EN LL_APB1_GRP1_DisableClock\n 01216 * APB1ENR1 SPI3EN LL_APB1_GRP1_DisableClock\n 01217 * APB1ENR1 USART2EN LL_APB1_GRP1_DisableClock\n 01218 * APB1ENR1 USART3EN LL_APB1_GRP1_DisableClock\n 01219 * APB1ENR1 UART4EN LL_APB1_GRP1_DisableClock\n 01220 * APB1ENR1 UART5EN LL_APB1_GRP1_DisableClock\n 01221 * APB1ENR1 I2C1EN LL_APB1_GRP1_DisableClock\n 01222 * APB1ENR1 I2C2EN LL_APB1_GRP1_DisableClock\n 01223 * APB1ENR1 I2C3EN LL_APB1_GRP1_DisableClock\n 01224 * APB1ENR1 CRSEN LL_APB1_GRP1_DisableClock\n 01225 * APB1ENR1 CAN1EN LL_APB1_GRP1_DisableClock\n 01226 * APB1ENR1 USBFSEN LL_APB1_GRP1_DisableClock\n 01227 * APB1ENR1 CAN2EN LL_APB1_GRP1_DisableClock\n 01228 * APB1ENR1 PWREN LL_APB1_GRP1_DisableClock\n 01229 * APB1ENR1 DAC1EN LL_APB1_GRP1_DisableClock\n 01230 * APB1ENR1 OPAMPEN LL_APB1_GRP1_DisableClock\n 01231 * APB1ENR1 LPTIM1EN LL_APB1_GRP1_DisableClock 01232 * @param Periphs This parameter can be a combination of the following values: 01233 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01234 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01235 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01236 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01237 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01238 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01239 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01240 * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*) 01241 * @arg @ref LL_APB1_GRP1_PERIPH_WWDG 01242 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01243 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01244 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01245 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01246 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01247 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01248 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01249 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01250 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01251 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01252 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01253 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01254 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01255 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01256 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01257 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01258 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01259 * 01260 * (*) value not defined in all devices. 01261 * @retval None 01262 */ 01263 __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs) 01264 { 01265 CLEAR_BIT(RCC->APB1ENR1, Periphs); 01266 } 01267 01268 /** 01269 * @brief Disable APB1 peripherals clock. 01270 * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_DisableClock\n 01271 * APB1ENR2 I2C4EN LL_APB1_GRP2_DisableClock\n 01272 * APB1ENR2 SWPMI1EN LL_APB1_GRP2_DisableClock\n 01273 * APB1ENR2 LPTIM2EN LL_APB1_GRP2_DisableClock 01274 * @param Periphs This parameter can be a combination of the following values: 01275 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01276 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01277 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01278 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01279 * 01280 * (*) value not defined in all devices. 01281 * @retval None 01282 */ 01283 __STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs) 01284 { 01285 CLEAR_BIT(RCC->APB1ENR2, Periphs); 01286 } 01287 01288 /** 01289 * @brief Force APB1 peripherals reset. 01290 * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ForceReset\n 01291 * APB1RSTR1 TIM3RST LL_APB1_GRP1_ForceReset\n 01292 * APB1RSTR1 TIM4RST LL_APB1_GRP1_ForceReset\n 01293 * APB1RSTR1 TIM5RST LL_APB1_GRP1_ForceReset\n 01294 * APB1RSTR1 TIM6RST LL_APB1_GRP1_ForceReset\n 01295 * APB1RSTR1 TIM7RST LL_APB1_GRP1_ForceReset\n 01296 * APB1RSTR1 LCDRST LL_APB1_GRP1_ForceReset\n 01297 * APB1RSTR1 SPI2RST LL_APB1_GRP1_ForceReset\n 01298 * APB1RSTR1 SPI3RST LL_APB1_GRP1_ForceReset\n 01299 * APB1RSTR1 USART2RST LL_APB1_GRP1_ForceReset\n 01300 * APB1RSTR1 USART3RST LL_APB1_GRP1_ForceReset\n 01301 * APB1RSTR1 UART4RST LL_APB1_GRP1_ForceReset\n 01302 * APB1RSTR1 UART5RST LL_APB1_GRP1_ForceReset\n 01303 * APB1RSTR1 I2C1RST LL_APB1_GRP1_ForceReset\n 01304 * APB1RSTR1 I2C2RST LL_APB1_GRP1_ForceReset\n 01305 * APB1RSTR1 I2C3RST LL_APB1_GRP1_ForceReset\n 01306 * APB1RSTR1 CRSRST LL_APB1_GRP1_ForceReset\n 01307 * APB1RSTR1 CAN1RST LL_APB1_GRP1_ForceReset\n 01308 * APB1RSTR1 USBFSRST LL_APB1_GRP1_ForceReset\n 01309 * APB1RSTR1 CAN2RST LL_APB1_GRP1_ForceReset\n 01310 * APB1RSTR1 PWRRST LL_APB1_GRP1_ForceReset\n 01311 * APB1RSTR1 DAC1RST LL_APB1_GRP1_ForceReset\n 01312 * APB1RSTR1 OPAMPRST LL_APB1_GRP1_ForceReset\n 01313 * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ForceReset 01314 * @param Periphs This parameter can be a combination of the following values: 01315 * @arg @ref LL_APB1_GRP1_PERIPH_ALL 01316 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01317 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01318 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01319 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01320 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01321 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01322 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01323 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01324 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01325 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01326 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01327 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01328 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01329 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01330 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01331 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01332 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01333 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01334 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01335 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01336 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01337 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01338 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01339 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01340 * 01341 * (*) value not defined in all devices. 01342 * @retval None 01343 */ 01344 __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs) 01345 { 01346 SET_BIT(RCC->APB1RSTR1, Periphs); 01347 } 01348 01349 /** 01350 * @brief Force APB1 peripherals reset. 01351 * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ForceReset\n 01352 * APB1RSTR2 I2C4RST LL_APB1_GRP2_ForceReset\n 01353 * APB1RSTR2 SWPMI1RST LL_APB1_GRP2_ForceReset\n 01354 * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ForceReset 01355 * @param Periphs This parameter can be a combination of the following values: 01356 * @arg @ref LL_APB1_GRP2_PERIPH_ALL 01357 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01358 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01359 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01360 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01361 * 01362 * (*) value not defined in all devices. 01363 * @retval None 01364 */ 01365 __STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs) 01366 { 01367 SET_BIT(RCC->APB1RSTR2, Periphs); 01368 } 01369 01370 /** 01371 * @brief Release APB1 peripherals reset. 01372 * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ReleaseReset\n 01373 * APB1RSTR1 TIM3RST LL_APB1_GRP1_ReleaseReset\n 01374 * APB1RSTR1 TIM4RST LL_APB1_GRP1_ReleaseReset\n 01375 * APB1RSTR1 TIM5RST LL_APB1_GRP1_ReleaseReset\n 01376 * APB1RSTR1 TIM6RST LL_APB1_GRP1_ReleaseReset\n 01377 * APB1RSTR1 TIM7RST LL_APB1_GRP1_ReleaseReset\n 01378 * APB1RSTR1 LCDRST LL_APB1_GRP1_ReleaseReset\n 01379 * APB1RSTR1 SPI2RST LL_APB1_GRP1_ReleaseReset\n 01380 * APB1RSTR1 SPI3RST LL_APB1_GRP1_ReleaseReset\n 01381 * APB1RSTR1 USART2RST LL_APB1_GRP1_ReleaseReset\n 01382 * APB1RSTR1 USART3RST LL_APB1_GRP1_ReleaseReset\n 01383 * APB1RSTR1 UART4RST LL_APB1_GRP1_ReleaseReset\n 01384 * APB1RSTR1 UART5RST LL_APB1_GRP1_ReleaseReset\n 01385 * APB1RSTR1 I2C1RST LL_APB1_GRP1_ReleaseReset\n 01386 * APB1RSTR1 I2C2RST LL_APB1_GRP1_ReleaseReset\n 01387 * APB1RSTR1 I2C3RST LL_APB1_GRP1_ReleaseReset\n 01388 * APB1RSTR1 CRSRST LL_APB1_GRP1_ReleaseReset\n 01389 * APB1RSTR1 CAN1RST LL_APB1_GRP1_ReleaseReset\n 01390 * APB1RSTR1 USBFSRST LL_APB1_GRP1_ReleaseReset\n 01391 * APB1RSTR1 CAN2RST LL_APB1_GRP1_ReleaseReset\n 01392 * APB1RSTR1 PWRRST LL_APB1_GRP1_ReleaseReset\n 01393 * APB1RSTR1 DAC1RST LL_APB1_GRP1_ReleaseReset\n 01394 * APB1RSTR1 OPAMPRST LL_APB1_GRP1_ReleaseReset\n 01395 * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ReleaseReset 01396 * @param Periphs This parameter can be a combination of the following values: 01397 * @arg @ref LL_APB1_GRP1_PERIPH_ALL 01398 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01399 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01400 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01401 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01402 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01403 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01404 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01405 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01406 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01407 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01408 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01409 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01410 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01411 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01412 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01413 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01414 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01415 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01416 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01417 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01418 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01419 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01420 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01421 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01422 * 01423 * (*) value not defined in all devices. 01424 * @retval None 01425 */ 01426 __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs) 01427 { 01428 CLEAR_BIT(RCC->APB1RSTR1, Periphs); 01429 } 01430 01431 /** 01432 * @brief Release APB1 peripherals reset. 01433 * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ReleaseReset\n 01434 * APB1RSTR2 I2C4RST LL_APB1_GRP2_ReleaseReset\n 01435 * APB1RSTR2 SWPMI1RST LL_APB1_GRP2_ReleaseReset\n 01436 * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ReleaseReset 01437 * @param Periphs This parameter can be a combination of the following values: 01438 * @arg @ref LL_APB1_GRP2_PERIPH_ALL 01439 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01440 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01441 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01442 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01443 * 01444 * (*) value not defined in all devices. 01445 * @retval None 01446 */ 01447 __STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs) 01448 { 01449 CLEAR_BIT(RCC->APB1RSTR2, Periphs); 01450 } 01451 01452 /** 01453 * @brief Enable APB1 peripheral clocks in Sleep and Stop modes 01454 * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01455 * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01456 * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01457 * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01458 * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01459 * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01460 * APB1SMENR1 LCDSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01461 * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01462 * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01463 * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01464 * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01465 * APB1SMENR1 USART2SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01466 * APB1SMENR1 USART3SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01467 * APB1SMENR1 UART4SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01468 * APB1SMENR1 UART5SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01469 * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01470 * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01471 * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01472 * APB1SMENR1 CRSSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01473 * APB1SMENR1 CAN1SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01474 * APB1SMENR1 USBFSSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01475 * APB1SMENR1 CAN2SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01476 * APB1SMENR1 PWRSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01477 * APB1SMENR1 DAC1SMEN LL_APB1_GRP1_EnableClockStopSleep\n 01478 * APB1SMENR1 OPAMPSMEN LL_APB1_GRP1_EnableClockStopSleep\n 01479 * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_EnableClockStopSleep 01480 * @param Periphs This parameter can be a combination of the following values: 01481 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01482 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01483 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01484 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01485 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01486 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01487 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01488 * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*) 01489 * @arg @ref LL_APB1_GRP1_PERIPH_WWDG 01490 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01491 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01492 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01493 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01494 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01495 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01496 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01497 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01498 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01499 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01500 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01501 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01502 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01503 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01504 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01505 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01506 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01507 * 01508 * (*) value not defined in all devices. 01509 * @retval None 01510 */ 01511 __STATIC_INLINE void LL_APB1_GRP1_EnableClockStopSleep(uint32_t Periphs) 01512 { 01513 __IO uint32_t tmpreg; 01514 SET_BIT(RCC->APB1SMENR1, Periphs); 01515 /* Delay after an RCC peripheral clock enabling */ 01516 tmpreg = READ_BIT(RCC->APB1SMENR1, Periphs); 01517 (void)tmpreg; 01518 } 01519 01520 /** 01521 * @brief Enable APB1 peripheral clocks in Sleep and Stop modes 01522 * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_EnableClockStopSleep\n 01523 * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_EnableClockStopSleep\n 01524 * APB1SMENR2 SWPMI1SMEN LL_APB1_GRP2_EnableClockStopSleep\n 01525 * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_EnableClockStopSleep 01526 * @param Periphs This parameter can be a combination of the following values: 01527 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01528 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01529 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01530 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01531 * 01532 * (*) value not defined in all devices. 01533 * @retval None 01534 */ 01535 __STATIC_INLINE void LL_APB1_GRP2_EnableClockStopSleep(uint32_t Periphs) 01536 { 01537 __IO uint32_t tmpreg; 01538 SET_BIT(RCC->APB1SMENR2, Periphs); 01539 /* Delay after an RCC peripheral clock enabling */ 01540 tmpreg = READ_BIT(RCC->APB1SMENR2, Periphs); 01541 (void)tmpreg; 01542 } 01543 01544 /** 01545 * @brief Disable APB1 peripheral clocks in Sleep and Stop modes 01546 * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01547 * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01548 * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01549 * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01550 * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01551 * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01552 * APB1SMENR1 LCDSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01553 * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01554 * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01555 * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01556 * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01557 * APB1SMENR1 USART2SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01558 * APB1SMENR1 USART3SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01559 * APB1SMENR1 UART4SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01560 * APB1SMENR1 UART5SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01561 * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01562 * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01563 * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01564 * APB1SMENR1 CRSSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01565 * APB1SMENR1 CAN1SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01566 * APB1SMENR1 USBFSSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01567 * APB1SMENR1 CAN2SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01568 * APB1SMENR1 PWRSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01569 * APB1SMENR1 DAC1SMEN LL_APB1_GRP1_DisableClockStopSleep\n 01570 * APB1SMENR1 OPAMPSMEN LL_APB1_GRP1_DisableClockStopSleep\n 01571 * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_DisableClockStopSleep 01572 * @param Periphs This parameter can be a combination of the following values: 01573 * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 01574 * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*) 01575 * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*) 01576 * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*) 01577 * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 01578 * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 01579 * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*) 01580 * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*) 01581 * @arg @ref LL_APB1_GRP1_PERIPH_WWDG 01582 * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*) 01583 * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 01584 * @arg @ref LL_APB1_GRP1_PERIPH_USART2 01585 * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*) 01586 * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*) 01587 * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*) 01588 * @arg @ref LL_APB1_GRP1_PERIPH_I2C1 01589 * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*) 01590 * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 01591 * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*) 01592 * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 01593 * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*) 01594 * @arg @ref LL_APB1_GRP1_PERIPH_USB (*) 01595 * @arg @ref LL_APB1_GRP1_PERIPH_PWR 01596 * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 01597 * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP 01598 * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 01599 * 01600 * (*) value not defined in all devices. 01601 * @retval None 01602 */ 01603 __STATIC_INLINE void LL_APB1_GRP1_DisableClockStopSleep(uint32_t Periphs) 01604 { 01605 CLEAR_BIT(RCC->APB1SMENR1, Periphs); 01606 } 01607 01608 /** 01609 * @brief Disable APB1 peripheral clocks in Sleep and Stop modes 01610 * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_DisableClockStopSleep\n 01611 * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_DisableClockStopSleep\n 01612 * APB1SMENR2 SWPMI1SMEN LL_APB1_GRP2_DisableClockStopSleep\n 01613 * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_DisableClockStopSleep 01614 * @param Periphs This parameter can be a combination of the following values: 01615 * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 01616 * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*) 01617 * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*) 01618 * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2 01619 * 01620 * (*) value not defined in all devices. 01621 * @retval None 01622 */ 01623 __STATIC_INLINE void LL_APB1_GRP2_DisableClockStopSleep(uint32_t Periphs) 01624 { 01625 CLEAR_BIT(RCC->APB1SMENR2, Periphs); 01626 } 01627 01628 /** 01629 * @} 01630 */ 01631 01632 /** @defgroup BUS_LL_EF_APB2 APB2 01633 * @{ 01634 */ 01635 01636 /** 01637 * @brief Enable APB2 peripherals clock. 01638 * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n 01639 * APB2ENR FWEN LL_APB2_GRP1_EnableClock\n 01640 * APB2ENR SDMMC1EN LL_APB2_GRP1_EnableClock\n 01641 * APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n 01642 * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n 01643 * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n 01644 * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n 01645 * APB2ENR TIM15EN LL_APB2_GRP1_EnableClock\n 01646 * APB2ENR TIM16EN LL_APB2_GRP1_EnableClock\n 01647 * APB2ENR TIM17EN LL_APB2_GRP1_EnableClock\n 01648 * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock\n 01649 * APB2ENR SAI2EN LL_APB2_GRP1_EnableClock\n 01650 * APB2ENR DFSDM1EN LL_APB2_GRP1_EnableClock\n 01651 * APB2ENR LTDCEN LL_APB2_GRP1_EnableClock\n 01652 * APB2ENR DSIEN LL_APB2_GRP1_EnableClock 01653 * @param Periphs This parameter can be a combination of the following values: 01654 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01655 * @arg @ref LL_APB2_GRP1_PERIPH_FW 01656 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01657 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01658 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01659 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01660 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01661 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01662 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01663 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01664 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01665 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01666 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01667 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01668 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01669 * 01670 * (*) value not defined in all devices. 01671 * @retval None 01672 */ 01673 __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs) 01674 { 01675 __IO uint32_t tmpreg; 01676 SET_BIT(RCC->APB2ENR, Periphs); 01677 /* Delay after an RCC peripheral clock enabling */ 01678 tmpreg = READ_BIT(RCC->APB2ENR, Periphs); 01679 (void)tmpreg; 01680 } 01681 01682 /** 01683 * @brief Check if APB2 peripheral clock is enabled or not 01684 * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n 01685 * APB2ENR FWEN LL_APB2_GRP1_IsEnabledClock\n 01686 * APB2ENR SDMMC1EN LL_APB2_GRP1_IsEnabledClock\n 01687 * APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n 01688 * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n 01689 * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n 01690 * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n 01691 * APB2ENR TIM15EN LL_APB2_GRP1_IsEnabledClock\n 01692 * APB2ENR TIM16EN LL_APB2_GRP1_IsEnabledClock\n 01693 * APB2ENR TIM17EN LL_APB2_GRP1_IsEnabledClock\n 01694 * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock\n 01695 * APB2ENR SAI2EN LL_APB2_GRP1_IsEnabledClock\n 01696 * APB2ENR DFSDM1EN LL_APB2_GRP1_IsEnabledClock\n 01697 * APB2ENR LTDCEN LL_APB2_GRP1_IsEnabledClock\n 01698 * APB2ENR DSIEN LL_APB2_GRP1_IsEnabledClock 01699 * @param Periphs This parameter can be a combination of the following values: 01700 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01701 * @arg @ref LL_APB2_GRP1_PERIPH_FW 01702 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01703 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01704 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01705 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01706 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01707 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01708 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01709 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01710 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01711 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01712 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01713 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01714 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01715 * 01716 * (*) value not defined in all devices. 01717 * @retval State of Periphs (1 or 0). 01718 */ 01719 __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs) 01720 { 01721 return ((READ_BIT(RCC->APB2ENR, Periphs) == Periphs) ? 1UL : 0UL); 01722 } 01723 01724 /** 01725 * @brief Disable APB2 peripherals clock. 01726 * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n 01727 * APB2ENR SDMMC1EN LL_APB2_GRP1_DisableClock\n 01728 * APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n 01729 * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n 01730 * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n 01731 * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n 01732 * APB2ENR TIM15EN LL_APB2_GRP1_DisableClock\n 01733 * APB2ENR TIM16EN LL_APB2_GRP1_DisableClock\n 01734 * APB2ENR TIM17EN LL_APB2_GRP1_DisableClock\n 01735 * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock\n 01736 * APB2ENR SAI2EN LL_APB2_GRP1_DisableClock\n 01737 * APB2ENR DFSDM1EN LL_APB2_GRP1_DisableClock\n 01738 * APB2ENR LTDCEN LL_APB2_GRP1_DisableClock\n 01739 * APB2ENR DSIEN LL_APB2_GRP1_DisableClock 01740 * @param Periphs This parameter can be a combination of the following values: 01741 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01742 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01743 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01744 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01745 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01746 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01747 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01748 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01749 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01750 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01751 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01752 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01753 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01754 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01755 * 01756 * (*) value not defined in all devices. 01757 * @retval None 01758 */ 01759 __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs) 01760 { 01761 CLEAR_BIT(RCC->APB2ENR, Periphs); 01762 } 01763 01764 /** 01765 * @brief Force APB2 peripherals reset. 01766 * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n 01767 * APB2RSTR SDMMC1RST LL_APB2_GRP1_ForceReset\n 01768 * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n 01769 * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n 01770 * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n 01771 * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n 01772 * APB2RSTR TIM15RST LL_APB2_GRP1_ForceReset\n 01773 * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n 01774 * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n 01775 * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n 01776 * APB2RSTR SAI2RST LL_APB2_GRP1_ForceReset\n 01777 * APB2RSTR DFSDM1RST LL_APB2_GRP1_ForceReset\n 01778 * APB2RSTR LTDCRST LL_APB2_GRP1_ForceReset\n 01779 * APB2RSTR DSIRST LL_APB2_GRP1_ForceReset 01780 * @param Periphs This parameter can be a combination of the following values: 01781 * @arg @ref LL_APB2_GRP1_PERIPH_ALL 01782 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01783 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01784 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01785 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01786 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01787 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01788 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01789 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01790 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01791 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01792 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01793 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01794 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01795 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01796 * 01797 * (*) value not defined in all devices. 01798 * @retval None 01799 */ 01800 __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs) 01801 { 01802 SET_BIT(RCC->APB2RSTR, Periphs); 01803 } 01804 01805 /** 01806 * @brief Release APB2 peripherals reset. 01807 * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n 01808 * APB2RSTR SDMMC1RST LL_APB2_GRP1_ReleaseReset\n 01809 * APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n 01810 * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n 01811 * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n 01812 * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n 01813 * APB2RSTR TIM15RST LL_APB2_GRP1_ReleaseReset\n 01814 * APB2RSTR TIM16RST LL_APB2_GRP1_ReleaseReset\n 01815 * APB2RSTR TIM17RST LL_APB2_GRP1_ReleaseReset\n 01816 * APB2RSTR SAI1RST LL_APB2_GRP1_ReleaseReset\n 01817 * APB2RSTR SAI2RST LL_APB2_GRP1_ReleaseReset\n 01818 * APB2RSTR DFSDM1RST LL_APB2_GRP1_ReleaseReset\n 01819 * APB2RSTR LTDCRST LL_APB2_GRP1_ReleaseReset\n 01820 * APB2RSTR DSIRST LL_APB2_GRP1_ReleaseReset 01821 * @param Periphs This parameter can be a combination of the following values: 01822 * @arg @ref LL_APB2_GRP1_PERIPH_ALL 01823 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01824 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01825 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01826 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01827 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01828 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01829 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01830 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01831 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01832 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01833 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01834 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01835 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01836 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01837 * 01838 * (*) value not defined in all devices. 01839 * @retval None 01840 */ 01841 __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs) 01842 { 01843 CLEAR_BIT(RCC->APB2RSTR, Periphs); 01844 } 01845 01846 /** 01847 * @brief Enable APB2 peripheral clocks in Sleep and Stop modes 01848 * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_EnableClockStopSleep\n 01849 * APB2SMENR SDMMC1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01850 * APB2SMENR TIM1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01851 * APB2SMENR SPI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01852 * APB2SMENR TIM8SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01853 * APB2SMENR USART1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01854 * APB2SMENR TIM15SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01855 * APB2SMENR TIM16SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01856 * APB2SMENR TIM17SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01857 * APB2SMENR SAI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01858 * APB2SMENR SAI2SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01859 * APB2SMENR DFSDM1SMEN LL_APB2_GRP1_EnableClockStopSleep\n 01860 * APB2SMENR LTDCSMEN LL_APB2_GRP1_EnableClockStopSleep\n 01861 * APB2SMENR DSISMEN LL_APB2_GRP1_EnableClockStopSleep 01862 * @param Periphs This parameter can be a combination of the following values: 01863 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01864 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01865 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01866 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01867 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01868 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01869 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01870 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01871 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01872 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01873 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01874 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01875 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01876 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01877 * 01878 * (*) value not defined in all devices. 01879 * @retval None 01880 */ 01881 __STATIC_INLINE void LL_APB2_GRP1_EnableClockStopSleep(uint32_t Periphs) 01882 { 01883 __IO uint32_t tmpreg; 01884 SET_BIT(RCC->APB2SMENR, Periphs); 01885 /* Delay after an RCC peripheral clock enabling */ 01886 tmpreg = READ_BIT(RCC->APB2SMENR, Periphs); 01887 (void)tmpreg; 01888 } 01889 01890 /** 01891 * @brief Disable APB2 peripheral clocks in Sleep and Stop modes 01892 * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_DisableClockStopSleep\n 01893 * APB2SMENR SDMMC1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01894 * APB2SMENR TIM1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01895 * APB2SMENR SPI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01896 * APB2SMENR TIM8SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01897 * APB2SMENR USART1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01898 * APB2SMENR TIM15SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01899 * APB2SMENR TIM16SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01900 * APB2SMENR TIM17SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01901 * APB2SMENR SAI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01902 * APB2SMENR SAI2SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01903 * APB2SMENR DFSDM1SMEN LL_APB2_GRP1_DisableClockStopSleep\n 01904 * APB2SMENR LTDCSMEN LL_APB2_GRP1_DisableClockStopSleep\n 01905 * APB2SMENR DSISMEN LL_APB2_GRP1_DisableClockStopSleep 01906 * @param Periphs This parameter can be a combination of the following values: 01907 * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG 01908 * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*) 01909 * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 01910 * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 01911 * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*) 01912 * @arg @ref LL_APB2_GRP1_PERIPH_USART1 01913 * @arg @ref LL_APB2_GRP1_PERIPH_TIM15 01914 * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 01915 * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*) 01916 * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 01917 * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*) 01918 * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*) 01919 * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*) 01920 * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*) 01921 * 01922 * (*) value not defined in all devices. 01923 * @retval None 01924 */ 01925 __STATIC_INLINE void LL_APB2_GRP1_DisableClockStopSleep(uint32_t Periphs) 01926 { 01927 CLEAR_BIT(RCC->APB2SMENR, Periphs); 01928 } 01929 01930 /** 01931 * @} 01932 */ 01933 01934 01935 /** 01936 * @} 01937 */ 01938 01939 /** 01940 * @} 01941 */ 01942 01943 #endif /* defined(RCC) */ 01944 01945 /** 01946 * @} 01947 */ 01948 01949 #ifdef __cplusplus 01950 } 01951 #endif 01952 01953 #endif /* STM32L4xx_LL_BUS_H */ 01954