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