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