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.
Fork of TUKS-COURSE-TIMER by
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 17:38:50 by
