You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1828 lines
79 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32l4xx_ll_bus.h
  4. * @author MCD Application Team
  5. * @version V1.7.2
  6. * @date 16-June-2017
  7. * @brief Header file of BUS LL module.
  8. @verbatim
  9. ##### RCC Limitations #####
  10. ==============================================================================
  11. [..]
  12. A delay between an RCC peripheral clock enable and the effective peripheral
  13. enabling should be taken into account in order to manage the peripheral read/write
  14. from/to registers.
  15. (+) This delay depends on the peripheral mapping.
  16. (++) AHB & APB peripherals, 1 dummy read is necessary
  17. [..]
  18. Workarounds:
  19. (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
  20. inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
  21. @endverbatim
  22. ******************************************************************************
  23. * @attention
  24. *
  25. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  26. *
  27. * Redistribution and use in source and binary forms, with or without modification,
  28. * are permitted provided that the following conditions are met:
  29. * 1. Redistributions of source code must retain the above copyright notice,
  30. * this list of conditions and the following disclaimer.
  31. * 2. Redistributions in binary form must reproduce the above copyright notice,
  32. * this list of conditions and the following disclaimer in the documentation
  33. * and/or other materials provided with the distribution.
  34. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  35. * may be used to endorse or promote products derived from this software
  36. * without specific prior written permission.
  37. *
  38. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  39. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  40. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  41. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  42. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  43. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  44. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  45. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  46. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  47. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48. *
  49. ******************************************************************************
  50. */
  51. /* Define to prevent recursive inclusion -------------------------------------*/
  52. #ifndef __STM32L4xx_LL_BUS_H
  53. #define __STM32L4xx_LL_BUS_H
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57. /* Includes ------------------------------------------------------------------*/
  58. #include "stm32l4xx.h"
  59. /** @addtogroup STM32L4xx_LL_Driver
  60. * @{
  61. */
  62. #if defined(RCC)
  63. /** @defgroup BUS_LL BUS
  64. * @{
  65. */
  66. /* Private types -------------------------------------------------------------*/
  67. /* Private variables ---------------------------------------------------------*/
  68. /* Private constants ---------------------------------------------------------*/
  69. /* Private macros ------------------------------------------------------------*/
  70. /* Exported types ------------------------------------------------------------*/
  71. /* Exported constants --------------------------------------------------------*/
  72. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  73. * @{
  74. */
  75. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  76. * @{
  77. */
  78. #define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  79. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN
  80. #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN
  81. #define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHB1ENR_FLASHEN
  82. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN
  83. #define LL_AHB1_GRP1_PERIPH_TSC RCC_AHB1ENR_TSCEN
  84. #if defined(DMA2D)
  85. #define LL_AHB1_GRP1_PERIPH_DMA2D RCC_AHB1ENR_DMA2DEN
  86. #endif /* DMA2D */
  87. #define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1SMENR_SRAM1SMEN
  88. /**
  89. * @}
  90. */
  91. /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH
  92. * @{
  93. */
  94. #define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  95. #define LL_AHB2_GRP1_PERIPH_GPIOA RCC_AHB2ENR_GPIOAEN
  96. #define LL_AHB2_GRP1_PERIPH_GPIOB RCC_AHB2ENR_GPIOBEN
  97. #define LL_AHB2_GRP1_PERIPH_GPIOC RCC_AHB2ENR_GPIOCEN
  98. #if defined(GPIOD)
  99. #define LL_AHB2_GRP1_PERIPH_GPIOD RCC_AHB2ENR_GPIODEN
  100. #endif /*GPIOD*/
  101. #if defined(GPIOE)
  102. #define LL_AHB2_GRP1_PERIPH_GPIOE RCC_AHB2ENR_GPIOEEN
  103. #endif /*GPIOE*/
  104. #if defined(GPIOF)
  105. #define LL_AHB2_GRP1_PERIPH_GPIOF RCC_AHB2ENR_GPIOFEN
  106. #endif /* GPIOF */
  107. #if defined(GPIOG)
  108. #define LL_AHB2_GRP1_PERIPH_GPIOG RCC_AHB2ENR_GPIOGEN
  109. #endif /* GPIOG */
  110. #define LL_AHB2_GRP1_PERIPH_GPIOH RCC_AHB2ENR_GPIOHEN
  111. #if defined(GPIOI)
  112. #define LL_AHB2_GRP1_PERIPH_GPIOI RCC_AHB2ENR_GPIOIEN
  113. #endif /* GPIOI */
  114. #if defined(USB_OTG_FS)
  115. #define LL_AHB2_GRP1_PERIPH_OTGFS RCC_AHB2ENR_OTGFSEN
  116. #endif /* USB_OTG_FS */
  117. #define LL_AHB2_GRP1_PERIPH_ADC RCC_AHB2ENR_ADCEN
  118. #if defined(DCMI)
  119. #define LL_AHB2_GRP1_PERIPH_DCMI RCC_AHB2ENR_DCMIEN
  120. #endif /* DCMI */
  121. #if defined(AES)
  122. #define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN
  123. #endif /* AES */
  124. #if defined(HASH)
  125. #define LL_AHB2_GRP1_PERIPH_HASH RCC_AHB2ENR_HASHEN
  126. #endif /* HASH */
  127. #define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN
  128. #define LL_AHB2_GRP1_PERIPH_SRAM2 RCC_AHB2SMENR_SRAM2SMEN
  129. /**
  130. * @}
  131. */
  132. /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH
  133. * @{
  134. */
  135. #define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU
  136. #if defined(FMC_Bank1_R)
  137. #define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN
  138. #endif /* FMC_Bank1_R */
  139. #define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN
  140. /**
  141. * @}
  142. */
  143. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  144. * @{
  145. */
  146. #define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  147. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR1_TIM2EN
  148. #if defined(TIM3)
  149. #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR1_TIM3EN
  150. #endif /* TIM3 */
  151. #if defined(TIM4)
  152. #define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR1_TIM4EN
  153. #endif /* TIM4 */
  154. #if defined(TIM5)
  155. #define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR1_TIM5EN
  156. #endif /* TIM5 */
  157. #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR1_TIM6EN
  158. #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR1_TIM7EN
  159. #if defined(LCD)
  160. #define LL_APB1_GRP1_PERIPH_LCD RCC_APB1ENR1_LCDEN
  161. #endif /* LCD */
  162. #if defined(RCC_APB1ENR1_RTCAPBEN)
  163. #define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR1_RTCAPBEN
  164. #endif /* RCC_APB1ENR1_RTCAPBEN */
  165. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR1_WWDGEN
  166. #if defined(SPI2)
  167. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR1_SPI2EN
  168. #endif /* SPI2 */
  169. #define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR1_SPI3EN
  170. #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR1_USART2EN
  171. #if defined(USART3)
  172. #define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR1_USART3EN
  173. #endif /* USART3 */
  174. #if defined(UART4)
  175. #define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR1_UART4EN
  176. #endif /* UART4 */
  177. #if defined(UART5)
  178. #define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR1_UART5EN
  179. #endif /* UART5 */
  180. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR1_I2C1EN
  181. #if defined(I2C2)
  182. #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR1_I2C2EN
  183. #endif /* I2C2 */
  184. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR1_I2C3EN
  185. #if defined(CRS)
  186. #define LL_APB1_GRP1_PERIPH_CRS RCC_APB1ENR1_CRSEN
  187. #endif /* CRS */
  188. #define LL_APB1_GRP1_PERIPH_CAN1 RCC_APB1ENR1_CAN1EN
  189. #if defined(CAN2)
  190. #define LL_APB1_GRP1_PERIPH_CAN2 RCC_APB1ENR1_CAN2EN
  191. #endif /* CAN2 */
  192. #if defined(USB)
  193. #define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR1_USBFSEN
  194. #endif /* USB */
  195. #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR1_PWREN
  196. #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR1_DAC1EN
  197. #define LL_APB1_GRP1_PERIPH_OPAMP RCC_APB1ENR1_OPAMPEN
  198. #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR1_LPTIM1EN
  199. /**
  200. * @}
  201. */
  202. /** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH APB1 GRP2 PERIPH
  203. * @{
  204. */
  205. #define LL_APB1_GRP2_PERIPH_ALL 0xFFFFFFFFU
  206. #define LL_APB1_GRP2_PERIPH_LPUART1 RCC_APB1ENR2_LPUART1EN
  207. #if defined(I2C4)
  208. #define LL_APB1_GRP2_PERIPH_I2C4 RCC_APB1ENR2_I2C4EN
  209. #endif /* I2C4 */
  210. #if defined(SWPMI1)
  211. #define LL_APB1_GRP2_PERIPH_SWPMI1 RCC_APB1ENR2_SWPMI1EN
  212. #endif /* SWPMI1 */
  213. #define LL_APB1_GRP2_PERIPH_LPTIM2 RCC_APB1ENR2_LPTIM2EN
  214. /**
  215. * @}
  216. */
  217. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  218. * @{
  219. */
  220. #define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  221. #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN
  222. #define LL_APB2_GRP1_PERIPH_FW RCC_APB2ENR_FWEN
  223. #if defined(SDMMC1)
  224. #define LL_APB2_GRP1_PERIPH_SDMMC1 RCC_APB2ENR_SDMMC1EN
  225. #endif /* SDMMC1 */
  226. #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
  227. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
  228. #if defined(TIM8)
  229. #define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN
  230. #endif /* TIM8 */
  231. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
  232. #define LL_APB2_GRP1_PERIPH_TIM15 RCC_APB2ENR_TIM15EN
  233. #define LL_APB2_GRP1_PERIPH_TIM16 RCC_APB2ENR_TIM16EN
  234. #if defined(TIM17)
  235. #define LL_APB2_GRP1_PERIPH_TIM17 RCC_APB2ENR_TIM17EN
  236. #endif /* TIM17 */
  237. #define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN
  238. #if defined(SAI2)
  239. #define LL_APB2_GRP1_PERIPH_SAI2 RCC_APB2ENR_SAI2EN
  240. #endif /* SAI2 */
  241. #if defined(DFSDM1_Channel0)
  242. #define LL_APB2_GRP1_PERIPH_DFSDM1 RCC_APB2ENR_DFSDM1EN
  243. #endif /* DFSDM1_Channel0 */
  244. /**
  245. * @}
  246. */
  247. /** Legacy definitions for compatibility purpose
  248. @cond 0
  249. */
  250. #if defined(DFSDM1_Channel0)
  251. #define LL_APB2_GRP1_PERIPH_DFSDM LL_APB2_GRP1_PERIPH_DFSDM1
  252. #endif /* DFSDM1_Channel0 */
  253. /**
  254. @endcond
  255. */
  256. /**
  257. * @}
  258. */
  259. /* Exported macro ------------------------------------------------------------*/
  260. /* Exported functions --------------------------------------------------------*/
  261. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  262. * @{
  263. */
  264. /** @defgroup BUS_LL_EF_AHB1 AHB1
  265. * @{
  266. */
  267. /**
  268. * @brief Enable AHB1 peripherals clock.
  269. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n
  270. * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n
  271. * AHB1ENR FLASHEN LL_AHB1_GRP1_EnableClock\n
  272. * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock\n
  273. * AHB1ENR TSCEN LL_AHB1_GRP1_EnableClock\n
  274. * AHB1ENR DMA2DEN LL_AHB1_GRP1_EnableClock
  275. * @param Periphs This parameter can be a combination of the following values:
  276. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  277. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  278. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  279. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  280. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  281. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  282. *
  283. * (*) value not defined in all devices.
  284. * @retval None
  285. */
  286. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  287. {
  288. __IO uint32_t tmpreg;
  289. SET_BIT(RCC->AHB1ENR, Periphs);
  290. /* Delay after an RCC peripheral clock enabling */
  291. tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
  292. (void)tmpreg;
  293. }
  294. /**
  295. * @brief Check if AHB1 peripheral clock is enabled or not
  296. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n
  297. * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n
  298. * AHB1ENR FLASHEN LL_AHB1_GRP1_IsEnabledClock\n
  299. * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  300. * AHB1ENR TSCEN LL_AHB1_GRP1_IsEnabledClock\n
  301. * AHB1ENR DMA2DEN LL_AHB1_GRP1_IsEnabledClock
  302. * @param Periphs This parameter can be a combination of the following values:
  303. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  304. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  305. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  306. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  307. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  308. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  309. *
  310. * (*) value not defined in all devices.
  311. * @retval State of Periphs (1 or 0).
  312. */
  313. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  314. {
  315. return (READ_BIT(RCC->AHB1ENR, Periphs) == Periphs);
  316. }
  317. /**
  318. * @brief Disable AHB1 peripherals clock.
  319. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n
  320. * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n
  321. * AHB1ENR FLASHEN LL_AHB1_GRP1_DisableClock\n
  322. * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock\n
  323. * AHB1ENR TSCEN LL_AHB1_GRP1_DisableClock\n
  324. * AHB1ENR DMA2DEN LL_AHB1_GRP1_DisableClock
  325. * @param Periphs This parameter can be a combination of the following values:
  326. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  327. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  328. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  329. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  330. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  331. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  332. *
  333. * (*) value not defined in all devices.
  334. * @retval None
  335. */
  336. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  337. {
  338. CLEAR_BIT(RCC->AHB1ENR, Periphs);
  339. }
  340. /**
  341. * @brief Force AHB1 peripherals reset.
  342. * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n
  343. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n
  344. * AHB1RSTR FLASHRST LL_AHB1_GRP1_ForceReset\n
  345. * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset\n
  346. * AHB1RSTR TSCRST LL_AHB1_GRP1_ForceReset\n
  347. * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ForceReset
  348. * @param Periphs This parameter can be a combination of the following values:
  349. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  350. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  351. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  352. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  353. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  354. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  355. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  356. *
  357. * (*) value not defined in all devices.
  358. * @retval None
  359. */
  360. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  361. {
  362. SET_BIT(RCC->AHB1RSTR, Periphs);
  363. }
  364. /**
  365. * @brief Release AHB1 peripherals reset.
  366. * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n
  367. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n
  368. * AHB1RSTR FLASHRST LL_AHB1_GRP1_ReleaseReset\n
  369. * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n
  370. * AHB1RSTR TSCRST LL_AHB1_GRP1_ReleaseReset\n
  371. * AHB1ENR DMA2DRST LL_AHB1_GRP1_ReleaseReset
  372. * @param Periphs This parameter can be a combination of the following values:
  373. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  374. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  375. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  376. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  377. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  378. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  379. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  380. *
  381. * (*) value not defined in all devices.
  382. * @retval None
  383. */
  384. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  385. {
  386. CLEAR_BIT(RCC->AHB1RSTR, Periphs);
  387. }
  388. /**
  389. * @brief Enable AHB1 peripheral clocks in Sleep and Stop modes
  390. * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  391. * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  392. * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  393. * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  394. * AHB1SMENR CRCSMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  395. * AHB1SMENR TSCSMEN LL_AHB1_GRP1_EnableClockStopSleep\n
  396. * AHB1SMENR DMA2DSMEN LL_AHB1_GRP1_EnableClockStopSleep
  397. * @param Periphs This parameter can be a combination of the following values:
  398. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  399. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  400. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  401. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  402. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  403. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  404. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  405. *
  406. * (*) value not defined in all devices.
  407. * @retval None
  408. */
  409. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockStopSleep(uint32_t Periphs)
  410. {
  411. __IO uint32_t tmpreg;
  412. SET_BIT(RCC->AHB1SMENR, Periphs);
  413. /* Delay after an RCC peripheral clock enabling */
  414. tmpreg = READ_BIT(RCC->AHB1SMENR, Periphs);
  415. (void)tmpreg;
  416. }
  417. /**
  418. * @brief Disable AHB1 peripheral clocks in Sleep and Stop modes
  419. * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  420. * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  421. * AHB1SMENR FLASHSMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  422. * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  423. * AHB1SMENR CRCSMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  424. * AHB1SMENR TSCSMEN LL_AHB1_GRP1_DisableClockStopSleep\n
  425. * AHB1SMENR DMA2DSMEN LL_AHB1_GRP1_DisableClockStopSleep
  426. * @param Periphs This parameter can be a combination of the following values:
  427. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  428. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  429. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  430. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  431. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  432. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  433. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  434. *
  435. * (*) value not defined in all devices.
  436. * @retval None
  437. */
  438. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockStopSleep(uint32_t Periphs)
  439. {
  440. CLEAR_BIT(RCC->AHB1SMENR, Periphs);
  441. }
  442. /**
  443. * @}
  444. */
  445. /** @defgroup BUS_LL_EF_AHB2 AHB2
  446. * @{
  447. */
  448. /**
  449. * @brief Enable AHB2 peripherals clock.
  450. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_EnableClock\n
  451. * AHB2ENR GPIOBEN LL_AHB2_GRP1_EnableClock\n
  452. * AHB2ENR GPIOCEN LL_AHB2_GRP1_EnableClock\n
  453. * AHB2ENR GPIODEN LL_AHB2_GRP1_EnableClock\n
  454. * AHB2ENR GPIOEEN LL_AHB2_GRP1_EnableClock\n
  455. * AHB2ENR GPIOFEN LL_AHB2_GRP1_EnableClock\n
  456. * AHB2ENR GPIOGEN LL_AHB2_GRP1_EnableClock\n
  457. * AHB2ENR GPIOHEN LL_AHB2_GRP1_EnableClock\n
  458. * AHB2ENR GPIOIEN LL_AHB2_GRP1_EnableClock\n
  459. * AHB2ENR OTGFSEN LL_AHB2_GRP1_EnableClock\n
  460. * AHB2ENR ADCEN LL_AHB2_GRP1_EnableClock\n
  461. * AHB2ENR DCMIEN LL_AHB2_GRP1_EnableClock\n
  462. * AHB2ENR AESEN LL_AHB2_GRP1_EnableClock\n
  463. * AHB2ENR HASHEN LL_AHB2_GRP1_EnableClock\n
  464. * AHB2ENR RNGEN LL_AHB2_GRP1_EnableClock
  465. * @param Periphs This parameter can be a combination of the following values:
  466. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  467. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  468. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  469. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  470. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  471. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  472. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  473. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  474. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  475. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  476. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  477. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  478. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  479. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  480. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  481. *
  482. * (*) value not defined in all devices.
  483. * @retval None
  484. */
  485. __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
  486. {
  487. __IO uint32_t tmpreg;
  488. SET_BIT(RCC->AHB2ENR, Periphs);
  489. /* Delay after an RCC peripheral clock enabling */
  490. tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
  491. (void)tmpreg;
  492. }
  493. /**
  494. * @brief Check if AHB2 peripheral clock is enabled or not
  495. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_IsEnabledClock\n
  496. * AHB2ENR GPIOBEN LL_AHB2_GRP1_IsEnabledClock\n
  497. * AHB2ENR GPIOCEN LL_AHB2_GRP1_IsEnabledClock\n
  498. * AHB2ENR GPIODEN LL_AHB2_GRP1_IsEnabledClock\n
  499. * AHB2ENR GPIOEEN LL_AHB2_GRP1_IsEnabledClock\n
  500. * AHB2ENR GPIOFEN LL_AHB2_GRP1_IsEnabledClock\n
  501. * AHB2ENR GPIOGEN LL_AHB2_GRP1_IsEnabledClock\n
  502. * AHB2ENR GPIOHEN LL_AHB2_GRP1_IsEnabledClock\n
  503. * AHB2ENR GPIOIEN LL_AHB2_GRP1_IsEnabledClock\n
  504. * AHB2ENR OTGFSEN LL_AHB2_GRP1_IsEnabledClock\n
  505. * AHB2ENR ADCEN LL_AHB2_GRP1_IsEnabledClock\n
  506. * AHB2ENR DCMIEN LL_AHB2_GRP1_IsEnabledClock\n
  507. * AHB2ENR AESEN LL_AHB2_GRP1_IsEnabledClock\n
  508. * AHB2ENR HASHEN LL_AHB2_GRP1_IsEnabledClock\n
  509. * AHB2ENR RNGEN LL_AHB2_GRP1_IsEnabledClock
  510. * @param Periphs This parameter can be a combination of the following values:
  511. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  512. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  513. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  514. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  515. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  516. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  517. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  518. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  519. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  520. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  521. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  522. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  523. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  524. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  525. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  526. *
  527. * (*) value not defined in all devices.
  528. * @retval State of Periphs (1 or 0).
  529. */
  530. __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
  531. {
  532. return (READ_BIT(RCC->AHB2ENR, Periphs) == Periphs);
  533. }
  534. /**
  535. * @brief Disable AHB2 peripherals clock.
  536. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_DisableClock\n
  537. * AHB2ENR GPIOBEN LL_AHB2_GRP1_DisableClock\n
  538. * AHB2ENR GPIOCEN LL_AHB2_GRP1_DisableClock\n
  539. * AHB2ENR GPIODEN LL_AHB2_GRP1_DisableClock\n
  540. * AHB2ENR GPIOEEN LL_AHB2_GRP1_DisableClock\n
  541. * AHB2ENR GPIOFEN LL_AHB2_GRP1_DisableClock\n
  542. * AHB2ENR GPIOGEN LL_AHB2_GRP1_DisableClock\n
  543. * AHB2ENR GPIOHEN LL_AHB2_GRP1_DisableClock\n
  544. * AHB2ENR GPIOIEN LL_AHB2_GRP1_DisableClock\n
  545. * AHB2ENR OTGFSEN LL_AHB2_GRP1_DisableClock\n
  546. * AHB2ENR ADCEN LL_AHB2_GRP1_DisableClock\n
  547. * AHB2ENR DCMIEN LL_AHB2_GRP1_DisableClock\n
  548. * AHB2ENR AESEN LL_AHB2_GRP1_DisableClock\n
  549. * AHB2ENR HASHEN LL_AHB2_GRP1_DisableClock\n
  550. * AHB2ENR RNGEN LL_AHB2_GRP1_DisableClock
  551. * @param Periphs This parameter can be a combination of the following values:
  552. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  553. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  554. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  555. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  556. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  557. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  558. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  559. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  560. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  561. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  562. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  563. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  564. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  565. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  566. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  567. *
  568. * (*) value not defined in all devices.
  569. * @retval None
  570. */
  571. __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
  572. {
  573. CLEAR_BIT(RCC->AHB2ENR, Periphs);
  574. }
  575. /**
  576. * @brief Force AHB2 peripherals reset.
  577. * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ForceReset\n
  578. * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ForceReset\n
  579. * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ForceReset\n
  580. * AHB2RSTR GPIODRST LL_AHB2_GRP1_ForceReset\n
  581. * AHB2RSTR GPIOERST LL_AHB2_GRP1_ForceReset\n
  582. * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ForceReset\n
  583. * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ForceReset\n
  584. * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ForceReset\n
  585. * AHB2RSTR GPIOIRST LL_AHB2_GRP1_ForceReset\n
  586. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ForceReset\n
  587. * AHB2RSTR ADCRST LL_AHB2_GRP1_ForceReset\n
  588. * AHB2RSTR DCMIRST LL_AHB2_GRP1_ForceReset\n
  589. * AHB2RSTR AESRST LL_AHB2_GRP1_ForceReset\n
  590. * AHB2RSTR HASHRST LL_AHB2_GRP1_ForceReset\n
  591. * AHB2RSTR RNGRST LL_AHB2_GRP1_ForceReset
  592. * @param Periphs This parameter can be a combination of the following values:
  593. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  594. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  595. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  596. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  597. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  598. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  599. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  600. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  601. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  602. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  603. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  604. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  605. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  606. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  607. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  608. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  609. *
  610. * (*) value not defined in all devices.
  611. * @retval None
  612. */
  613. __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
  614. {
  615. SET_BIT(RCC->AHB2RSTR, Periphs);
  616. }
  617. /**
  618. * @brief Release AHB2 peripherals reset.
  619. * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ReleaseReset\n
  620. * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ReleaseReset\n
  621. * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ReleaseReset\n
  622. * AHB2RSTR GPIODRST LL_AHB2_GRP1_ReleaseReset\n
  623. * AHB2RSTR GPIOERST LL_AHB2_GRP1_ReleaseReset\n
  624. * AHB2RSTR GPIOFRST LL_AHB2_GRP1_ReleaseReset\n
  625. * AHB2RSTR GPIOGRST LL_AHB2_GRP1_ReleaseReset\n
  626. * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ReleaseReset\n
  627. * AHB2RSTR GPIOIRST LL_AHB2_GRP1_ReleaseReset\n
  628. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ReleaseReset\n
  629. * AHB2RSTR ADCRST LL_AHB2_GRP1_ReleaseReset\n
  630. * AHB2RSTR DCMIRST LL_AHB2_GRP1_ReleaseReset\n
  631. * AHB2RSTR AESRST LL_AHB2_GRP1_ReleaseReset\n
  632. * AHB2RSTR HASHRST LL_AHB2_GRP1_ReleaseReset\n
  633. * AHB2RSTR RNGRST LL_AHB2_GRP1_ReleaseReset
  634. * @param Periphs This parameter can be a combination of the following values:
  635. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  636. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  637. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  638. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  639. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  640. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  641. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  642. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  643. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  644. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  645. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  646. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  647. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  648. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  649. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  650. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  651. *
  652. * (*) value not defined in all devices.
  653. * @retval None
  654. */
  655. __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
  656. {
  657. CLEAR_BIT(RCC->AHB2RSTR, Periphs);
  658. }
  659. /**
  660. * @brief Enable AHB2 peripheral clocks in Sleep and Stop modes
  661. * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  662. * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  663. * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  664. * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  665. * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  666. * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  667. * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  668. * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  669. * AHB2SMENR GPIOISMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  670. * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  671. * AHB2SMENR OTGFSSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  672. * AHB2SMENR ADCSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  673. * AHB2SMENR DCMISMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  674. * AHB2SMENR AESSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  675. * AHB2SMENR HASHSMEN LL_AHB2_GRP1_EnableClockStopSleep\n
  676. * AHB2SMENR RNGSMEN LL_AHB2_GRP1_EnableClockStopSleep
  677. * @param Periphs This parameter can be a combination of the following values:
  678. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  679. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  680. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  681. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  682. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  683. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  684. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  685. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  686. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  687. * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2
  688. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  689. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  690. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  691. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  692. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  693. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  694. *
  695. * (*) value not defined in all devices.
  696. * @retval None
  697. */
  698. __STATIC_INLINE void LL_AHB2_GRP1_EnableClockStopSleep(uint32_t Periphs)
  699. {
  700. __IO uint32_t tmpreg;
  701. SET_BIT(RCC->AHB2SMENR, Periphs);
  702. /* Delay after an RCC peripheral clock enabling */
  703. tmpreg = READ_BIT(RCC->AHB2SMENR, Periphs);
  704. (void)tmpreg;
  705. }
  706. /**
  707. * @brief Disable AHB2 peripheral clocks in Sleep and Stop modes
  708. * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  709. * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  710. * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  711. * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  712. * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  713. * AHB2SMENR GPIOFSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  714. * AHB2SMENR GPIOGSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  715. * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  716. * AHB2SMENR GPIOISMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  717. * AHB2SMENR SRAM2SMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  718. * AHB2SMENR OTGFSSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  719. * AHB2SMENR ADCSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  720. * AHB2SMENR DCMISMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  721. * AHB2SMENR AESSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  722. * AHB2SMENR HASHSMEN LL_AHB2_GRP1_DisableClockStopSleep\n
  723. * AHB2SMENR RNGSMEN LL_AHB2_GRP1_DisableClockStopSleep
  724. * @param Periphs This parameter can be a combination of the following values:
  725. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  726. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  727. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  728. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  729. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
  730. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
  731. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
  732. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  733. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
  734. * @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2
  735. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  736. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC
  737. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  738. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  739. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  740. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG
  741. *
  742. * (*) value not defined in all devices.
  743. * @retval None
  744. */
  745. __STATIC_INLINE void LL_AHB2_GRP1_DisableClockStopSleep(uint32_t Periphs)
  746. {
  747. CLEAR_BIT(RCC->AHB2SMENR, Periphs);
  748. }
  749. /**
  750. * @}
  751. */
  752. /** @defgroup BUS_LL_EF_AHB3 AHB3
  753. * @{
  754. */
  755. /**
  756. * @brief Enable AHB3 peripherals clock.
  757. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_EnableClock\n
  758. * AHB3ENR QSPIEN LL_AHB3_GRP1_EnableClock
  759. * @param Periphs This parameter can be a combination of the following values:
  760. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  761. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  762. *
  763. * (*) value not defined in all devices.
  764. * @retval None
  765. */
  766. __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
  767. {
  768. __IO uint32_t tmpreg;
  769. SET_BIT(RCC->AHB3ENR, Periphs);
  770. /* Delay after an RCC peripheral clock enabling */
  771. tmpreg = READ_BIT(RCC->AHB3ENR, Periphs);
  772. (void)tmpreg;
  773. }
  774. /**
  775. * @brief Check if AHB3 peripheral clock is enabled or not
  776. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_IsEnabledClock\n
  777. * AHB3ENR QSPIEN LL_AHB3_GRP1_IsEnabledClock
  778. * @param Periphs This parameter can be a combination of the following values:
  779. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  780. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  781. *
  782. * (*) value not defined in all devices.
  783. * @retval State of Periphs (1 or 0).
  784. */
  785. __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
  786. {
  787. return (READ_BIT(RCC->AHB3ENR, Periphs) == Periphs);
  788. }
  789. /**
  790. * @brief Disable AHB3 peripherals clock.
  791. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_DisableClock\n
  792. * AHB3ENR QSPIEN LL_AHB3_GRP1_DisableClock
  793. * @param Periphs This parameter can be a combination of the following values:
  794. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  795. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  796. *
  797. * (*) value not defined in all devices.
  798. * @retval None
  799. */
  800. __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
  801. {
  802. CLEAR_BIT(RCC->AHB3ENR, Periphs);
  803. }
  804. /**
  805. * @brief Force AHB3 peripherals reset.
  806. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ForceReset\n
  807. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ForceReset
  808. * @param Periphs This parameter can be a combination of the following values:
  809. * @arg @ref LL_AHB3_GRP1_PERIPH_ALL
  810. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  811. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  812. *
  813. * (*) value not defined in all devices.
  814. * @retval None
  815. */
  816. __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
  817. {
  818. SET_BIT(RCC->AHB3RSTR, Periphs);
  819. }
  820. /**
  821. * @brief Release AHB3 peripherals reset.
  822. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ReleaseReset\n
  823. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ReleaseReset
  824. * @param Periphs This parameter can be a combination of the following values:
  825. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  826. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  827. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  828. *
  829. * (*) value not defined in all devices.
  830. * @retval None
  831. */
  832. __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
  833. {
  834. CLEAR_BIT(RCC->AHB3RSTR, Periphs);
  835. }
  836. /**
  837. * @brief Enable AHB3 peripheral clocks in Sleep and Stop modes
  838. * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_EnableClockStopSleep\n
  839. * AHB3SMENR QSPISMEN LL_AHB3_GRP1_EnableClockStopSleep
  840. * @param Periphs This parameter can be a combination of the following values:
  841. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  842. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  843. *
  844. * (*) value not defined in all devices.
  845. * @retval None
  846. */
  847. __STATIC_INLINE void LL_AHB3_GRP1_EnableClockStopSleep(uint32_t Periphs)
  848. {
  849. __IO uint32_t tmpreg;
  850. SET_BIT(RCC->AHB3SMENR, Periphs);
  851. /* Delay after an RCC peripheral clock enabling */
  852. tmpreg = READ_BIT(RCC->AHB3SMENR, Periphs);
  853. (void)tmpreg;
  854. }
  855. /**
  856. * @brief Disable AHB3 peripheral clocks in Sleep and Stop modes
  857. * @rmtoll AHB3SMENR FMCSMEN LL_AHB3_GRP1_DisableClockStopSleep\n
  858. * AHB3SMENR QSPISMEN LL_AHB3_GRP1_DisableClockStopSleep
  859. * @param Periphs This parameter can be a combination of the following values:
  860. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  861. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI
  862. *
  863. * (*) value not defined in all devices.
  864. * @retval None
  865. */
  866. __STATIC_INLINE void LL_AHB3_GRP1_DisableClockStopSleep(uint32_t Periphs)
  867. {
  868. CLEAR_BIT(RCC->AHB3SMENR, Periphs);
  869. }
  870. /**
  871. * @}
  872. */
  873. /** @defgroup BUS_LL_EF_APB1 APB1
  874. * @{
  875. */
  876. /**
  877. * @brief Enable APB1 peripherals clock.
  878. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_EnableClock\n
  879. * APB1ENR1 TIM3EN LL_APB1_GRP1_EnableClock\n
  880. * APB1ENR1 TIM4EN LL_APB1_GRP1_EnableClock\n
  881. * APB1ENR1 TIM5EN LL_APB1_GRP1_EnableClock\n
  882. * APB1ENR1 TIM6EN LL_APB1_GRP1_EnableClock\n
  883. * APB1ENR1 TIM7EN LL_APB1_GRP1_EnableClock\n
  884. * APB1ENR1 LCDEN LL_APB1_GRP1_EnableClock\n
  885. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_EnableClock\n
  886. * APB1ENR1 WWDGEN LL_APB1_GRP1_EnableClock\n
  887. * APB1ENR1 SPI2EN LL_APB1_GRP1_EnableClock\n
  888. * APB1ENR1 SPI3EN LL_APB1_GRP1_EnableClock\n
  889. * APB1ENR1 USART2EN LL_APB1_GRP1_EnableClock\n
  890. * APB1ENR1 USART3EN LL_APB1_GRP1_EnableClock\n
  891. * APB1ENR1 UART4EN LL_APB1_GRP1_EnableClock\n
  892. * APB1ENR1 UART5EN LL_APB1_GRP1_EnableClock\n
  893. * APB1ENR1 I2C1EN LL_APB1_GRP1_EnableClock\n
  894. * APB1ENR1 I2C2EN LL_APB1_GRP1_EnableClock\n
  895. * APB1ENR1 I2C3EN LL_APB1_GRP1_EnableClock\n
  896. * APB1ENR1 CRSEN LL_APB1_GRP1_EnableClock\n
  897. * APB1ENR1 CAN1EN LL_APB1_GRP1_EnableClock\n
  898. * APB1ENR1 USBFSEN LL_APB1_GRP1_EnableClock\n
  899. * APB1ENR1 CAN2EN LL_APB1_GRP1_EnableClock\n
  900. * APB1ENR1 PWREN LL_APB1_GRP1_EnableClock\n
  901. * APB1ENR1 DAC1EN LL_APB1_GRP1_EnableClock\n
  902. * APB1ENR1 OPAMPEN LL_APB1_GRP1_EnableClock\n
  903. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_EnableClock
  904. * @param Periphs This parameter can be a combination of the following values:
  905. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  906. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  907. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  908. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  909. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  910. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  911. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  912. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  913. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  914. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  915. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  916. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  917. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  918. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  919. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  920. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  921. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  922. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  923. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  924. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  925. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  926. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  927. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  928. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  929. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  930. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  931. *
  932. * (*) value not defined in all devices.
  933. * @retval None
  934. */
  935. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  936. {
  937. __IO uint32_t tmpreg;
  938. SET_BIT(RCC->APB1ENR1, Periphs);
  939. /* Delay after an RCC peripheral clock enabling */
  940. tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
  941. (void)tmpreg;
  942. }
  943. /**
  944. * @brief Enable APB1 peripherals clock.
  945. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_EnableClock\n
  946. * APB1ENR2 I2C4EN LL_APB1_GRP2_EnableClock\n
  947. * APB1ENR2 SWPMI1EN LL_APB1_GRP2_EnableClock\n
  948. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_EnableClock
  949. * @param Periphs This parameter can be a combination of the following values:
  950. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  951. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  952. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  953. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  954. *
  955. * (*) value not defined in all devices.
  956. * @retval None
  957. */
  958. __STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs)
  959. {
  960. __IO uint32_t tmpreg;
  961. SET_BIT(RCC->APB1ENR2, Periphs);
  962. /* Delay after an RCC peripheral clock enabling */
  963. tmpreg = READ_BIT(RCC->APB1ENR2, Periphs);
  964. (void)tmpreg;
  965. }
  966. /**
  967. * @brief Check if APB1 peripheral clock is enabled or not
  968. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  969. * APB1ENR1 TIM3EN LL_APB1_GRP1_IsEnabledClock\n
  970. * APB1ENR1 TIM4EN LL_APB1_GRP1_IsEnabledClock\n
  971. * APB1ENR1 TIM5EN LL_APB1_GRP1_IsEnabledClock\n
  972. * APB1ENR1 TIM6EN LL_APB1_GRP1_IsEnabledClock\n
  973. * APB1ENR1 TIM7EN LL_APB1_GRP1_IsEnabledClock\n
  974. * APB1ENR1 LCDEN LL_APB1_GRP1_IsEnabledClock\n
  975. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_IsEnabledClock\n
  976. * APB1ENR1 WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  977. * APB1ENR1 SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  978. * APB1ENR1 SPI3EN LL_APB1_GRP1_IsEnabledClock\n
  979. * APB1ENR1 USART2EN LL_APB1_GRP1_IsEnabledClock\n
  980. * APB1ENR1 USART3EN LL_APB1_GRP1_IsEnabledClock\n
  981. * APB1ENR1 UART4EN LL_APB1_GRP1_IsEnabledClock\n
  982. * APB1ENR1 UART5EN LL_APB1_GRP1_IsEnabledClock\n
  983. * APB1ENR1 I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  984. * APB1ENR1 I2C2EN LL_APB1_GRP1_IsEnabledClock\n
  985. * APB1ENR1 I2C3EN LL_APB1_GRP1_IsEnabledClock\n
  986. * APB1ENR1 CRSEN LL_APB1_GRP1_IsEnabledClock\n
  987. * APB1ENR1 CAN1EN LL_APB1_GRP1_IsEnabledClock\n
  988. * APB1ENR1 USBFSEN LL_APB1_GRP1_IsEnabledClock\n
  989. * APB1ENR1 CAN2EN LL_APB1_GRP1_IsEnabledClock\n
  990. * APB1ENR1 PWREN LL_APB1_GRP1_IsEnabledClock\n
  991. * APB1ENR1 DAC1EN LL_APB1_GRP1_IsEnabledClock\n
  992. * APB1ENR1 OPAMPEN LL_APB1_GRP1_IsEnabledClock\n
  993. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_IsEnabledClock
  994. * @param Periphs This parameter can be a combination of the following values:
  995. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  996. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  997. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  998. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  999. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1000. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1001. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1002. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1003. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1004. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1005. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1006. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1007. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1008. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1009. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1010. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1011. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1012. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1013. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1014. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1015. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1016. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1017. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1018. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1019. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1020. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1021. *
  1022. * (*) value not defined in all devices.
  1023. * @retval State of Periphs (1 or 0).
  1024. */
  1025. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  1026. {
  1027. return (READ_BIT(RCC->APB1ENR1, Periphs) == Periphs);
  1028. }
  1029. /**
  1030. * @brief Check if APB1 peripheral clock is enabled or not
  1031. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_IsEnabledClock\n
  1032. * APB1ENR2 I2C4EN LL_APB1_GRP2_IsEnabledClock\n
  1033. * APB1ENR2 SWPMI1EN LL_APB1_GRP2_IsEnabledClock\n
  1034. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_IsEnabledClock
  1035. * @param Periphs This parameter can be a combination of the following values:
  1036. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1037. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1038. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1039. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1040. *
  1041. * (*) value not defined in all devices.
  1042. * @retval State of Periphs (1 or 0).
  1043. */
  1044. __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)
  1045. {
  1046. return (READ_BIT(RCC->APB1ENR2, Periphs) == Periphs);
  1047. }
  1048. /**
  1049. * @brief Disable APB1 peripherals clock.
  1050. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_DisableClock\n
  1051. * APB1ENR1 TIM3EN LL_APB1_GRP1_DisableClock\n
  1052. * APB1ENR1 TIM4EN LL_APB1_GRP1_DisableClock\n
  1053. * APB1ENR1 TIM5EN LL_APB1_GRP1_DisableClock\n
  1054. * APB1ENR1 TIM6EN LL_APB1_GRP1_DisableClock\n
  1055. * APB1ENR1 TIM7EN LL_APB1_GRP1_DisableClock\n
  1056. * APB1ENR1 LCDEN LL_APB1_GRP1_DisableClock\n
  1057. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_DisableClock\n
  1058. * APB1ENR1 WWDGEN LL_APB1_GRP1_DisableClock\n
  1059. * APB1ENR1 SPI2EN LL_APB1_GRP1_DisableClock\n
  1060. * APB1ENR1 SPI3EN LL_APB1_GRP1_DisableClock\n
  1061. * APB1ENR1 USART2EN LL_APB1_GRP1_DisableClock\n
  1062. * APB1ENR1 USART3EN LL_APB1_GRP1_DisableClock\n
  1063. * APB1ENR1 UART4EN LL_APB1_GRP1_DisableClock\n
  1064. * APB1ENR1 UART5EN LL_APB1_GRP1_DisableClock\n
  1065. * APB1ENR1 I2C1EN LL_APB1_GRP1_DisableClock\n
  1066. * APB1ENR1 I2C2EN LL_APB1_GRP1_DisableClock\n
  1067. * APB1ENR1 I2C3EN LL_APB1_GRP1_DisableClock\n
  1068. * APB1ENR1 CRSEN LL_APB1_GRP1_DisableClock\n
  1069. * APB1ENR1 CAN1EN LL_APB1_GRP1_DisableClock\n
  1070. * APB1ENR1 USBFSEN LL_APB1_GRP1_DisableClock\n
  1071. * APB1ENR1 CAN2EN LL_APB1_GRP1_DisableClock\n
  1072. * APB1ENR1 PWREN LL_APB1_GRP1_DisableClock\n
  1073. * APB1ENR1 DAC1EN LL_APB1_GRP1_DisableClock\n
  1074. * APB1ENR1 OPAMPEN LL_APB1_GRP1_DisableClock\n
  1075. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_DisableClock
  1076. * @param Periphs This parameter can be a combination of the following values:
  1077. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1078. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1079. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1080. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  1081. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1082. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1083. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1084. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1085. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1086. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1087. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1088. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1089. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1090. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1091. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1092. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1093. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1094. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1095. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1096. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1097. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1098. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1099. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1100. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1101. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1102. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1103. *
  1104. * (*) value not defined in all devices.
  1105. * @retval None
  1106. */
  1107. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  1108. {
  1109. CLEAR_BIT(RCC->APB1ENR1, Periphs);
  1110. }
  1111. /**
  1112. * @brief Disable APB1 peripherals clock.
  1113. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_DisableClock\n
  1114. * APB1ENR2 I2C4EN LL_APB1_GRP2_DisableClock\n
  1115. * APB1ENR2 SWPMI1EN LL_APB1_GRP2_DisableClock\n
  1116. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_DisableClock
  1117. * @param Periphs This parameter can be a combination of the following values:
  1118. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1119. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1120. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1121. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1122. *
  1123. * (*) value not defined in all devices.
  1124. * @retval None
  1125. */
  1126. __STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs)
  1127. {
  1128. CLEAR_BIT(RCC->APB1ENR2, Periphs);
  1129. }
  1130. /**
  1131. * @brief Force APB1 peripherals reset.
  1132. * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ForceReset\n
  1133. * APB1RSTR1 TIM3RST LL_APB1_GRP1_ForceReset\n
  1134. * APB1RSTR1 TIM4RST LL_APB1_GRP1_ForceReset\n
  1135. * APB1RSTR1 TIM5RST LL_APB1_GRP1_ForceReset\n
  1136. * APB1RSTR1 TIM6RST LL_APB1_GRP1_ForceReset\n
  1137. * APB1RSTR1 TIM7RST LL_APB1_GRP1_ForceReset\n
  1138. * APB1RSTR1 LCDRST LL_APB1_GRP1_ForceReset\n
  1139. * APB1RSTR1 SPI2RST LL_APB1_GRP1_ForceReset\n
  1140. * APB1RSTR1 SPI3RST LL_APB1_GRP1_ForceReset\n
  1141. * APB1RSTR1 USART2RST LL_APB1_GRP1_ForceReset\n
  1142. * APB1RSTR1 USART3RST LL_APB1_GRP1_ForceReset\n
  1143. * APB1RSTR1 UART4RST LL_APB1_GRP1_ForceReset\n
  1144. * APB1RSTR1 UART5RST LL_APB1_GRP1_ForceReset\n
  1145. * APB1RSTR1 I2C1RST LL_APB1_GRP1_ForceReset\n
  1146. * APB1RSTR1 I2C2RST LL_APB1_GRP1_ForceReset\n
  1147. * APB1RSTR1 I2C3RST LL_APB1_GRP1_ForceReset\n
  1148. * APB1RSTR1 CRSRST LL_APB1_GRP1_ForceReset\n
  1149. * APB1RSTR1 CAN1RST LL_APB1_GRP1_ForceReset\n
  1150. * APB1RSTR1 USBFSRST LL_APB1_GRP1_ForceReset\n
  1151. * APB1RSTR1 CAN2RST LL_APB1_GRP1_ForceReset\n
  1152. * APB1RSTR1 PWRRST LL_APB1_GRP1_ForceReset\n
  1153. * APB1RSTR1 DAC1RST LL_APB1_GRP1_ForceReset\n
  1154. * APB1RSTR1 OPAMPRST LL_APB1_GRP1_ForceReset\n
  1155. * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ForceReset
  1156. * @param Periphs This parameter can be a combination of the following values:
  1157. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  1158. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1159. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1160. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1161. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  1162. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1163. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1164. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1165. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1166. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1167. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1168. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1169. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1170. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1171. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1172. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1173. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1174. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1175. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1176. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1177. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1178. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1179. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1180. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1181. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1182. *
  1183. * (*) value not defined in all devices.
  1184. * @retval None
  1185. */
  1186. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  1187. {
  1188. SET_BIT(RCC->APB1RSTR1, Periphs);
  1189. }
  1190. /**
  1191. * @brief Force APB1 peripherals reset.
  1192. * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ForceReset\n
  1193. * APB1RSTR2 I2C4RST LL_APB1_GRP2_ForceReset\n
  1194. * APB1RSTR2 SWPMI1RST LL_APB1_GRP2_ForceReset\n
  1195. * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ForceReset
  1196. * @param Periphs This parameter can be a combination of the following values:
  1197. * @arg @ref LL_APB1_GRP2_PERIPH_ALL
  1198. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1199. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1200. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1201. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1202. *
  1203. * (*) value not defined in all devices.
  1204. * @retval None
  1205. */
  1206. __STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs)
  1207. {
  1208. SET_BIT(RCC->APB1RSTR2, Periphs);
  1209. }
  1210. /**
  1211. * @brief Release APB1 peripherals reset.
  1212. * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ReleaseReset\n
  1213. * APB1RSTR1 TIM3RST LL_APB1_GRP1_ReleaseReset\n
  1214. * APB1RSTR1 TIM4RST LL_APB1_GRP1_ReleaseReset\n
  1215. * APB1RSTR1 TIM5RST LL_APB1_GRP1_ReleaseReset\n
  1216. * APB1RSTR1 TIM6RST LL_APB1_GRP1_ReleaseReset\n
  1217. * APB1RSTR1 TIM7RST LL_APB1_GRP1_ReleaseReset\n
  1218. * APB1RSTR1 LCDRST LL_APB1_GRP1_ReleaseReset\n
  1219. * APB1RSTR1 SPI2RST LL_APB1_GRP1_ReleaseReset\n
  1220. * APB1RSTR1 SPI3RST LL_APB1_GRP1_ReleaseReset\n
  1221. * APB1RSTR1 USART2RST LL_APB1_GRP1_ReleaseReset\n
  1222. * APB1RSTR1 USART3RST LL_APB1_GRP1_ReleaseReset\n
  1223. * APB1RSTR1 UART4RST LL_APB1_GRP1_ReleaseReset\n
  1224. * APB1RSTR1 UART5RST LL_APB1_GRP1_ReleaseReset\n
  1225. * APB1RSTR1 I2C1RST LL_APB1_GRP1_ReleaseReset\n
  1226. * APB1RSTR1 I2C2RST LL_APB1_GRP1_ReleaseReset\n
  1227. * APB1RSTR1 I2C3RST LL_APB1_GRP1_ReleaseReset\n
  1228. * APB1RSTR1 CRSRST LL_APB1_GRP1_ReleaseReset\n
  1229. * APB1RSTR1 CAN1RST LL_APB1_GRP1_ReleaseReset\n
  1230. * APB1RSTR1 USBFSRST LL_APB1_GRP1_ReleaseReset\n
  1231. * APB1RSTR1 CAN2RST LL_APB1_GRP1_ReleaseReset\n
  1232. * APB1RSTR1 PWRRST LL_APB1_GRP1_ReleaseReset\n
  1233. * APB1RSTR1 DAC1RST LL_APB1_GRP1_ReleaseReset\n
  1234. * APB1RSTR1 OPAMPRST LL_APB1_GRP1_ReleaseReset\n
  1235. * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ReleaseReset
  1236. * @param Periphs This parameter can be a combination of the following values:
  1237. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  1238. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1239. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1240. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1241. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  1242. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1243. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1244. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1245. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1246. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1247. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1248. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1249. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1250. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1251. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1252. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1253. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1254. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1255. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1256. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1257. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1258. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1259. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1260. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1261. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1262. *
  1263. * (*) value not defined in all devices.
  1264. * @retval None
  1265. */
  1266. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  1267. {
  1268. CLEAR_BIT(RCC->APB1RSTR1, Periphs);
  1269. }
  1270. /**
  1271. * @brief Release APB1 peripherals reset.
  1272. * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ReleaseReset\n
  1273. * APB1RSTR2 I2C4RST LL_APB1_GRP2_ReleaseReset\n
  1274. * APB1RSTR2 SWPMI1RST LL_APB1_GRP2_ReleaseReset\n
  1275. * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ReleaseReset
  1276. * @param Periphs This parameter can be a combination of the following values:
  1277. * @arg @ref LL_APB1_GRP2_PERIPH_ALL
  1278. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1279. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1280. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1281. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1282. *
  1283. * (*) value not defined in all devices.
  1284. * @retval None
  1285. */
  1286. __STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)
  1287. {
  1288. CLEAR_BIT(RCC->APB1RSTR2, Periphs);
  1289. }
  1290. /**
  1291. * @brief Enable APB1 peripheral clocks in Sleep and Stop modes
  1292. * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1293. * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1294. * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1295. * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1296. * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1297. * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1298. * APB1SMENR1 LCDSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1299. * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1300. * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1301. * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1302. * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1303. * APB1SMENR1 USART2SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1304. * APB1SMENR1 USART3SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1305. * APB1SMENR1 UART4SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1306. * APB1SMENR1 UART5SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1307. * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1308. * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1309. * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1310. * APB1SMENR1 CRSSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1311. * APB1SMENR1 CAN1SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1312. * APB1SMENR1 USBFSSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1313. * APB1SMENR1 CAN2SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1314. * APB1SMENR1 PWRSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1315. * APB1SMENR1 DAC1SMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1316. * APB1SMENR1 OPAMPSMEN LL_APB1_GRP1_EnableClockStopSleep\n
  1317. * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_EnableClockStopSleep
  1318. * @param Periphs This parameter can be a combination of the following values:
  1319. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1320. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1321. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1322. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  1323. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1324. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1325. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1326. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1327. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1328. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1329. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1330. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1331. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1332. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1333. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1334. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1335. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1336. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1337. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1338. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1339. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1340. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1341. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1342. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1343. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1344. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1345. *
  1346. * (*) value not defined in all devices.
  1347. * @retval None
  1348. */
  1349. __STATIC_INLINE void LL_APB1_GRP1_EnableClockStopSleep(uint32_t Periphs)
  1350. {
  1351. __IO uint32_t tmpreg;
  1352. SET_BIT(RCC->APB1SMENR1, Periphs);
  1353. /* Delay after an RCC peripheral clock enabling */
  1354. tmpreg = READ_BIT(RCC->APB1SMENR1, Periphs);
  1355. (void)tmpreg;
  1356. }
  1357. /**
  1358. * @brief Enable APB1 peripheral clocks in Sleep and Stop modes
  1359. * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_EnableClockStopSleep\n
  1360. * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_EnableClockStopSleep\n
  1361. * APB1SMENR2 SWPMI1SMEN LL_APB1_GRP2_EnableClockStopSleep\n
  1362. * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_EnableClockStopSleep
  1363. * @param Periphs This parameter can be a combination of the following values:
  1364. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1365. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1366. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1367. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1368. *
  1369. * (*) value not defined in all devices.
  1370. * @retval None
  1371. */
  1372. __STATIC_INLINE void LL_APB1_GRP2_EnableClockStopSleep(uint32_t Periphs)
  1373. {
  1374. __IO uint32_t tmpreg;
  1375. SET_BIT(RCC->APB1SMENR2, Periphs);
  1376. /* Delay after an RCC peripheral clock enabling */
  1377. tmpreg = READ_BIT(RCC->APB1SMENR2, Periphs);
  1378. (void)tmpreg;
  1379. }
  1380. /**
  1381. * @brief Disable APB1 peripheral clocks in Sleep and Stop modes
  1382. * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1383. * APB1SMENR1 TIM3SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1384. * APB1SMENR1 TIM4SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1385. * APB1SMENR1 TIM5SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1386. * APB1SMENR1 TIM6SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1387. * APB1SMENR1 TIM7SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1388. * APB1SMENR1 LCDSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1389. * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1390. * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1391. * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1392. * APB1SMENR1 SPI3SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1393. * APB1SMENR1 USART2SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1394. * APB1SMENR1 USART3SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1395. * APB1SMENR1 UART4SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1396. * APB1SMENR1 UART5SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1397. * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1398. * APB1SMENR1 I2C2SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1399. * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1400. * APB1SMENR1 CRSSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1401. * APB1SMENR1 CAN1SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1402. * APB1SMENR1 USBFSSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1403. * APB1SMENR1 CAN2SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1404. * APB1SMENR1 PWRSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1405. * APB1SMENR1 DAC1SMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1406. * APB1SMENR1 OPAMPSMEN LL_APB1_GRP1_DisableClockStopSleep\n
  1407. * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_DisableClockStopSleep
  1408. * @param Periphs This parameter can be a combination of the following values:
  1409. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1410. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1411. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1412. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  1413. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  1414. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  1415. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1416. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1417. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1418. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1419. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3
  1420. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1421. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1422. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1423. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1424. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1425. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  1426. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3
  1427. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1428. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1
  1429. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1430. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1431. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1432. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  1433. * @arg @ref LL_APB1_GRP1_PERIPH_OPAMP
  1434. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1435. *
  1436. * (*) value not defined in all devices.
  1437. * @retval None
  1438. */
  1439. __STATIC_INLINE void LL_APB1_GRP1_DisableClockStopSleep(uint32_t Periphs)
  1440. {
  1441. CLEAR_BIT(RCC->APB1SMENR1, Periphs);
  1442. }
  1443. /**
  1444. * @brief Disable APB1 peripheral clocks in Sleep and Stop modes
  1445. * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_DisableClockStopSleep\n
  1446. * APB1SMENR2 I2C4SMEN LL_APB1_GRP2_DisableClockStopSleep\n
  1447. * APB1SMENR2 SWPMI1SMEN LL_APB1_GRP2_DisableClockStopSleep\n
  1448. * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_DisableClockStopSleep
  1449. * @param Periphs This parameter can be a combination of the following values:
  1450. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1
  1451. * @arg @ref LL_APB1_GRP2_PERIPH_I2C4 (*)
  1452. * @arg @ref LL_APB1_GRP2_PERIPH_SWPMI1 (*)
  1453. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1454. *
  1455. * (*) value not defined in all devices.
  1456. * @retval None
  1457. */
  1458. __STATIC_INLINE void LL_APB1_GRP2_DisableClockStopSleep(uint32_t Periphs)
  1459. {
  1460. CLEAR_BIT(RCC->APB1SMENR2, Periphs);
  1461. }
  1462. /**
  1463. * @}
  1464. */
  1465. /** @defgroup BUS_LL_EF_APB2 APB2
  1466. * @{
  1467. */
  1468. /**
  1469. * @brief Enable APB2 peripherals clock.
  1470. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n
  1471. * APB2ENR FWEN LL_APB2_GRP1_EnableClock\n
  1472. * APB2ENR SDMMC1EN LL_APB2_GRP1_EnableClock\n
  1473. * APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n
  1474. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  1475. * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n
  1476. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  1477. * APB2ENR TIM15EN LL_APB2_GRP1_EnableClock\n
  1478. * APB2ENR TIM16EN LL_APB2_GRP1_EnableClock\n
  1479. * APB2ENR TIM17EN LL_APB2_GRP1_EnableClock\n
  1480. * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock\n
  1481. * APB2ENR SAI2EN LL_APB2_GRP1_EnableClock\n
  1482. * APB2ENR DFSDM1EN LL_APB2_GRP1_EnableClock
  1483. * @param Periphs This parameter can be a combination of the following values:
  1484. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1485. * @arg @ref LL_APB2_GRP1_PERIPH_FW
  1486. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1487. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1488. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1489. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1490. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1491. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1492. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1493. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1494. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1495. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1496. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1497. *
  1498. * (*) value not defined in all devices.
  1499. * @retval None
  1500. */
  1501. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  1502. {
  1503. __IO uint32_t tmpreg;
  1504. SET_BIT(RCC->APB2ENR, Periphs);
  1505. /* Delay after an RCC peripheral clock enabling */
  1506. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  1507. (void)tmpreg;
  1508. }
  1509. /**
  1510. * @brief Check if APB2 peripheral clock is enabled or not
  1511. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n
  1512. * APB2ENR FWEN LL_APB2_GRP1_IsEnabledClock\n
  1513. * APB2ENR SDMMC1EN LL_APB2_GRP1_IsEnabledClock\n
  1514. * APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n
  1515. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  1516. * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n
  1517. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  1518. * APB2ENR TIM15EN LL_APB2_GRP1_IsEnabledClock\n
  1519. * APB2ENR TIM16EN LL_APB2_GRP1_IsEnabledClock\n
  1520. * APB2ENR TIM17EN LL_APB2_GRP1_IsEnabledClock\n
  1521. * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock\n
  1522. * APB2ENR SAI2EN LL_APB2_GRP1_IsEnabledClock\n
  1523. * APB2ENR DFSDM1EN LL_APB2_GRP1_IsEnabledClock
  1524. * @param Periphs This parameter can be a combination of the following values:
  1525. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1526. * @arg @ref LL_APB2_GRP1_PERIPH_FW
  1527. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1528. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1529. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1530. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1531. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1532. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1533. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1534. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1535. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1536. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1537. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1538. *
  1539. * (*) value not defined in all devices.
  1540. * @retval State of Periphs (1 or 0).
  1541. */
  1542. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  1543. {
  1544. return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
  1545. }
  1546. /**
  1547. * @brief Disable APB2 peripherals clock.
  1548. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n
  1549. * APB2ENR SDMMC1EN LL_APB2_GRP1_DisableClock\n
  1550. * APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n
  1551. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  1552. * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n
  1553. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  1554. * APB2ENR TIM15EN LL_APB2_GRP1_DisableClock\n
  1555. * APB2ENR TIM16EN LL_APB2_GRP1_DisableClock\n
  1556. * APB2ENR TIM17EN LL_APB2_GRP1_DisableClock\n
  1557. * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock\n
  1558. * APB2ENR SAI2EN LL_APB2_GRP1_DisableClock\n
  1559. * APB2ENR DFSDM1EN LL_APB2_GRP1_DisableClock
  1560. * @param Periphs This parameter can be a combination of the following values:
  1561. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1562. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1563. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1564. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1565. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1566. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1567. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1568. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1569. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1570. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1571. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1572. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1573. *
  1574. * (*) value not defined in all devices.
  1575. * @retval None
  1576. */
  1577. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  1578. {
  1579. CLEAR_BIT(RCC->APB2ENR, Periphs);
  1580. }
  1581. /**
  1582. * @brief Force APB2 peripherals reset.
  1583. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n
  1584. * APB2RSTR SDMMC1RST LL_APB2_GRP1_ForceReset\n
  1585. * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n
  1586. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  1587. * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n
  1588. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  1589. * APB2RSTR TIM15RST LL_APB2_GRP1_ForceReset\n
  1590. * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n
  1591. * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n
  1592. * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n
  1593. * APB2RSTR SAI2RST LL_APB2_GRP1_ForceReset\n
  1594. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ForceReset
  1595. * @param Periphs This parameter can be a combination of the following values:
  1596. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1597. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1598. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1599. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1600. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1601. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1602. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1603. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1604. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1605. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1606. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1607. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1608. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1609. *
  1610. * (*) value not defined in all devices.
  1611. * @retval None
  1612. */
  1613. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  1614. {
  1615. SET_BIT(RCC->APB2RSTR, Periphs);
  1616. }
  1617. /**
  1618. * @brief Release APB2 peripherals reset.
  1619. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n
  1620. * APB2RSTR SDMMC1RST LL_APB2_GRP1_ReleaseReset\n
  1621. * APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n
  1622. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  1623. * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n
  1624. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  1625. * APB2RSTR TIM15RST LL_APB2_GRP1_ReleaseReset\n
  1626. * APB2RSTR TIM16RST LL_APB2_GRP1_ReleaseReset\n
  1627. * APB2RSTR TIM17RST LL_APB2_GRP1_ReleaseReset\n
  1628. * APB2RSTR SAI1RST LL_APB2_GRP1_ReleaseReset\n
  1629. * APB2RSTR SAI2RST LL_APB2_GRP1_ReleaseReset\n
  1630. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ReleaseReset
  1631. * @param Periphs This parameter can be a combination of the following values:
  1632. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1633. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1634. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1635. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1636. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1637. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1638. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1639. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1640. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1641. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1642. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1643. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1644. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1645. *
  1646. * (*) value not defined in all devices.
  1647. * @retval None
  1648. */
  1649. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  1650. {
  1651. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  1652. }
  1653. /**
  1654. * @brief Enable APB2 peripheral clocks in Sleep and Stop modes
  1655. * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1656. * APB2SMENR SDMMC1SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1657. * APB2SMENR TIM1SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1658. * APB2SMENR SPI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1659. * APB2SMENR TIM8SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1660. * APB2SMENR USART1SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1661. * APB2SMENR TIM15SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1662. * APB2SMENR TIM16SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1663. * APB2SMENR TIM17SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1664. * APB2SMENR SAI1SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1665. * APB2SMENR SAI2SMEN LL_APB2_GRP1_EnableClockStopSleep\n
  1666. * APB2SMENR DFSDM1SMEN LL_APB2_GRP1_EnableClockStopSleep
  1667. * @param Periphs This parameter can be a combination of the following values:
  1668. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1669. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1670. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1671. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1672. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1673. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1674. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1675. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1676. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1677. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1678. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1679. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1680. *
  1681. * (*) value not defined in all devices.
  1682. * @retval None
  1683. */
  1684. __STATIC_INLINE void LL_APB2_GRP1_EnableClockStopSleep(uint32_t Periphs)
  1685. {
  1686. __IO uint32_t tmpreg;
  1687. SET_BIT(RCC->APB2SMENR, Periphs);
  1688. /* Delay after an RCC peripheral clock enabling */
  1689. tmpreg = READ_BIT(RCC->APB2SMENR, Periphs);
  1690. (void)tmpreg;
  1691. }
  1692. /**
  1693. * @brief Disable APB2 peripheral clocks in Sleep and Stop modes
  1694. * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1695. * APB2SMENR SDMMC1SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1696. * APB2SMENR TIM1SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1697. * APB2SMENR SPI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1698. * APB2SMENR TIM8SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1699. * APB2SMENR USART1SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1700. * APB2SMENR TIM15SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1701. * APB2SMENR TIM16SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1702. * APB2SMENR TIM17SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1703. * APB2SMENR SAI1SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1704. * APB2SMENR SAI2SMEN LL_APB2_GRP1_DisableClockStopSleep\n
  1705. * APB2SMENR DFSDM1SMEN LL_APB2_GRP1_DisableClockStopSleep
  1706. * @param Periphs This parameter can be a combination of the following values:
  1707. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1708. * @arg @ref LL_APB2_GRP1_PERIPH_SDMMC1 (*)
  1709. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1710. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1711. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1712. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1713. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  1714. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  1715. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1716. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1
  1717. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1718. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1719. *
  1720. * (*) value not defined in all devices.
  1721. * @retval None
  1722. */
  1723. __STATIC_INLINE void LL_APB2_GRP1_DisableClockStopSleep(uint32_t Periphs)
  1724. {
  1725. CLEAR_BIT(RCC->APB2SMENR, Periphs);
  1726. }
  1727. /**
  1728. * @}
  1729. */
  1730. /**
  1731. * @}
  1732. */
  1733. /**
  1734. * @}
  1735. */
  1736. #endif /* defined(RCC) */
  1737. /**
  1738. * @}
  1739. */
  1740. #ifdef __cplusplus
  1741. }
  1742. #endif
  1743. #endif /* __STM32L4xx_LL_BUS_H */
  1744. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/