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.
 
 
 

2381 lines
95 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32wbxx_ll_bus.h
  4. * @author MCD Application Team
  5. * @brief Header file of BUS LL module.
  6. @verbatim
  7. ##### RCC Limitations #####
  8. ==============================================================================
  9. [..]
  10. A delay between an RCC peripheral clock enable and the effective peripheral
  11. enabling should be taken into account in order to manage the peripheral read/write
  12. from/to registers.
  13. (+) This delay depends on the peripheral mapping.
  14. (++) AHB & APB peripherals, 1 dummy read is necessary
  15. [..]
  16. Workarounds:
  17. (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
  18. inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
  19. @endverbatim
  20. ******************************************************************************
  21. * @attention
  22. *
  23. * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  24. * All rights reserved.</center></h2>
  25. *
  26. * This software component is licensed by ST under BSD 3-Clause license,
  27. * the "License"; You may not use this file except in compliance with the
  28. * License. You may obtain a copy of the License at:
  29. * opensource.org/licenses/BSD-3-Clause
  30. *
  31. ******************************************************************************
  32. */
  33. /* Define to prevent recursive inclusion -------------------------------------*/
  34. #ifndef STM32WBxx_LL_BUS_H
  35. #define STM32WBxx_LL_BUS_H
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. /* Includes ------------------------------------------------------------------*/
  40. #include "stm32wbxx.h"
  41. /** @addtogroup STM32WBxx_LL_Driver
  42. * @{
  43. */
  44. #if defined(RCC)
  45. /** @defgroup BUS_LL BUS
  46. * @{
  47. */
  48. /* Private types -------------------------------------------------------------*/
  49. /* Private variables ---------------------------------------------------------*/
  50. /* Private constants ---------------------------------------------------------*/
  51. /* Private macros ------------------------------------------------------------*/
  52. /* Exported types ------------------------------------------------------------*/
  53. /* Exported constants --------------------------------------------------------*/
  54. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  55. * @{
  56. */
  57. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  58. * @{
  59. */
  60. #define LL_AHB1_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  61. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN
  62. #if defined(DMA2)
  63. #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN
  64. #endif
  65. #define LL_AHB1_GRP1_PERIPH_DMAMUX1 RCC_AHB1ENR_DMAMUX1EN
  66. #define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1SMENR_SRAM1SMEN
  67. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN
  68. #if defined(TSC)
  69. #define LL_AHB1_GRP1_PERIPH_TSC RCC_AHB1ENR_TSCEN
  70. #endif
  71. /**
  72. * @}
  73. */
  74. /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH
  75. * @{
  76. */
  77. #define LL_AHB2_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  78. #define LL_AHB2_GRP1_PERIPH_GPIOA RCC_AHB2ENR_GPIOAEN
  79. #define LL_AHB2_GRP1_PERIPH_GPIOB RCC_AHB2ENR_GPIOBEN
  80. #define LL_AHB2_GRP1_PERIPH_GPIOC RCC_AHB2ENR_GPIOCEN
  81. #if defined(GPIOD)
  82. #define LL_AHB2_GRP1_PERIPH_GPIOD RCC_AHB2ENR_GPIODEN
  83. #endif
  84. #define LL_AHB2_GRP1_PERIPH_GPIOE RCC_AHB2ENR_GPIOEEN
  85. #define LL_AHB2_GRP1_PERIPH_GPIOH RCC_AHB2ENR_GPIOHEN
  86. #if defined(ADC_SUPPORT_5_MSPS)
  87. #define LL_AHB2_GRP1_PERIPH_ADC RCC_AHB2ENR_ADCEN
  88. #endif
  89. #if defined(AES1)
  90. #define LL_AHB2_GRP1_PERIPH_AES1 RCC_AHB2ENR_AES1EN
  91. #endif
  92. /**
  93. * @}
  94. */
  95. /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH
  96. * @{
  97. */
  98. #define LL_AHB3_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  99. #if defined(QUADSPI)
  100. #define LL_AHB3_GRP1_PERIPH_QUADSPI RCC_AHB3ENR_QUADSPIEN
  101. #endif
  102. #define LL_AHB3_GRP1_PERIPH_PKA RCC_AHB3ENR_PKAEN
  103. #define LL_AHB3_GRP1_PERIPH_AES2 RCC_AHB3ENR_AES2EN
  104. #define LL_AHB3_GRP1_PERIPH_RNG RCC_AHB3ENR_RNGEN
  105. #define LL_AHB3_GRP1_PERIPH_HSEM RCC_AHB3ENR_HSEMEN
  106. #define LL_AHB3_GRP1_PERIPH_IPCC RCC_AHB3ENR_IPCCEN
  107. #define LL_AHB3_GRP1_PERIPH_SRAM2 RCC_AHB3SMENR_SRAM2SMEN
  108. #define LL_AHB3_GRP1_PERIPH_FLASH RCC_AHB3ENR_FLASHEN
  109. /**
  110. * @}
  111. */
  112. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  113. * @{
  114. */
  115. #define LL_APB1_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  116. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR1_TIM2EN
  117. #if defined(LCD)
  118. #define LL_APB1_GRP1_PERIPH_LCD RCC_APB1ENR1_LCDEN
  119. #endif
  120. #define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR1_RTCAPBEN
  121. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR1_WWDGEN
  122. #if defined(SPI2)
  123. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR1_SPI2EN
  124. #endif
  125. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR1_I2C1EN
  126. #if defined(I2C3)
  127. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR1_I2C3EN
  128. #endif
  129. #if defined(CRS)
  130. #define LL_APB1_GRP1_PERIPH_CRS RCC_APB1ENR1_CRSEN
  131. #endif
  132. #if defined(USB)
  133. #define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR1_USBEN
  134. #endif
  135. #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR1_LPTIM1EN
  136. /**
  137. * @}
  138. */
  139. /** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH APB1 GRP2 PERIPH
  140. * @{
  141. */
  142. #define LL_APB1_GRP2_PERIPH_ALL (0xFFFFFFFFU)
  143. #if defined(LPUART1)
  144. #define LL_APB1_GRP2_PERIPH_LPUART1 RCC_APB1ENR2_LPUART1EN
  145. #endif
  146. #define LL_APB1_GRP2_PERIPH_LPTIM2 RCC_APB1ENR2_LPTIM2EN
  147. /**
  148. * @}
  149. */
  150. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  151. * @{
  152. */
  153. #define LL_APB2_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  154. #if defined(ADC_SUPPORT_2_5_MSPS)
  155. #define LL_APB2_GRP1_PERIPH_ADC RCC_APB2ENR_ADCEN
  156. #endif
  157. #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
  158. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
  159. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
  160. #if defined(TIM16)
  161. #define LL_APB2_GRP1_PERIPH_TIM16 RCC_APB2ENR_TIM16EN
  162. #endif
  163. #if defined(TIM17)
  164. #define LL_APB2_GRP1_PERIPH_TIM17 RCC_APB2ENR_TIM17EN
  165. #endif
  166. #if defined(SAI1)
  167. #define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN
  168. #endif
  169. /**
  170. * @}
  171. */
  172. /** @defgroup BUS_LL_EC_APB3_GRP1_PERIPH APB3 GRP1 PERIPH
  173. * @{
  174. */
  175. #define LL_APB3_GRP1_PERIPH_ALL (0xFFFFFFFFU)
  176. #define LL_APB3_GRP1_PERIPH_RF RCC_APB3RSTR_RFRST
  177. /**
  178. * @}
  179. */
  180. /** @defgroup BUS_LL_EC_C2_AHB1_GRP1_PERIPH C2 AHB1 GRP1 PERIPH
  181. * @{
  182. */
  183. #define LL_C2_AHB1_GRP1_PERIPH_DMA1 RCC_C2AHB1ENR_DMA1EN
  184. #if defined(DMA2)
  185. #define LL_C2_AHB1_GRP1_PERIPH_DMA2 RCC_C2AHB1ENR_DMA2EN
  186. #endif
  187. #define LL_C2_AHB1_GRP1_PERIPH_DMAMUX1 RCC_C2AHB1ENR_DMAMUX1EN
  188. #define LL_C2_AHB1_GRP1_PERIPH_SRAM1 RCC_C2AHB1ENR_SRAM1EN
  189. #define LL_C2_AHB1_GRP1_PERIPH_CRC RCC_C2AHB1ENR_CRCEN
  190. #if defined(TSC)
  191. #define LL_C2_AHB1_GRP1_PERIPH_TSC RCC_C2AHB1ENR_TSCEN
  192. #endif
  193. /**
  194. * @}
  195. */
  196. /** @defgroup BUS_LL_EC_C2_AHB2_GRP1_PERIPH C2 AHB2 GRP1 PERIPH
  197. * @{
  198. */
  199. #define LL_C2_AHB2_GRP1_PERIPH_GPIOA RCC_C2AHB2ENR_GPIOAEN
  200. #define LL_C2_AHB2_GRP1_PERIPH_GPIOB RCC_C2AHB2ENR_GPIOBEN
  201. #define LL_C2_AHB2_GRP1_PERIPH_GPIOC RCC_C2AHB2ENR_GPIOCEN
  202. #if defined(GPIOD)
  203. #define LL_C2_AHB2_GRP1_PERIPH_GPIOD RCC_C2AHB2ENR_GPIODEN
  204. #endif
  205. #define LL_C2_AHB2_GRP1_PERIPH_GPIOE RCC_C2AHB2ENR_GPIOEEN
  206. #define LL_C2_AHB2_GRP1_PERIPH_GPIOH RCC_C2AHB2ENR_GPIOHEN
  207. #if defined(ADC_SUPPORT_5_MSPS)
  208. #define LL_C2_AHB2_GRP1_PERIPH_ADC RCC_C2AHB2ENR_ADCEN
  209. #endif
  210. #if defined(AES1)
  211. #define LL_C2_AHB2_GRP1_PERIPH_AES1 RCC_C2AHB2ENR_AES1EN
  212. #endif
  213. /**
  214. * @}
  215. */
  216. /** @defgroup BUS_LL_EC_C2_AHB3_GRP1_PERIPH C2 AHB3 GRP1 PERIPH
  217. * @{
  218. */
  219. #define LL_C2_AHB3_GRP1_PERIPH_PKA RCC_C2AHB3ENR_PKAEN
  220. #define LL_C2_AHB3_GRP1_PERIPH_AES2 RCC_C2AHB3ENR_AES2EN
  221. #define LL_C2_AHB3_GRP1_PERIPH_RNG RCC_C2AHB3ENR_RNGEN
  222. #define LL_C2_AHB3_GRP1_PERIPH_HSEM RCC_C2AHB3ENR_HSEMEN
  223. #define LL_C2_AHB3_GRP1_PERIPH_IPCC RCC_C2AHB3ENR_IPCCEN
  224. #define LL_C2_AHB3_GRP1_PERIPH_FLASH RCC_C2AHB3ENR_FLASHEN
  225. #define LL_C2_AHB3_GRP1_PERIPH_SRAM2 RCC_C2AHB3SMENR_SRAM2SMEN
  226. /**
  227. * @}
  228. */
  229. /** @defgroup BUS_LL_EC_C2_APB1_GRP1_PERIPH C2 APB1 GRP1 PERIPH
  230. * @{
  231. */
  232. #define LL_C2_APB1_GRP1_PERIPH_TIM2 RCC_C2APB1ENR1_TIM2EN
  233. #if defined(LCD)
  234. #define LL_C2_APB1_GRP1_PERIPH_LCD RCC_C2APB1ENR1_LCDEN
  235. #endif
  236. #define LL_C2_APB1_GRP1_PERIPH_RTCAPB RCC_C2APB1ENR1_RTCAPBEN
  237. #if defined(SPI2)
  238. #define LL_C2_APB1_GRP1_PERIPH_SPI2 RCC_C2APB1ENR1_SPI2EN
  239. #endif
  240. #define LL_C2_APB1_GRP1_PERIPH_I2C1 RCC_C2APB1ENR1_I2C1EN
  241. #if defined(I2C3)
  242. #define LL_C2_APB1_GRP1_PERIPH_I2C3 RCC_C2APB1ENR1_I2C3EN
  243. #define LL_C2_APB1_GRP1_PERIPH_CRS RCC_C2APB1ENR1_CRSEN
  244. #define LL_C2_APB1_GRP1_PERIPH_USB RCC_C2APB1ENR1_USBEN
  245. #endif
  246. #define LL_C2_APB1_GRP1_PERIPH_LPTIM1 RCC_C2APB1ENR1_LPTIM1EN
  247. /**
  248. * @}
  249. */
  250. /** @defgroup BUS_LL_EC_C2_APB1_GRP2_PERIPH C2 APB1 GRP2 PERIPH
  251. * @{
  252. */
  253. #if defined(LPUART1)
  254. #define LL_C2_APB1_GRP2_PERIPH_LPUART1 RCC_C2APB1ENR2_LPUART1EN
  255. #endif
  256. #define LL_C2_APB1_GRP2_PERIPH_LPTIM2 RCC_C2APB1ENR2_LPTIM2EN
  257. /**
  258. * @}
  259. */
  260. /** @defgroup BUS_LL_EC_C2_APB2_GRP1_PERIPH C2 APB2 GRP1 PERIPH
  261. * @{
  262. */
  263. #if defined(ADC_SUPPORT_2_5_MSPS)
  264. #define LL_C2_APB2_GRP1_PERIPH_ADC RCC_C2APB2ENR_ADCEN
  265. #endif
  266. #define LL_C2_APB2_GRP1_PERIPH_TIM1 RCC_C2APB2ENR_TIM1EN
  267. #define LL_C2_APB2_GRP1_PERIPH_SPI1 RCC_C2APB2ENR_SPI1EN
  268. #define LL_C2_APB2_GRP1_PERIPH_USART1 RCC_C2APB2ENR_USART1EN
  269. #if defined(TIM16)
  270. #define LL_C2_APB2_GRP1_PERIPH_TIM16 RCC_C2APB2ENR_TIM16EN
  271. #endif
  272. #if defined(TIM17)
  273. #define LL_C2_APB2_GRP1_PERIPH_TIM17 RCC_C2APB2ENR_TIM17EN
  274. #endif
  275. #if defined(SAI1)
  276. #define LL_C2_APB2_GRP1_PERIPH_SAI1 RCC_C2APB2ENR_SAI1EN
  277. #endif
  278. /**
  279. * @}
  280. */
  281. /** @defgroup BUS_LL_EC_C2_APB3_GRP1_PERIPH C2 APB3 GRP1 PERIPH
  282. * @{
  283. */
  284. #define LL_C2_APB3_GRP1_PERIPH_BLE RCC_C2APB3ENR_BLEEN
  285. #if defined(RCC_802_SUPPORT)
  286. #define LL_C2_APB3_GRP1_PERIPH_802 RCC_C2APB3ENR_802EN
  287. #endif
  288. /**
  289. * @}
  290. */
  291. /**
  292. * @}
  293. */
  294. /* Exported macro ------------------------------------------------------------*/
  295. /* Exported functions --------------------------------------------------------*/
  296. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  297. * @{
  298. */
  299. /** @defgroup BUS_LL_EF_AHB1 AHB1
  300. * @{
  301. */
  302. /**
  303. * @brief Enable AHB1 peripherals clock.
  304. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n
  305. * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n
  306. * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_EnableClock\n
  307. * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock\n
  308. * AHB1ENR TSCEN LL_AHB1_GRP1_EnableClock
  309. * @param Periphs This parameter can be a combination of the following values:
  310. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  311. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  312. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  313. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  314. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  315. * @note (*) Not supported by all the devices
  316. * @retval None
  317. */
  318. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  319. {
  320. __IO uint32_t tmpreg;
  321. SET_BIT(RCC->AHB1ENR, Periphs);
  322. /* Delay after an RCC peripheral clock enabling */
  323. tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
  324. (void)tmpreg;
  325. }
  326. /**
  327. * @brief Check if AHB1 peripheral clock is enabled or not
  328. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n
  329. * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n
  330. * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_IsEnabledClock\n
  331. * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  332. * AHB1ENR TSCEN LL_AHB1_GRP1_IsEnabledClock
  333. * @param Periphs This parameter can be a combination of the following values:
  334. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  335. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  336. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  337. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  338. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  339. * @note (*) Not supported by all the devices
  340. * @retval uint32_t
  341. */
  342. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  343. {
  344. return ((READ_BIT(RCC->AHB1ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  345. }
  346. /**
  347. * @brief Disable AHB1 peripherals clock.
  348. * @rmtoll AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n
  349. * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n
  350. * AHB1ENR DMAMUX1EN LL_AHB1_GRP1_DisableClock\n
  351. * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock\n
  352. * AHB1ENR TSCEN LL_AHB1_GRP1_DisableClock
  353. * @param Periphs This parameter can be a combination of the following values:
  354. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  355. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  356. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  357. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  358. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  359. * @note (*) Not supported by all the devices
  360. * @retval None
  361. */
  362. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  363. {
  364. CLEAR_BIT(RCC->AHB1ENR, Periphs);
  365. }
  366. /**
  367. * @brief Force AHB1 peripherals reset.
  368. * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n
  369. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n
  370. * AHB1RSTR DMAMUX1RST LL_AHB1_GRP1_ForceReset\n
  371. * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset\n
  372. * AHB1RSTR TSCRST LL_AHB1_GRP1_ForceReset
  373. * @param Periphs This parameter can be a combination of the following values:
  374. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  375. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  376. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  377. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  378. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  379. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  380. * @note (*) Not supported by all the devices
  381. * @retval None
  382. */
  383. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  384. {
  385. SET_BIT(RCC->AHB1RSTR, Periphs);
  386. }
  387. /**
  388. * @brief Release AHB1 peripherals reset.
  389. * @rmtoll AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n
  390. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n
  391. * AHB1RSTR DMAMUX1RST LL_AHB1_GRP1_ReleaseReset\n
  392. * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n
  393. * AHB1RSTR TSCRST LL_AHB1_GRP1_ReleaseReset
  394. * @param Periphs This parameter can be a combination of the following values:
  395. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  396. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  397. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  398. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  399. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  400. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  401. * @note (*) Not supported by all the devices
  402. * @retval None
  403. */
  404. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  405. {
  406. CLEAR_BIT(RCC->AHB1RSTR, Periphs);
  407. }
  408. /**
  409. * @brief Enable AHB1 peripherals clock during Low Power (Sleep) mode.
  410. * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_EnableClockSleep\n
  411. * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_EnableClockSleep\n
  412. * AHB1SMENR DMAMUX1SMEN LL_AHB1_GRP1_EnableClockSleep\n
  413. * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_EnableClockSleep\n
  414. * AHB1SMENR CRCSMEN LL_AHB1_GRP1_EnableClockSleep\n
  415. * AHB1SMENR TSCSMEN LL_AHB1_GRP1_EnableClockSleep
  416. * @param Periphs This parameter can be a combination of the following values:
  417. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  418. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  419. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  420. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  421. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  422. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  423. * @note (*) Not supported by all the devices
  424. * @retval None
  425. */
  426. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)
  427. {
  428. __IO uint32_t tmpreg;
  429. SET_BIT(RCC->AHB1SMENR, Periphs);
  430. /* Delay after an RCC peripheral clock enabling */
  431. tmpreg = READ_BIT(RCC->AHB1SMENR, Periphs);
  432. (void)tmpreg;
  433. }
  434. /**
  435. * @brief Disable AHB1 peripherals clock during Low Power (Sleep) mode.
  436. * @rmtoll AHB1SMENR DMA1SMEN LL_AHB1_GRP1_DisableClockSleep\n
  437. * AHB1SMENR DMA2SMEN LL_AHB1_GRP1_DisableClockSleep\n
  438. * AHB1SMENR DMAMUX1SMEN LL_AHB1_GRP1_DisableClockSleep\n
  439. * AHB1SMENR SRAM1SMEN LL_AHB1_GRP1_DisableClockSleep\n
  440. * AHB1SMENR CRCSMEN LL_AHB1_GRP1_DisableClockSleep\n
  441. * AHB1SMENR TSCSMEN LL_AHB1_GRP1_DisableClockSleep
  442. * @param Periphs This parameter can be a combination of the following values:
  443. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  444. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  445. * @arg @ref LL_AHB1_GRP1_PERIPH_DMAMUX1
  446. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  447. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  448. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  449. * @note (*) Not supported by all the devices
  450. * @retval None
  451. */
  452. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)
  453. {
  454. CLEAR_BIT(RCC->AHB1SMENR, Periphs);
  455. }
  456. /**
  457. * @}
  458. */
  459. /** @defgroup BUS_LL_EF_AHB2 AHB2
  460. * @{
  461. */
  462. /**
  463. * @brief Enable AHB2 peripherals clock.
  464. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_EnableClock\n
  465. * AHB2ENR GPIOBEN LL_AHB2_GRP1_EnableClock\n
  466. * AHB2ENR GPIOCEN LL_AHB2_GRP1_EnableClock\n
  467. * AHB2ENR GPIODEN LL_AHB2_GRP1_EnableClock\n
  468. * AHB2ENR GPIOEEN LL_AHB2_GRP1_EnableClock\n
  469. * AHB2ENR GPIOHEN LL_AHB2_GRP1_EnableClock\n
  470. * AHB2ENR ADCEN LL_AHB2_GRP1_EnableClock\n
  471. * AHB2ENR AES1EN LL_AHB2_GRP1_EnableClock
  472. * @param Periphs This parameter can be a combination of the following values:
  473. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  474. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  475. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  476. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  477. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  478. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  479. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  480. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  481. * @note (*) Not supported by all the devices
  482. * @retval None
  483. */
  484. __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
  485. {
  486. __IO uint32_t tmpreg;
  487. SET_BIT(RCC->AHB2ENR, Periphs);
  488. /* Delay after an RCC peripheral clock enabling */
  489. tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
  490. (void)tmpreg;
  491. }
  492. /**
  493. * @brief Check if AHB2 peripheral clock is enabled or not
  494. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_IsEnabledClock\n
  495. * AHB2ENR GPIOBEN LL_AHB2_GRP1_IsEnabledClock\n
  496. * AHB2ENR GPIOCEN LL_AHB2_GRP1_IsEnabledClock\n
  497. * AHB2ENR GPIODEN LL_AHB2_GRP1_IsEnabledClock\n
  498. * AHB2ENR GPIOEEN LL_AHB2_GRP1_IsEnabledClock\n
  499. * AHB2ENR GPIOHEN LL_AHB2_GRP1_IsEnabledClock\n
  500. * AHB2ENR ADCEN LL_AHB2_GRP1_IsEnabledClock\n
  501. * AHB2ENR AES1EN LL_AHB2_GRP1_IsEnabledClock
  502. * @param Periphs This parameter can be a combination of the following values:
  503. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  504. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  505. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  506. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  507. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  508. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  509. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  510. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  511. * @note (*) Not supported by all the devices
  512. * @retval uint32_t
  513. */
  514. __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
  515. {
  516. return ((READ_BIT(RCC->AHB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  517. }
  518. /**
  519. * @brief Disable AHB2 peripherals clock.
  520. * @rmtoll AHB2ENR GPIOAEN LL_AHB2_GRP1_DisableClock\n
  521. * AHB2ENR GPIOBEN LL_AHB2_GRP1_DisableClock\n
  522. * AHB2ENR GPIOCEN LL_AHB2_GRP1_DisableClock\n
  523. * AHB2ENR GPIODEN LL_AHB2_GRP1_DisableClock\n
  524. * AHB2ENR GPIOEEN LL_AHB2_GRP1_DisableClock\n
  525. * AHB2ENR GPIOHEN LL_AHB2_GRP1_DisableClock\n
  526. * AHB2ENR ADCEN LL_AHB2_GRP1_DisableClock\n
  527. * AHB2ENR AES1EN LL_AHB2_GRP1_DisableClock
  528. * @param Periphs This parameter can be a combination of the following values:
  529. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  530. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  531. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  532. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  533. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  534. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  535. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  536. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  537. * @note (*) Not supported by all the devices
  538. * @retval None
  539. */
  540. __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
  541. {
  542. CLEAR_BIT(RCC->AHB2ENR, Periphs);
  543. }
  544. /**
  545. * @brief Force AHB2 peripherals reset.
  546. * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ForceReset\n
  547. * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ForceReset\n
  548. * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ForceReset\n
  549. * AHB2RSTR GPIODRST LL_AHB2_GRP1_ForceReset\n
  550. * AHB2RSTR GPIOERST LL_AHB2_GRP1_ForceReset\n
  551. * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ForceReset\n
  552. * AHB2RSTR ADCRST LL_AHB2_GRP1_ForceReset\n
  553. * AHB2RSTR AES1RST LL_AHB2_GRP1_ForceReset
  554. * @param Periphs This parameter can be a combination of the following values:
  555. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  556. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  557. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  558. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  559. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  560. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  561. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  562. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  563. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  564. * @note (*) Not supported by all the devices
  565. * @retval None
  566. */
  567. __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
  568. {
  569. SET_BIT(RCC->AHB2RSTR, Periphs);
  570. }
  571. /**
  572. * @brief Release AHB2 peripherals reset.
  573. * @rmtoll AHB2RSTR GPIOARST LL_AHB2_GRP1_ReleaseReset\n
  574. * AHB2RSTR GPIOBRST LL_AHB2_GRP1_ReleaseReset\n
  575. * AHB2RSTR GPIOCRST LL_AHB2_GRP1_ReleaseReset\n
  576. * AHB2RSTR GPIODRST LL_AHB2_GRP1_ReleaseReset\n
  577. * AHB2RSTR GPIOERST LL_AHB2_GRP1_ReleaseReset\n
  578. * AHB2RSTR GPIOHRST LL_AHB2_GRP1_ReleaseReset\n
  579. * AHB2RSTR ADCRST LL_AHB2_GRP1_ReleaseReset\n
  580. * AHB2RSTR AES1RST LL_AHB2_GRP1_ReleaseReset
  581. * @param Periphs This parameter can be a combination of the following values:
  582. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  583. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  584. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  585. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  586. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  587. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  588. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  589. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  590. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  591. * @note (*) Not supported by all the devices
  592. * @retval None
  593. */
  594. __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
  595. {
  596. CLEAR_BIT(RCC->AHB2RSTR, Periphs);
  597. }
  598. /**
  599. * @brief Enable AHB2 peripherals clock during Low Power (Sleep) mode.
  600. * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_EnableClockSleep\n
  601. * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_EnableClockSleep\n
  602. * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_EnableClockSleep\n
  603. * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_EnableClockSleep\n
  604. * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_EnableClockSleep\n
  605. * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_EnableClockSleep\n
  606. * AHB2SMENR ADCSMEN LL_AHB2_GRP1_EnableClockSleep\n
  607. * AHB2SMENR AES1SMEN LL_AHB2_GRP1_EnableClockSleep
  608. * @param Periphs This parameter can be a combination of the following values:
  609. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  610. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  611. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  612. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  613. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  614. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  615. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  616. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  617. * @note (*) Not supported by all the devices
  618. * @retval None
  619. */
  620. __STATIC_INLINE void LL_AHB2_GRP1_EnableClockSleep(uint32_t Periphs)
  621. {
  622. __IO uint32_t tmpreg;
  623. SET_BIT(RCC->AHB2SMENR, Periphs);
  624. /* Delay after an RCC peripheral clock enabling */
  625. tmpreg = READ_BIT(RCC->AHB2SMENR, Periphs);
  626. (void)tmpreg;
  627. }
  628. /**
  629. * @brief Disable AHB2 peripherals clock during Low Power (Sleep) mode.
  630. * @rmtoll AHB2SMENR GPIOASMEN LL_AHB2_GRP1_DisableClockSleep\n
  631. * AHB2SMENR GPIOBSMEN LL_AHB2_GRP1_DisableClockSleep\n
  632. * AHB2SMENR GPIOCSMEN LL_AHB2_GRP1_DisableClockSleep\n
  633. * AHB2SMENR GPIODSMEN LL_AHB2_GRP1_DisableClockSleep\n
  634. * AHB2SMENR GPIOESMEN LL_AHB2_GRP1_DisableClockSleep\n
  635. * AHB2SMENR GPIOHSMEN LL_AHB2_GRP1_DisableClockSleep\n
  636. * AHB2SMENR ADCSMEN LL_AHB2_GRP1_DisableClockSleep\n
  637. * AHB2SMENR AES1SMEN LL_AHB2_GRP1_DisableClockSleep
  638. * @param Periphs This parameter can be a combination of the following values:
  639. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
  640. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
  641. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
  642. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD (*)
  643. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE
  644. * @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
  645. * @arg @ref LL_AHB2_GRP1_PERIPH_ADC (*)
  646. * @arg @ref LL_AHB2_GRP1_PERIPH_AES1 (*)
  647. * @note (*) Not supported by all the devices
  648. * @retval None
  649. */
  650. __STATIC_INLINE void LL_AHB2_GRP1_DisableClockSleep(uint32_t Periphs)
  651. {
  652. CLEAR_BIT(RCC->AHB2SMENR, Periphs);
  653. }
  654. /**
  655. * @}
  656. */
  657. /** @defgroup BUS_LL_EF_AHB3 AHB3
  658. * @{
  659. */
  660. /**
  661. * @brief Enable AHB3 peripherals clock.
  662. * @rmtoll AHB3ENR QUADSPIEN LL_AHB3_GRP1_EnableClock\n
  663. * AHB3ENR PKAEN LL_AHB3_GRP1_EnableClock\n
  664. * AHB3ENR AES2EN LL_AHB3_GRP1_EnableClock\n
  665. * AHB3ENR RNGEN LL_AHB3_GRP1_EnableClock\n
  666. * AHB3ENR HSEMEN LL_AHB3_GRP1_EnableClock\n
  667. * AHB3ENR IPCCEN LL_AHB3_GRP1_EnableClock\n
  668. * AHB3ENR FLASHEN LL_AHB3_GRP1_EnableClock
  669. * @param Periphs This parameter can be a combination of the following values:
  670. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  671. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  672. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  673. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  674. * @arg @ref LL_AHB3_GRP1_PERIPH_HSEM
  675. * @arg @ref LL_AHB3_GRP1_PERIPH_IPCC
  676. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  677. * @note (*) Not supported by all the devices
  678. * @retval None
  679. */
  680. __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
  681. {
  682. __IO uint32_t tmpreg;
  683. SET_BIT(RCC->AHB3ENR, Periphs);
  684. /* Delay after an RCC peripheral clock enabling */
  685. tmpreg = READ_BIT(RCC->AHB3ENR, Periphs);
  686. (void)tmpreg;
  687. }
  688. /**
  689. * @brief Check if AHB3 peripheral clock is enabled or not
  690. * @rmtoll AHB3ENR QUADSPIEN LL_AHB3_GRP1_IsEnabledClock\n
  691. * AHB3ENR PKAEN LL_AHB3_GRP1_IsEnabledClock\n
  692. * AHB3ENR AES2EN LL_AHB3_GRP1_IsEnabledClock\n
  693. * AHB3ENR RNGEN LL_AHB3_GRP1_IsEnabledClock\n
  694. * AHB3ENR HSEMEN LL_AHB3_GRP1_IsEnabledClock\n
  695. * AHB3ENR IPCCEN LL_AHB3_GRP1_IsEnabledClock\n
  696. * AHB3ENR FLASHEN LL_AHB3_GRP1_IsEnabledClock
  697. * @param Periphs This parameter can be a combination of the following values:
  698. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  699. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  700. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  701. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  702. * @arg @ref LL_AHB3_GRP1_PERIPH_HSEM
  703. * @arg @ref LL_AHB3_GRP1_PERIPH_IPCC
  704. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  705. * @note (*) Not supported by all the devices
  706. * @retval uint32_t
  707. */
  708. __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
  709. {
  710. return ((READ_BIT(RCC->AHB3ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  711. }
  712. /**
  713. * @brief Disable AHB3 peripherals clock.
  714. * @rmtoll AHB3ENR QUADSPIEN LL_AHB3_GRP1_DisableClock\n
  715. * AHB3ENR PKAEN LL_AHB3_GRP1_DisableClock\n
  716. * AHB3ENR AES2EN LL_AHB3_GRP1_DisableClock\n
  717. * AHB3ENR RNGEN LL_AHB3_GRP1_DisableClock\n
  718. * AHB3ENR HSEMEN LL_AHB3_GRP1_DisableClock\n
  719. * AHB3ENR IPCCEN LL_AHB3_GRP1_DisableClock\n
  720. * AHB3ENR FLASHEN LL_AHB3_GRP1_DisableClock
  721. * @param Periphs This parameter can be a combination of the following values:
  722. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  723. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  724. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  725. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  726. * @arg @ref LL_AHB3_GRP1_PERIPH_HSEM
  727. * @arg @ref LL_AHB3_GRP1_PERIPH_IPCC
  728. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  729. * @note (*) Not supported by all the devices
  730. * @retval None
  731. */
  732. __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
  733. {
  734. CLEAR_BIT(RCC->AHB3ENR, Periphs);
  735. }
  736. /**
  737. * @brief Force AHB3 peripherals reset.
  738. * @rmtoll AHB3RSTR QUADSPIRST LL_AHB3_GRP1_ForceReset\n
  739. * AHB3RSTR PKARST LL_AHB3_GRP1_ForceReset\n
  740. * AHB3RSTR AES2RST LL_AHB3_GRP1_ForceReset\n
  741. * AHB3RSTR RNGRST LL_AHB3_GRP1_ForceReset\n
  742. * AHB3RSTR HSEMRST LL_AHB3_GRP1_ForceReset\n
  743. * AHB3RSTR IPCCRST LL_AHB3_GRP1_ForceReset\n
  744. * AHB3RSTR FLASHRST LL_AHB3_GRP1_ForceReset
  745. * @param Periphs This parameter can be a combination of the following values:
  746. * @arg @ref LL_AHB3_GRP1_PERIPH_ALL
  747. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  748. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  749. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  750. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  751. * @arg @ref LL_AHB3_GRP1_PERIPH_HSEM
  752. * @arg @ref LL_AHB3_GRP1_PERIPH_IPCC
  753. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  754. * @note (*) Not supported by all the devices
  755. * @retval None
  756. */
  757. __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
  758. {
  759. SET_BIT(RCC->AHB3RSTR, Periphs);
  760. }
  761. /**
  762. * @brief Release AHB3 peripherals reset.
  763. * @rmtoll AHB3RSTR QUADSPIRST LL_AHB3_GRP1_ReleaseReset\n
  764. * AHB3RSTR PKARST LL_AHB3_GRP1_ReleaseReset\n
  765. * AHB3RSTR AES2RST LL_AHB3_GRP1_ReleaseReset\n
  766. * AHB3RSTR RNGRST LL_AHB3_GRP1_ReleaseReset\n
  767. * AHB3RSTR HSEMRST LL_AHB3_GRP1_ReleaseReset\n
  768. * AHB3RSTR IPCCRST LL_AHB3_GRP1_ReleaseReset\n
  769. * AHB3RSTR FLASHRST LL_AHB3_GRP1_ReleaseReset
  770. * @param Periphs This parameter can be a combination of the following values:
  771. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  772. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  773. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  774. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  775. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  776. * @arg @ref LL_AHB3_GRP1_PERIPH_HSEM
  777. * @arg @ref LL_AHB3_GRP1_PERIPH_IPCC
  778. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  779. * @note (*) Not supported by all the devices
  780. * @retval None
  781. */
  782. __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
  783. {
  784. CLEAR_BIT(RCC->AHB3RSTR, Periphs);
  785. }
  786. /**
  787. * @brief Enable AHB3 peripherals clock during Low Power (Sleep) mode.
  788. * @rmtoll AHB3SMENR QUADSPISMEN LL_AHB3_GRP1_EnableClockSleep\n
  789. * AHB3SMENR PKASMEN LL_AHB3_GRP1_EnableClockSleep\n
  790. * AHB3SMENR AES2SMEN LL_AHB3_GRP1_EnableClockSleep\n
  791. * AHB3SMENR RNGSMEN LL_AHB3_GRP1_EnableClockSleep\n
  792. * AHB3SMENR SRAM2SMEN LL_AHB3_GRP1_EnableClockSleep\n
  793. * AHB3SMENR FLASHSMEN LL_AHB3_GRP1_EnableClockSleep
  794. * @param Periphs This parameter can be a combination of the following values:
  795. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  796. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  797. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  798. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  799. * @arg @ref LL_AHB3_GRP1_PERIPH_SRAM2
  800. * @note (*) Not supported by all the devices
  801. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  802. * @retval None
  803. */
  804. __STATIC_INLINE void LL_AHB3_GRP1_EnableClockSleep(uint32_t Periphs)
  805. {
  806. __IO uint32_t tmpreg;
  807. SET_BIT(RCC->AHB3SMENR, Periphs);
  808. /* Delay after an RCC peripheral clock enabling */
  809. tmpreg = READ_BIT(RCC->AHB3SMENR, Periphs);
  810. (void)tmpreg;
  811. }
  812. /**
  813. * @brief Disable AHB3 peripherals clock during Low Power (Sleep) mode.
  814. * @rmtoll AHB3SMENR QUADSPISMEN LL_AHB3_GRP1_DisableClockSleep\n
  815. * AHB3SMENR PKASMEN LL_AHB3_GRP1_DisableClockSleep\n
  816. * AHB3SMENR AES2SMEN LL_AHB3_GRP1_DisableClockSleep\n
  817. * AHB3SMENR RNGSMEN LL_AHB3_GRP1_DisableClockSleep\n
  818. * AHB3SMENR SRAM2SMEN LL_AHB3_GRP1_DisableClockSleep\n
  819. * AHB3SMENR FLASHSMEN LL_AHB3_GRP1_DisableClockSleep
  820. * @param Periphs This parameter can be a combination of the following values:
  821. * @arg @ref LL_AHB3_GRP1_PERIPH_QUADSPI (*)
  822. * @arg @ref LL_AHB3_GRP1_PERIPH_PKA
  823. * @arg @ref LL_AHB3_GRP1_PERIPH_AES2
  824. * @arg @ref LL_AHB3_GRP1_PERIPH_RNG
  825. * @arg @ref LL_AHB3_GRP1_PERIPH_SRAM2
  826. * @arg @ref LL_AHB3_GRP1_PERIPH_FLASH
  827. * @note (*) Not supported by all the devices
  828. * @retval None
  829. */
  830. __STATIC_INLINE void LL_AHB3_GRP1_DisableClockSleep(uint32_t Periphs)
  831. {
  832. CLEAR_BIT(RCC->AHB3SMENR, Periphs);
  833. }
  834. /**
  835. * @}
  836. */
  837. /** @defgroup BUS_LL_EF_APB1 APB1
  838. * @{
  839. */
  840. /**
  841. * @brief Enable APB1 peripherals clock.
  842. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_EnableClock\n
  843. * APB1ENR1 LCDEN LL_APB1_GRP1_EnableClock\n
  844. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_EnableClock\n
  845. * APB1ENR1 WWDGEN LL_APB1_GRP1_EnableClock\n
  846. * APB1ENR1 SPI2EN LL_APB1_GRP1_EnableClock\n
  847. * APB1ENR1 I2C1EN LL_APB1_GRP1_EnableClock\n
  848. * APB1ENR1 I2C3EN LL_APB1_GRP1_EnableClock\n
  849. * APB1ENR1 CRSEN LL_APB1_GRP1_EnableClock\n
  850. * APB1ENR1 USBEN LL_APB1_GRP1_EnableClock\n
  851. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_EnableClock
  852. * @param Periphs This parameter can be a combination of the following values:
  853. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  854. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  855. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB
  856. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  857. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  858. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  859. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  860. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  861. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  862. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  863. * @note (*) Not supported by all the devices
  864. * @retval None
  865. */
  866. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  867. {
  868. __IO uint32_t tmpreg;
  869. SET_BIT(RCC->APB1ENR1, Periphs);
  870. /* Delay after an RCC peripheral clock enabling */
  871. tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
  872. (void)tmpreg;
  873. }
  874. /**
  875. * @brief Enable APB1 peripherals clock.
  876. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_EnableClock\n
  877. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_EnableClock
  878. * @param Periphs This parameter can be a combination of the following values:
  879. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  880. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  881. * @note (*) Not supported by all the devices
  882. * @retval None
  883. */
  884. __STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs)
  885. {
  886. __IO uint32_t tmpreg;
  887. SET_BIT(RCC->APB1ENR2, Periphs);
  888. /* Delay after an RCC peripheral clock enabling */
  889. tmpreg = READ_BIT(RCC->APB1ENR2, Periphs);
  890. (void)tmpreg;
  891. }
  892. /**
  893. * @brief Check if APB1 peripheral clock is enabled or not
  894. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  895. * APB1ENR1 LCDEN LL_APB1_GRP1_IsEnabledClock\n
  896. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_IsEnabledClock\n
  897. * APB1ENR1 WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  898. * APB1ENR1 SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  899. * APB1ENR1 I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  900. * APB1ENR1 I2C3EN LL_APB1_GRP1_IsEnabledClock\n
  901. * APB1ENR1 CRSEN LL_APB1_GRP1_IsEnabledClock\n
  902. * APB1ENR1 USBEN LL_APB1_GRP1_IsEnabledClock\n
  903. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_IsEnabledClock
  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_LCD (*)
  907. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB
  908. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  909. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  910. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  911. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  912. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  913. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  914. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  915. * @note (*) Not supported by all the devices
  916. * @retval uint32_t
  917. */
  918. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  919. {
  920. return ((READ_BIT(RCC->APB1ENR1, Periphs) == (Periphs)) ? 1UL : 0UL);
  921. }
  922. /**
  923. * @brief Check if APB1 peripheral clock is enabled or not
  924. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_IsEnabledClock\n
  925. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_IsEnabledClock
  926. * @param Periphs This parameter can be a combination of the following values:
  927. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  928. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  929. * @note (*) Not supported by all the devices
  930. * @retval uint32_t
  931. */
  932. __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)
  933. {
  934. return ((READ_BIT(RCC->APB1ENR2, Periphs) == (Periphs)) ? 1UL : 0UL);
  935. }
  936. /**
  937. * @brief Disable APB1 peripherals clock.
  938. * @rmtoll APB1ENR1 TIM2EN LL_APB1_GRP1_DisableClock\n
  939. * APB1ENR1 LCDEN LL_APB1_GRP1_DisableClock\n
  940. * APB1ENR1 RTCAPBEN LL_APB1_GRP1_DisableClock\n
  941. * APB1ENR1 SPI2EN LL_APB1_GRP1_DisableClock\n
  942. * APB1ENR1 I2C1EN LL_APB1_GRP1_DisableClock\n
  943. * APB1ENR1 I2C3EN LL_APB1_GRP1_DisableClock\n
  944. * APB1ENR1 CRSEN LL_APB1_GRP1_DisableClock\n
  945. * APB1ENR1 USBEN LL_APB1_GRP1_DisableClock\n
  946. * APB1ENR1 LPTIM1EN LL_APB1_GRP1_DisableClock
  947. * @param Periphs This parameter can be a combination of the following values:
  948. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  949. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  950. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB
  951. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  952. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  953. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  954. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  955. * @arg @ref LL_APB1_GRP1_PERIPH_ (*)
  956. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  957. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  958. * @note (*) Not supported by all the devices
  959. * @retval None
  960. */
  961. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  962. {
  963. CLEAR_BIT(RCC->APB1ENR1, Periphs);
  964. }
  965. /**
  966. * @brief Disable APB1 peripherals clock.
  967. * @rmtoll APB1ENR2 LPUART1EN LL_APB1_GRP2_DisableClock\n
  968. * APB1ENR2 LPTIM2EN LL_APB1_GRP2_DisableClock
  969. * @param Periphs This parameter can be a combination of the following values:
  970. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  971. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  972. * @note (*) Not supported by all the devices
  973. * @retval None
  974. */
  975. __STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs)
  976. {
  977. CLEAR_BIT(RCC->APB1ENR2, Periphs);
  978. }
  979. /**
  980. * @brief Force APB1 peripherals reset.
  981. * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ForceReset\n
  982. * APB1RSTR1 LCDRST LL_APB1_GRP1_ForceReset\n
  983. * APB1RSTR1 SPI2RST LL_APB1_GRP1_ForceReset\n
  984. * APB1RSTR1 I2C1RST LL_APB1_GRP1_ForceReset\n
  985. * APB1RSTR1 I2C3RST LL_APB1_GRP1_ForceReset\n
  986. * APB1RSTR1 CRSRST LL_APB1_GRP1_ForceReset\n
  987. * APB1RSTR1 USBRST LL_APB1_GRP1_ForceReset\n
  988. * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ForceReset
  989. * @param Periphs This parameter can be a combination of the following values:
  990. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  991. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  992. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  993. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  994. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  995. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  996. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  997. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  998. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  999. * @note (*) Not supported by all the devices
  1000. * @retval None
  1001. */
  1002. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  1003. {
  1004. SET_BIT(RCC->APB1RSTR1, Periphs);
  1005. }
  1006. /**
  1007. * @brief Force APB1 peripherals reset.
  1008. * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ForceReset\n
  1009. * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ForceReset
  1010. * @param Periphs This parameter can be a combination of the following values:
  1011. * @arg @ref LL_APB1_GRP2_PERIPH_ALL
  1012. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  1013. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1014. * @note (*) Not supported by all the devices
  1015. * @retval None
  1016. */
  1017. __STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs)
  1018. {
  1019. SET_BIT(RCC->APB1RSTR2, Periphs);
  1020. }
  1021. /**
  1022. * @brief Release APB1 peripherals reset.
  1023. * @rmtoll APB1RSTR1 TIM2RST LL_APB1_GRP1_ReleaseReset\n
  1024. * APB1RSTR1 LCDRST LL_APB1_GRP1_ReleaseReset\n
  1025. * APB1RSTR1 SPI2RST LL_APB1_GRP1_ReleaseReset\n
  1026. * APB1RSTR1 I2C1RST LL_APB1_GRP1_ReleaseReset\n
  1027. * APB1RSTR1 I2C3RST LL_APB1_GRP1_ReleaseReset\n
  1028. * APB1RSTR1 CRSRST LL_APB1_GRP1_ReleaseReset\n
  1029. * APB1RSTR1 USBRST LL_APB1_GRP1_ReleaseReset\n
  1030. * APB1RSTR1 LPTIM1RST LL_APB1_GRP1_ReleaseReset
  1031. * @param Periphs This parameter can be a combination of the following values:
  1032. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  1033. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1034. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1035. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1036. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1037. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1038. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1039. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1040. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1041. * @note (*) Not supported by all the devices
  1042. * @retval None
  1043. */
  1044. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  1045. {
  1046. CLEAR_BIT(RCC->APB1RSTR1, Periphs);
  1047. }
  1048. /**
  1049. * @brief Release APB1 peripherals reset.
  1050. * @rmtoll APB1RSTR2 LPUART1RST LL_APB1_GRP2_ReleaseReset\n
  1051. * APB1RSTR2 LPTIM2RST LL_APB1_GRP2_ReleaseReset
  1052. * @param Periphs This parameter can be a combination of the following values:
  1053. * @arg @ref LL_APB1_GRP2_PERIPH_ALL
  1054. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  1055. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1056. * @note (*) Not supported by all the devices
  1057. * @retval None
  1058. */
  1059. __STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)
  1060. {
  1061. CLEAR_BIT(RCC->APB1RSTR2, Periphs);
  1062. }
  1063. /**
  1064. * @brief Enable APB1 peripherals clock during Low Power (Sleep) mode.
  1065. * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_EnableClockSleep\n
  1066. * APB1SMENR1 LCDSMEN LL_APB1_GRP1_EnableClockSleep\n
  1067. * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_EnableClockSleep\n
  1068. * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_EnableClockSleep\n
  1069. * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_EnableClockSleep\n
  1070. * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_EnableClockSleep\n
  1071. * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_EnableClockSleep\n
  1072. * APB1SMENR1 CRSSMEN LL_APB1_GRP1_EnableClockSleep\n
  1073. * APB1SMENR1 USBSMEN LL_APB1_GRP1_EnableClockSleep\n
  1074. * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_EnableClockSleep
  1075. * @param Periphs This parameter can be a combination of the following values:
  1076. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1077. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1078. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB
  1079. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1080. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1081. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1082. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1083. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1084. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1085. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1086. * @note (*) Not supported by all the devices
  1087. * @retval None
  1088. */
  1089. __STATIC_INLINE void LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs)
  1090. {
  1091. __IO uint32_t tmpreg;
  1092. SET_BIT(RCC->APB1SMENR1, Periphs);
  1093. /* Delay after an RCC peripheral clock enabling */
  1094. tmpreg = READ_BIT(RCC->APB1SMENR1, Periphs);
  1095. (void)tmpreg;
  1096. }
  1097. /**
  1098. * @brief Enable APB1 peripherals clock during Low Power (Sleep) mode.
  1099. * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_EnableClockSleep\n
  1100. * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_EnableClockSleep
  1101. * @param Periphs This parameter can be a combination of the following values:
  1102. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  1103. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1104. * @note (*) Not supported by all the devices
  1105. * @retval None
  1106. */
  1107. __STATIC_INLINE void LL_APB1_GRP2_EnableClockSleep(uint32_t Periphs)
  1108. {
  1109. __IO uint32_t tmpreg;
  1110. SET_BIT(RCC->APB1SMENR2, Periphs);
  1111. /* Delay after an RCC peripheral clock enabling */
  1112. tmpreg = READ_BIT(RCC->APB1SMENR2, Periphs);
  1113. (void)tmpreg;
  1114. }
  1115. /**
  1116. * @brief Disable APB1 peripherals clock during Low Power (Sleep) mode.
  1117. * @rmtoll APB1SMENR1 TIM2SMEN LL_APB1_GRP1_DisableClockSleep\n
  1118. * APB1SMENR1 LCDSMEN LL_APB1_GRP1_DisableClockSleep\n
  1119. * APB1SMENR1 RTCAPBSMEN LL_APB1_GRP1_DisableClockSleep\n
  1120. * APB1SMENR1 WWDGSMEN LL_APB1_GRP1_DisableClockSleep\n
  1121. * APB1SMENR1 SPI2SMEN LL_APB1_GRP1_DisableClockSleep\n
  1122. * APB1SMENR1 I2C1SMEN LL_APB1_GRP1_DisableClockSleep\n
  1123. * APB1SMENR1 I2C3SMEN LL_APB1_GRP1_DisableClockSleep\n
  1124. * APB1SMENR1 CRSSMEN LL_APB1_GRP1_DisableClockSleep\n
  1125. * APB1SMENR1 USBSMEN LL_APB1_GRP1_DisableClockSleep\n
  1126. * APB1SMENR1 LPTIM1SMEN LL_APB1_GRP1_DisableClockSleep
  1127. * @param Periphs This parameter can be a combination of the following values:
  1128. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  1129. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  1130. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB
  1131. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1132. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1133. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1134. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1135. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  1136. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  1137. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  1138. * @note (*) Not supported by all the devices
  1139. * @retval None
  1140. */
  1141. __STATIC_INLINE void LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs)
  1142. {
  1143. CLEAR_BIT(RCC->APB1SMENR1, Periphs);
  1144. }
  1145. /**
  1146. * @brief Disable APB1 peripherals clock during Low Power (Sleep) mode.
  1147. * @rmtoll APB1SMENR2 LPUART1SMEN LL_APB1_GRP2_DisableClockSleep\n
  1148. * APB1SMENR2 LPTIM2SMEN LL_APB1_GRP2_DisableClockSleep
  1149. * @param Periphs This parameter can be a combination of the following values:
  1150. * @arg @ref LL_APB1_GRP2_PERIPH_LPUART1 (*)
  1151. * @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
  1152. * @note (*) Not supported by all the devices
  1153. * @retval None
  1154. */
  1155. __STATIC_INLINE void LL_APB1_GRP2_DisableClockSleep(uint32_t Periphs)
  1156. {
  1157. CLEAR_BIT(RCC->APB1SMENR2, Periphs);
  1158. }
  1159. /**
  1160. * @}
  1161. */
  1162. /** @defgroup BUS_LL_EF_APB2 APB2
  1163. * @{
  1164. */
  1165. /**
  1166. * @brief Enable APB2 peripherals clock.
  1167. * @rmtoll APB2ENR ADCEN LL_APB2_GRP1_EnableClock\n
  1168. * APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n
  1169. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  1170. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  1171. * APB2ENR TIM16EN LL_APB2_GRP1_EnableClock\n
  1172. * APB2ENR TIM17EN LL_APB2_GRP1_EnableClock\n
  1173. * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock
  1174. * @param Periphs This parameter can be a combination of the following values:
  1175. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1176. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1177. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1178. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1179. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1180. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1181. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1182. * @note (*) Not supported by all the devices
  1183. * @retval None
  1184. */
  1185. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  1186. {
  1187. __IO uint32_t tmpreg;
  1188. SET_BIT(RCC->APB2ENR, Periphs);
  1189. /* Delay after an RCC peripheral clock enabling */
  1190. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  1191. (void)tmpreg;
  1192. }
  1193. /**
  1194. * @brief Check if APB2 peripheral clock is enabled or not
  1195. * @rmtoll APB2ENR ADCEN LL_APB2_GRP1_IsEnabledClock\n
  1196. * APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n
  1197. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  1198. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  1199. * APB2ENR TIM16EN LL_APB2_GRP1_IsEnabledClock\n
  1200. * APB2ENR TIM17EN LL_APB2_GRP1_IsEnabledClock\n
  1201. * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock
  1202. * @param Periphs This parameter can be a combination of the following values:
  1203. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1204. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1205. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1206. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1207. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1208. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1209. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1210. * @note (*) Not supported by all the devices
  1211. * @retval uint32_t
  1212. */
  1213. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  1214. {
  1215. return ((READ_BIT(RCC->APB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  1216. }
  1217. /**
  1218. * @brief Disable APB2 peripherals clock.
  1219. * @rmtoll APB2ENR ADCEN LL_APB2_GRP1_DisableClock\n
  1220. * APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n
  1221. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  1222. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  1223. * APB2ENR TIM16EN LL_APB2_GRP1_DisableClock\n
  1224. * APB2ENR TIM17EN LL_APB2_GRP1_DisableClock\n
  1225. * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock
  1226. * @param Periphs This parameter can be a combination of the following values:
  1227. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1228. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1229. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1230. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1231. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1232. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1233. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1234. * @note (*) Not supported by all the devices
  1235. * @retval None
  1236. */
  1237. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  1238. {
  1239. CLEAR_BIT(RCC->APB2ENR, Periphs);
  1240. }
  1241. /**
  1242. * @brief Force APB2 peripherals reset.
  1243. * @rmtoll APB2RSTR ADCRST LL_APB2_GRP1_ForceReset\n
  1244. * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n
  1245. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  1246. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  1247. * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n
  1248. * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n
  1249. * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset
  1250. * @param Periphs This parameter can be a combination of the following values:
  1251. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1252. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1253. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1254. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1255. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1256. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1257. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1258. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1259. * @note (*) Not supported by all the devices
  1260. * @retval None
  1261. */
  1262. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  1263. {
  1264. SET_BIT(RCC->APB2RSTR, Periphs);
  1265. }
  1266. /**
  1267. * @brief Release APB2 peripherals reset.
  1268. * @rmtoll APB2RSTR ADCRST LL_APB2_GRP1_ReleaseReset\n
  1269. * APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n
  1270. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  1271. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  1272. * APB2RSTR TIM16RST LL_APB2_GRP1_ReleaseReset\n
  1273. * APB2RSTR TIM17RST LL_APB2_GRP1_ReleaseReset\n
  1274. * APB2RSTR SAI1RST LL_APB2_GRP1_ReleaseReset
  1275. * @param Periphs This parameter can be a combination of the following values:
  1276. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1277. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1278. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1279. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1280. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1281. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1282. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1283. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1284. * @note (*) Not supported by all the devices
  1285. * @retval None
  1286. */
  1287. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  1288. {
  1289. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  1290. }
  1291. /**
  1292. * @brief Enable APB2 peripherals clock during Low Power (Sleep) mode.
  1293. * @rmtoll APB2SMENR ADCSMEN LL_APB2_GRP1_EnableClockSleep\n
  1294. * APB2SMENR TIM1SMEN LL_APB2_GRP1_EnableClockSleep\n
  1295. * APB2SMENR SPI1SMEN LL_APB2_GRP1_EnableClockSleep\n
  1296. * APB2SMENR USART1SMEN LL_APB2_GRP1_EnableClockSleep\n
  1297. * APB2SMENR TIM16SMEN LL_APB2_GRP1_EnableClockSleep\n
  1298. * APB2SMENR TIM17SMEN LL_APB2_GRP1_EnableClockSleep\n
  1299. * APB2SMENR SAI1SMEN LL_APB2_GRP1_EnableClockSleep
  1300. * @param Periphs This parameter can be a combination of the following values:
  1301. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1302. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1303. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1304. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1305. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1306. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1307. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1308. * @note (*) Not supported by all the devices
  1309. * @retval None
  1310. */
  1311. __STATIC_INLINE void LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs)
  1312. {
  1313. __IO uint32_t tmpreg;
  1314. SET_BIT(RCC->APB2SMENR, Periphs);
  1315. /* Delay after an RCC peripheral clock enabling */
  1316. tmpreg = READ_BIT(RCC->APB2SMENR, Periphs);
  1317. (void)tmpreg;
  1318. }
  1319. /**
  1320. * @brief Disable APB2 peripherals clock during Low Power (Sleep) mode.
  1321. * @rmtoll APB2SMENR ADCSMEN LL_APB2_GRP1_DisableClockSleep\n
  1322. * APB2SMENR TIM1SMEN LL_APB2_GRP1_DisableClockSleep\n
  1323. * APB2SMENR SPI1SMEN LL_APB2_GRP1_DisableClockSleep\n
  1324. * APB2SMENR USART1SMEN LL_APB2_GRP1_DisableClockSleep\n
  1325. * APB2SMENR TIM16SMEN LL_APB2_GRP1_DisableClockSleep\n
  1326. * APB2SMENR TIM17SMEN LL_APB2_GRP1_DisableClockSleep\n
  1327. * APB2SMENR SAI1SMEN LL_APB2_GRP1_DisableClockSleep
  1328. * @param Periphs This parameter can be a combination of the following values:
  1329. * @arg @ref LL_APB2_GRP1_PERIPH_ADC (*)
  1330. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1331. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1332. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1333. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
  1334. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
  1335. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1336. * @note (*) Not supported by all the devices
  1337. * @retval None
  1338. */
  1339. __STATIC_INLINE void LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs)
  1340. {
  1341. CLEAR_BIT(RCC->APB2SMENR, Periphs);
  1342. }
  1343. /**
  1344. * @}
  1345. */
  1346. /** @defgroup BUS_LL_EF_APB3 APB3
  1347. * @{
  1348. */
  1349. /**
  1350. * @brief Force APB3 peripherals reset.
  1351. * @rmtoll APB3RSTR RFRST LL_APB3_GRP1_ForceReset
  1352. * @param Periphs This parameter can be a combination of the following values:
  1353. * @arg @ref LL_APB3_GRP1_PERIPH_RF
  1354. * @retval None
  1355. */
  1356. __STATIC_INLINE void LL_APB3_GRP1_ForceReset(uint32_t Periphs)
  1357. {
  1358. SET_BIT(RCC->APB3RSTR, Periphs);
  1359. }
  1360. /**
  1361. * @brief Release APB3 peripherals reset.
  1362. * @rmtoll APB3RSTR RFRST LL_APB3_GRP1_ReleaseReset
  1363. * @param Periphs This parameter can be a combination of the following values:
  1364. * @arg @ref LL_APB3_GRP1_PERIPH_RF
  1365. * @retval None
  1366. */
  1367. __STATIC_INLINE void LL_APB3_GRP1_ReleaseReset(uint32_t Periphs)
  1368. {
  1369. CLEAR_BIT(RCC->APB3RSTR, Periphs);
  1370. }
  1371. /**
  1372. * @}
  1373. */
  1374. /** @defgroup BUS_LL_EF_C2_AHB1 C2 AHB1
  1375. * @{
  1376. */
  1377. /**
  1378. * @brief Enable C2AHB1 peripherals clock.
  1379. * @rmtoll C2AHB1ENR DMA1EN LL_C2_AHB1_GRP1_EnableClock\n
  1380. * C2AHB1ENR DMA2EN LL_C2_AHB1_GRP1_EnableClock\n
  1381. * C2AHB1ENR DMAMUX1EN LL_C2_AHB1_GRP1_EnableClock\n
  1382. * C2AHB1ENR SRAM1EN LL_C2_AHB1_GRP1_EnableClock\n
  1383. * C2AHB1ENR CRCEN LL_C2_AHB1_GRP1_EnableClock\n
  1384. * C2AHB1ENR TSCEN LL_C2_AHB1_GRP1_EnableClock
  1385. * @param Periphs This parameter can be a combination of the following values:
  1386. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA1
  1387. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA2 (*)
  1388. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMAMUX1
  1389. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_SRAM1
  1390. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_CRC
  1391. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_TSC
  1392. * @note (*) Not supported by all the devices
  1393. * @retval None
  1394. */
  1395. __STATIC_INLINE void LL_C2_AHB1_GRP1_EnableClock(uint32_t Periphs)
  1396. {
  1397. __IO uint32_t tmpreg;
  1398. SET_BIT(RCC->C2AHB1ENR, Periphs);
  1399. /* Delay after an RCC peripheral clock enabling */
  1400. tmpreg = READ_BIT(RCC->C2AHB1ENR, Periphs);
  1401. (void)tmpreg;
  1402. }
  1403. /**
  1404. * @brief Check if C2AHB1 peripheral clock is enabled or not
  1405. * @rmtoll C2AHB1ENR DMA1EN LL_C2_AHB1_GRP1_IsEnabledClock\n
  1406. * C2AHB1ENR DMA2EN LL_C2_AHB1_GRP1_IsEnabledClock\n
  1407. * C2AHB1ENR DMAMUX1EN LL_C2_AHB1_GRP1_IsEnabledClock\n
  1408. * C2AHB1ENR SRAM1EN LL_C2_AHB1_GRP1_IsEnabledClock\n
  1409. * C2AHB1ENR CRCEN LL_C2_AHB1_GRP1_IsEnabledClock\n
  1410. * C2AHB1ENR TSCEN LL_C2_AHB1_GRP1_IsEnabledClock
  1411. * @param Periphs This parameter can be a combination of the following values:
  1412. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA1
  1413. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA2 (*)
  1414. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMAMUX1
  1415. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_SRAM1
  1416. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_CRC
  1417. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_TSC
  1418. * @note (*) Not supported by all the devices
  1419. * @retval uint32_t
  1420. */
  1421. __STATIC_INLINE uint32_t LL_C2_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  1422. {
  1423. return ((READ_BIT(RCC->C2AHB1ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  1424. }
  1425. /**
  1426. * @brief Disable C2AHB1 peripherals clock.
  1427. * @rmtoll C2AHB1ENR DMA1EN LL_C2_AHB1_GRP1_DisableClock\n
  1428. * C2AHB1ENR DMA2EN LL_C2_AHB1_GRP1_DisableClock\n
  1429. * C2AHB1ENR DMAMUX1EN LL_C2_AHB1_GRP1_DisableClock\n
  1430. * C2AHB1ENR SRAM1EN LL_C2_AHB1_GRP1_DisableClock\n
  1431. * C2AHB1ENR CRCEN LL_C2_AHB1_GRP1_DisableClock\n
  1432. * C2AHB1ENR TSCEN LL_C2_AHB1_GRP1_DisableClock
  1433. * @param Periphs This parameter can be a combination of the following values:
  1434. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA1
  1435. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA2 (*)
  1436. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMAMUX1
  1437. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_SRAM1
  1438. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_CRC
  1439. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_TSC
  1440. * @note (*) Not supported by all the devices
  1441. * @retval None
  1442. */
  1443. __STATIC_INLINE void LL_C2_AHB1_GRP1_DisableClock(uint32_t Periphs)
  1444. {
  1445. CLEAR_BIT(RCC->C2AHB1ENR, Periphs);
  1446. }
  1447. /**
  1448. * @brief Enable C2AHB1 peripherals clock during Low Power (Sleep) mode.
  1449. * @rmtoll C2AHB1SMENR DMA1SMEN LL_C2_AHB1_GRP1_EnableClockSleep\n
  1450. * C2AHB1SMENR DMA2SMEN LL_C2_AHB1_GRP1_EnableClockSleep\n
  1451. * C2AHB1SMENR DMAMUX1SMEN LL_C2_AHB1_GRP1_EnableClockSleep\n
  1452. * C2AHB1ENR SRAM1SMEN LL_C2_AHB1_GRP1_EnableClockSleep\n
  1453. * C2AHB1SMENR CRCSMEN LL_C2_AHB1_GRP1_EnableClockSleep\n
  1454. * C2AHB1SMENR TSCSMEN LL_C2_AHB1_GRP1_EnableClockSleep
  1455. * @param Periphs This parameter can be a combination of the following values:
  1456. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA1
  1457. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA2 (*)
  1458. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMAMUX1
  1459. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_SRAM1
  1460. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_CRC
  1461. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_TSC
  1462. * @note (*) Not supported by all the devices
  1463. * @retval None
  1464. */
  1465. __STATIC_INLINE void LL_C2_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)
  1466. {
  1467. __IO uint32_t tmpreg;
  1468. SET_BIT(RCC->C2AHB1SMENR, Periphs);
  1469. /* Delay after an RCC peripheral clock enabling */
  1470. tmpreg = READ_BIT(RCC->C2AHB1SMENR, Periphs);
  1471. (void)tmpreg;
  1472. }
  1473. /**
  1474. * @brief Disable C2AHB1 peripherals clock during Low Power (Sleep) mode.
  1475. * @rmtoll C2AHB1SMENR DMA1SMEN LL_C2_AHB1_GRP1_DisableClockSleep\n
  1476. * C2AHB1SMENR DMA2SMEN LL_C2_AHB1_GRP1_DisableClockSleep\n
  1477. * C2AHB1SMENR DMAMUX1SMEN LL_C2_AHB1_GRP1_DisableClockSleep\n
  1478. * C2AHB1ENR SRAM1SMEN LL_C2_AHB1_GRP1_DisableClockSleep\n
  1479. * C2AHB1SMENR CRCSMEN LL_C2_AHB1_GRP1_DisableClockSleep\n
  1480. * C2AHB1SMENR TSCSMEN LL_C2_AHB1_GRP1_DisableClockSleep
  1481. * @param Periphs This parameter can be a combination of the following values:
  1482. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA1
  1483. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMA2 (*)
  1484. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_DMAMUX1
  1485. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_SRAM1
  1486. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_CRC
  1487. * @arg @ref LL_C2_AHB1_GRP1_PERIPH_TSC
  1488. * @note (*) Not supported by all the devices
  1489. * @retval None
  1490. */
  1491. __STATIC_INLINE void LL_C2_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)
  1492. {
  1493. CLEAR_BIT(RCC->C2AHB1SMENR, Periphs);
  1494. }
  1495. /**
  1496. * @}
  1497. */
  1498. /** @defgroup BUS_LL_EF_C2_AHB2 C2 AHB2
  1499. * @{
  1500. */
  1501. /**
  1502. * @brief Enable C2AHB2 peripherals clock.
  1503. * @rmtoll C2AHB2ENR GPIOAEN LL_C2_AHB2_GRP1_EnableClock\n
  1504. * C2AHB2ENR GPIOBEN LL_C2_AHB2_GRP1_EnableClock\n
  1505. * C2AHB2ENR GPIOCEN LL_C2_AHB2_GRP1_EnableClock\n
  1506. * C2AHB2ENR GPIODEN LL_C2_AHB2_GRP1_EnableClock\n
  1507. * C2AHB2ENR GPIOEEN LL_C2_AHB2_GRP1_EnableClock\n
  1508. * C2AHB2ENR GPIOHEN LL_C2_AHB2_GRP1_EnableClock\n
  1509. * C2AHB2ENR ADCEN LL_C2_AHB2_GRP1_EnableClock\n
  1510. * C2AHB2ENR AES1EN LL_C2_AHB2_GRP1_EnableClock
  1511. * @param Periphs This parameter can be a combination of the following values:
  1512. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOA
  1513. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOB
  1514. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOC
  1515. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOD (*)
  1516. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOE
  1517. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOH
  1518. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_ADC (*)
  1519. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_AES1 (*)
  1520. * @note (*) Not supported by all the devices
  1521. * @retval None
  1522. */
  1523. __STATIC_INLINE void LL_C2_AHB2_GRP1_EnableClock(uint32_t Periphs)
  1524. {
  1525. __IO uint32_t tmpreg;
  1526. SET_BIT(RCC->C2AHB2ENR, Periphs);
  1527. /* Delay after an RCC peripheral clock enabling */
  1528. tmpreg = READ_BIT(RCC->C2AHB2ENR, Periphs);
  1529. (void)tmpreg;
  1530. }
  1531. /**
  1532. * @brief Check if C2AHB2 peripheral clock is enabled or not
  1533. * @rmtoll C2AHB2ENR GPIOAEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1534. * C2AHB2ENR GPIOBEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1535. * C2AHB2ENR GPIOCEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1536. * C2AHB2ENR GPIODEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1537. * C2AHB2ENR GPIOEEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1538. * C2AHB2ENR GPIOHEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1539. * C2AHB2ENR ADCEN LL_C2_AHB2_GRP1_IsEnabledClock\n
  1540. * C2AHB2ENR AES1EN LL_C2_AHB2_GRP1_IsEnabledClock
  1541. * @param Periphs This parameter can be a combination of the following values:
  1542. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOA
  1543. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOB
  1544. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOC
  1545. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOD (*)
  1546. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOE
  1547. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOH
  1548. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_ADC (*)
  1549. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_AES1 (*)
  1550. * @note (*) Not supported by all the devices
  1551. * @retval uint32_t
  1552. */
  1553. __STATIC_INLINE uint32_t LL_C2_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
  1554. {
  1555. return ((READ_BIT(RCC->C2AHB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  1556. }
  1557. /**
  1558. * @brief Disable C2AHB2 peripherals clock.
  1559. * @rmtoll C2AHB2ENR GPIOAEN LL_C2_AHB2_GRP1_DisableClock\n
  1560. * C2AHB2ENR GPIOBEN LL_C2_AHB2_GRP1_DisableClock\n
  1561. * C2AHB2ENR GPIOCEN LL_C2_AHB2_GRP1_DisableClock\n
  1562. * C2AHB2ENR GPIODEN LL_C2_AHB2_GRP1_DisableClock\n
  1563. * C2AHB2ENR GPIOEEN LL_C2_AHB2_GRP1_DisableClock\n
  1564. * C2AHB2ENR GPIOHEN LL_C2_AHB2_GRP1_DisableClock\n
  1565. * C2AHB2ENR ADCEN LL_C2_AHB2_GRP1_DisableClock\n
  1566. * C2AHB2ENR AES1EN LL_C2_AHB2_GRP1_DisableClock
  1567. * @param Periphs This parameter can be a combination of the following values:
  1568. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOA
  1569. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOB
  1570. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOC
  1571. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOD (*)
  1572. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOE
  1573. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOH
  1574. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_ADC (*)
  1575. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_AES1 (*)
  1576. * @note (*) Not supported by all the devices
  1577. * @retval None
  1578. */
  1579. __STATIC_INLINE void LL_C2_AHB2_GRP1_DisableClock(uint32_t Periphs)
  1580. {
  1581. CLEAR_BIT(RCC->C2AHB2ENR, Periphs);
  1582. }
  1583. /**
  1584. * @brief Enable C2AHB2 peripherals clock during Low Power (Sleep) mode.
  1585. * @rmtoll C2AHB2SMENR GPIOASMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1586. * C2AHB2SMENR GPIOBSMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1587. * C2AHB2SMENR GPIOCSMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1588. * C2AHB2SMENR GPIODSMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1589. * C2AHB2SMENR GPIOESMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1590. * C2AHB2SMENR GPIOHSMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1591. * C2AHB2SMENR ADCSMEN LL_C2_AHB2_GRP1_EnableClockSleep\n
  1592. * C2AHB2SMENR AES1SMEN LL_C2_AHB2_GRP1_EnableClockSleep
  1593. * @param Periphs This parameter can be a combination of the following values:
  1594. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOA
  1595. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOB
  1596. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOC
  1597. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOD (*)
  1598. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOE
  1599. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOH
  1600. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_ADC (*)
  1601. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_AES1 (*)
  1602. * @note (*) Not supported by all the devices
  1603. * @retval None
  1604. */
  1605. __STATIC_INLINE void LL_C2_AHB2_GRP1_EnableClockSleep(uint32_t Periphs)
  1606. {
  1607. __IO uint32_t tmpreg;
  1608. SET_BIT(RCC->C2AHB2SMENR, Periphs);
  1609. /* Delay after an RCC peripheral clock enabling */
  1610. tmpreg = READ_BIT(RCC->C2AHB2SMENR, Periphs);
  1611. (void)tmpreg;
  1612. }
  1613. /**
  1614. * @brief Disable C2AHB2 peripherals clock during Low Power (Sleep) mode.
  1615. * @rmtoll C2AHB2SMENR GPIOASMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1616. * C2AHB2SMENR GPIOBSMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1617. * C2AHB2SMENR GPIOCSMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1618. * C2AHB2SMENR GPIODSMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1619. * C2AHB2SMENR GPIOESMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1620. * C2AHB2SMENR GPIOHSMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1621. * C2AHB2SMENR ADCSMEN LL_C2_AHB2_GRP1_DisableClockSleep\n
  1622. * C2AHB2SMENR AES1SMEN LL_C2_AHB2_GRP1_DisableClockSleep
  1623. * @param Periphs This parameter can be a combination of the following values:
  1624. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOA
  1625. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOB
  1626. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOC
  1627. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOD (*)
  1628. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOE
  1629. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_GPIOH
  1630. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_ADC (*)
  1631. * @arg @ref LL_C2_AHB2_GRP1_PERIPH_AES1 (*)
  1632. * @note (*) Not supported by all the devices
  1633. * @retval None
  1634. */
  1635. __STATIC_INLINE void LL_C2_AHB2_GRP1_DisableClockSleep(uint32_t Periphs)
  1636. {
  1637. CLEAR_BIT(RCC->C2AHB2SMENR, Periphs);
  1638. }
  1639. /**
  1640. * @}
  1641. */
  1642. /** @defgroup BUS_LL_EF_C2_AHB3 C2 AHB3
  1643. * @{
  1644. */
  1645. /**
  1646. * @brief Enable C2AHB3 peripherals clock.
  1647. * @rmtoll C2AHB3ENR PKAEN LL_C2_AHB3_GRP1_EnableClock\n
  1648. * C2AHB3ENR AES2EN LL_C2_AHB3_GRP1_EnableClock\n
  1649. * C2AHB3ENR RNGEN LL_C2_AHB3_GRP1_EnableClock\n
  1650. * C2AHB3ENR HSEMEN LL_C2_AHB3_GRP1_EnableClock\n
  1651. * C2AHB3ENR IPCCEN LL_C2_AHB3_GRP1_EnableClock\n
  1652. * C2AHB3ENR FLASHEN LL_C2_AHB3_GRP1_EnableClock
  1653. * @param Periphs This parameter can be a combination of the following values:
  1654. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_PKA
  1655. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_AES2
  1656. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_RNG
  1657. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_HSEM
  1658. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_IPCC
  1659. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_FLASH
  1660. * @retval None
  1661. */
  1662. __STATIC_INLINE void LL_C2_AHB3_GRP1_EnableClock(uint32_t Periphs)
  1663. {
  1664. __IO uint32_t tmpreg;
  1665. SET_BIT(RCC->C2AHB3ENR, Periphs);
  1666. /* Delay after an RCC peripheral clock enabling */
  1667. tmpreg = READ_BIT(RCC->C2AHB3ENR, Periphs);
  1668. (void)tmpreg;
  1669. }
  1670. /**
  1671. * @brief Check if C2AHB3 peripheral clock is enabled or not
  1672. * @rmtoll C2AHB3ENR PKAEN LL_C2_AHB3_GRP1_IsEnabledClock\n
  1673. * C2AHB3ENR AES2EN LL_C2_AHB3_GRP1_IsEnabledClock\n
  1674. * C2AHB3ENR RNGEN LL_C2_AHB3_GRP1_IsEnabledClock\n
  1675. * C2AHB3ENR HSEMEN LL_C2_AHB3_GRP1_IsEnabledClock\n
  1676. * C2AHB3ENR IPCCEN LL_C2_AHB3_GRP1_IsEnabledClock\n
  1677. * C2AHB3ENR FLASHEN LL_C2_AHB3_GRP1_IsEnabledClock
  1678. * @param Periphs This parameter can be a combination of the following values:
  1679. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_PKA
  1680. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_AES2
  1681. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_RNG
  1682. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_HSEM
  1683. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_IPCC
  1684. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_FLASH
  1685. * @retval uint32_t
  1686. */
  1687. __STATIC_INLINE uint32_t LL_C2_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
  1688. {
  1689. return ((READ_BIT(RCC->C2AHB3ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  1690. }
  1691. /**
  1692. * @brief Disable C2AHB3 peripherals clock.
  1693. * @rmtoll C2AHB3ENR PKAEN LL_C2_AHB3_GRP1_DisableClock\n
  1694. * C2AHB3ENR AES2EN LL_C2_AHB3_GRP1_DisableClock\n
  1695. * C2AHB3ENR RNGEN LL_C2_AHB3_GRP1_DisableClock\n
  1696. * C2AHB3ENR HSEMEN LL_C2_AHB3_GRP1_DisableClock\n
  1697. * C2AHB3ENR IPCCEN LL_C2_AHB3_GRP1_DisableClock\n
  1698. * C2AHB3ENR FLASHEN LL_C2_AHB3_GRP1_DisableClock
  1699. * @param Periphs This parameter can be a combination of the following values:
  1700. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_PKA
  1701. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_AES2
  1702. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_RNG
  1703. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_HSEM
  1704. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_IPCC
  1705. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_FLASH
  1706. * @retval None
  1707. */
  1708. __STATIC_INLINE void LL_C2_AHB3_GRP1_DisableClock(uint32_t Periphs)
  1709. {
  1710. CLEAR_BIT(RCC->C2AHB3ENR, Periphs);
  1711. }
  1712. /**
  1713. * @brief Enable C2AHB3 peripherals clock during Low Power (Sleep) mode.
  1714. * @rmtoll C2AHB3SMENR PKASMEN LL_C2_AHB3_GRP1_EnableClockSleep\n
  1715. * C2AHB3SMENR AES2SMEN LL_C2_AHB3_GRP1_EnableClockSleep\n
  1716. * C2AHB3SMENR RNGSMEN LL_C2_AHB3_GRP1_EnableClockSleep\n
  1717. * C2AHB3SMENR SRAM2SMEN LL_C2_AHB3_GRP1_EnableClockSleep\n
  1718. * C2AHB3SMENR FLASHSMEN LL_C2_AHB3_GRP1_EnableClockSleep
  1719. * @param Periphs This parameter can be a combination of the following values:
  1720. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_PKA
  1721. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_AES2
  1722. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_RNG
  1723. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_SRAM2
  1724. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_FLASH
  1725. * @retval None
  1726. */
  1727. __STATIC_INLINE void LL_C2_AHB3_GRP1_EnableClockSleep(uint32_t Periphs)
  1728. {
  1729. __IO uint32_t tmpreg;
  1730. SET_BIT(RCC->C2AHB3SMENR, Periphs);
  1731. /* Delay after an RCC peripheral clock enabling */
  1732. tmpreg = READ_BIT(RCC->C2AHB3SMENR, Periphs);
  1733. (void)tmpreg;
  1734. }
  1735. /**
  1736. * @brief Disable C2AHB3 peripherals clock during Low Power (Sleep) mode.
  1737. * @rmtoll C2AHB3SMENR PKASMEN LL_C2_AHB3_GRP1_DisableClockSleep\n
  1738. * C2AHB3SMENR AES2SMEN LL_C2_AHB3_GRP1_DisableClockSleep\n
  1739. * C2AHB3SMENR RNGSMEN LL_C2_AHB3_GRP1_DisableClockSleep\n
  1740. * C2AHB3SMENR SRAM2SMEN LL_C2_AHB3_GRP1_DisableClockSleep\n
  1741. * C2AHB3SMENR FLASHSMEN LL_C2_AHB3_GRP1_DisableClockSleep
  1742. * @param Periphs This parameter can be a combination of the following values:
  1743. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_PKA
  1744. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_AES2
  1745. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_RNG
  1746. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_SRAM2
  1747. * @arg @ref LL_C2_AHB3_GRP1_PERIPH_FLASH
  1748. * @retval None
  1749. */
  1750. __STATIC_INLINE void LL_C2_AHB3_GRP1_DisableClockSleep(uint32_t Periphs)
  1751. {
  1752. CLEAR_BIT(RCC->C2AHB3SMENR, Periphs);
  1753. }
  1754. /**
  1755. * @}
  1756. */
  1757. /** @defgroup BUS_LL_EF_C2_APB1 C2 APB1
  1758. * @{
  1759. */
  1760. /**
  1761. * @brief Enable C2APB1 peripherals clock.
  1762. * @rmtoll C2APB1ENR1 TIM2EN LL_C2_APB1_GRP1_EnableClock\n
  1763. * C2APB1ENR1 LCDEN LL_C2_APB1_GRP1_EnableClock\n
  1764. * C2APB1ENR1 RTCAPBEN LL_C2_APB1_GRP1_EnableClock\n
  1765. * C2APB1ENR1 SPI2EN LL_C2_APB1_GRP1_EnableClock\n
  1766. * C2APB1ENR1 I2C1EN LL_C2_APB1_GRP1_EnableClock\n
  1767. * C2APB1ENR1 I2C3EN LL_C2_APB1_GRP1_EnableClock\n
  1768. * C2APB1ENR1 CRSEN LL_C2_APB1_GRP1_EnableClock\n
  1769. * C2APB1ENR1 USBEN LL_C2_APB1_GRP1_EnableClock\n
  1770. * C2APB1ENR1 LPTIM1EN LL_C2_APB1_GRP1_EnableClock
  1771. * @param Periphs This parameter can be a combination of the following values:
  1772. * @arg @ref LL_C2_APB1_GRP1_PERIPH_TIM2
  1773. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LCD (*)
  1774. * @arg @ref LL_C2_APB1_GRP1_PERIPH_RTCAPB
  1775. * @arg @ref LL_C2_APB1_GRP1_PERIPH_SPI2 (*)
  1776. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C1
  1777. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C3 (*)
  1778. * @arg @ref LL_C2_APB1_GRP1_PERIPH_CRS (*)
  1779. * @arg @ref LL_C2_APB1_GRP1_PERIPH_USB (*)
  1780. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LPTIM1
  1781. * @note (*) Not supported by all the devices
  1782. * @retval None
  1783. */
  1784. __STATIC_INLINE void LL_C2_APB1_GRP1_EnableClock(uint32_t Periphs)
  1785. {
  1786. __IO uint32_t tmpreg;
  1787. SET_BIT(RCC->C2APB1ENR1, Periphs);
  1788. /* Delay after an RCC peripheral clock enabling */
  1789. tmpreg = READ_BIT(RCC->C2APB1ENR1, Periphs);
  1790. (void)tmpreg;
  1791. }
  1792. /**
  1793. * @brief Enable C2APB1 peripherals clock.
  1794. * @rmtoll C2APB1ENR2 LPUART1EN LL_C2_APB1_GRP2_EnableClock\n
  1795. * C2APB1ENR2 LPTIM2EN LL_C2_APB1_GRP2_EnableClock
  1796. * @param Periphs This parameter can be a combination of the following values:
  1797. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPUART1 (*)
  1798. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPTIM2
  1799. * @note (*) Not supported by all the devices
  1800. * @retval None
  1801. */
  1802. __STATIC_INLINE void LL_C2_APB1_GRP2_EnableClock(uint32_t Periphs)
  1803. {
  1804. __IO uint32_t tmpreg;
  1805. SET_BIT(RCC->C2APB1ENR2, Periphs);
  1806. /* Delay after an RCC peripheral clock enabling */
  1807. tmpreg = READ_BIT(RCC->C2APB1ENR2, Periphs);
  1808. (void)tmpreg;
  1809. }
  1810. /**
  1811. * @brief Check if C2APB1 peripheral clock is enabled or not
  1812. * @rmtoll C2APB1ENR1 TIM2EN LL_C2_APB1_GRP1_IsEnabledClock\n
  1813. * C2APB1ENR1 LCDEN LL_C2_APB1_GRP1_IsEnabledClock\n
  1814. * C2APB1ENR1 RTCAPBEN LL_C2_APB1_GRP1_IsEnabledClock\n
  1815. * C2APB1ENR1 SPI2EN LL_C2_APB1_GRP1_IsEnabledClock\n
  1816. * C2APB1ENR1 I2C1EN LL_C2_APB1_GRP1_IsEnabledClock\n
  1817. * C2APB1ENR1 I2C3EN LL_C2_APB1_GRP1_IsEnabledClock\n
  1818. * C2APB1ENR1 CRSEN LL_C2_APB1_GRP1_IsEnabledClock\n
  1819. * C2APB1ENR1 USBEN LL_C2_APB1_GRP1_IsEnabledClock\n
  1820. * C2APB1ENR1 LPTIM1EN LL_C2_APB1_GRP1_IsEnabledClock
  1821. * @param Periphs This parameter can be a combination of the following values:
  1822. * @arg @ref LL_C2_APB1_GRP1_PERIPH_TIM2
  1823. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LCD (*)
  1824. * @arg @ref LL_C2_APB1_GRP1_PERIPH_RTCAPB
  1825. * @arg @ref LL_C2_APB1_GRP1_PERIPH_SPI2 (*)
  1826. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C1
  1827. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C3 (*)
  1828. * @arg @ref LL_C2_APB1_GRP1_PERIPH_CRS (*)
  1829. * @arg @ref LL_C2_APB1_GRP1_PERIPH_USB (*)
  1830. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LPTIM1
  1831. * @note (*) Not supported by all the devices
  1832. * @retval uint32_t
  1833. */
  1834. __STATIC_INLINE uint32_t LL_C2_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  1835. {
  1836. return ((READ_BIT(RCC->C2APB1ENR1, Periphs) == (Periphs)) ? 1UL : 0UL);
  1837. }
  1838. /**
  1839. * @brief Check if C2APB1 peripheral clock is enabled or not
  1840. * @rmtoll C2APB1ENR2 LPUART1EN LL_C2_APB1_GRP2_IsEnabledClock\n
  1841. * C2APB1ENR2 LPTIM2EN LL_C2_APB1_GRP2_IsEnabledClock
  1842. * @param Periphs This parameter can be a combination of the following values:
  1843. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPUART1 (*)
  1844. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPTIM2
  1845. * @note (*) Not supported by all the devices
  1846. * @retval uint32_t
  1847. */
  1848. __STATIC_INLINE uint32_t LL_C2_APB1_GRP2_IsEnabledClock(uint32_t Periphs)
  1849. {
  1850. return ((READ_BIT(RCC->C2APB1ENR2, Periphs) == (Periphs)) ? 1UL : 0UL);
  1851. }
  1852. /**
  1853. * @brief Disable C2APB1 peripherals clock.
  1854. * @rmtoll C2APB1ENR1 TIM2EN LL_C2_APB1_GRP1_DisableClock\n
  1855. * C2APB1ENR1 LCDEN LL_C2_APB1_GRP1_DisableClock\n
  1856. * C2APB1ENR1 RTCAPBEN LL_C2_APB1_GRP1_DisableClock\n
  1857. * C2APB1ENR1 SPI2EN LL_C2_APB1_GRP1_DisableClock\n
  1858. * C2APB1ENR1 I2C1EN LL_C2_APB1_GRP1_DisableClock\n
  1859. * C2APB1ENR1 I2C3EN LL_C2_APB1_GRP1_DisableClock\n
  1860. * C2APB1ENR1 CRSEN LL_C2_APB1_GRP1_DisableClock\n
  1861. * C2APB1ENR1 USBEN LL_C2_APB1_GRP1_DisableClock\n
  1862. * C2APB1ENR1 LPTIM1EN LL_C2_APB1_GRP1_DisableClock
  1863. * @param Periphs This parameter can be a combination of the following values:
  1864. * @arg @ref LL_C2_APB1_GRP1_PERIPH_TIM2
  1865. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LCD (*)
  1866. * @arg @ref LL_C2_APB1_GRP1_PERIPH_RTCAPB
  1867. * @arg @ref LL_C2_APB1_GRP1_PERIPH_SPI2 (*)
  1868. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C1
  1869. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C3 (*)
  1870. * @arg @ref LL_C2_APB1_GRP1_PERIPH_CRS (*)
  1871. * @arg @ref LL_C2_APB1_GRP1_PERIPH_USB (*)
  1872. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LPTIM1
  1873. * @note (*) Not supported by all the devices
  1874. * @retval None
  1875. */
  1876. __STATIC_INLINE void LL_C2_APB1_GRP1_DisableClock(uint32_t Periphs)
  1877. {
  1878. CLEAR_BIT(RCC->C2APB1ENR1, Periphs);
  1879. }
  1880. /**
  1881. * @brief Disable C2APB1 peripherals clock.
  1882. * @rmtoll C2APB1ENR2 LPUART1EN LL_C2_APB1_GRP2_DisableClock\n
  1883. * C2APB1ENR2 LPTIM2EN LL_C2_APB1_GRP2_DisableClock
  1884. * @param Periphs This parameter can be a combination of the following values:
  1885. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPUART1 (*)
  1886. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPTIM2
  1887. * @note (*) Not supported by all the devices
  1888. * @retval None
  1889. */
  1890. __STATIC_INLINE void LL_C2_APB1_GRP2_DisableClock(uint32_t Periphs)
  1891. {
  1892. CLEAR_BIT(RCC->C2APB1ENR2, Periphs);
  1893. }
  1894. /**
  1895. * @brief Enable C2APB1 peripherals clock during Low Power (Sleep) mode.
  1896. * @rmtoll C2APB1SMENR1 TIM2SMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1897. * C2APB1SMENR1 LCDSMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1898. * C2APB1SMENR1 RTCAPBSMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1899. * C2APB1SMENR1 SPI2SMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1900. * C2APB1SMENR1 I2C1SMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1901. * C2APB1SMENR1 I2C3SMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1902. * C2APB1SMENR1 CRSSMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1903. * C2APB1SMENR1 USBSMEN LL_C2_APB1_GRP1_EnableClockSleep\n
  1904. * C2APB1SMENR1 LPTIM1SMEN LL_C2_APB1_GRP1_EnableClockSleep
  1905. * @param Periphs This parameter can be a combination of the following values:
  1906. * @arg @ref LL_C2_APB1_GRP1_PERIPH_TIM2
  1907. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LCD (*)
  1908. * @arg @ref LL_C2_APB1_GRP1_PERIPH_RTCAPB
  1909. * @arg @ref LL_C2_APB1_GRP1_PERIPH_SPI2 (*)
  1910. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C1
  1911. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C3 (*)
  1912. * @arg @ref LL_C2_APB1_GRP1_PERIPH_CRS (*)
  1913. * @arg @ref LL_C2_APB1_GRP1_PERIPH_USB (*)
  1914. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LPTIM1
  1915. * @note (*) Not supported by all the devices
  1916. * @retval None
  1917. */
  1918. __STATIC_INLINE void LL_C2_APB1_GRP1_EnableClockSleep(uint32_t Periphs)
  1919. {
  1920. __IO uint32_t tmpreg;
  1921. SET_BIT(RCC->C2APB1SMENR1, Periphs);
  1922. /* Delay after an RCC peripheral clock enabling */
  1923. tmpreg = READ_BIT(RCC->C2APB1SMENR1, Periphs);
  1924. (void)tmpreg;
  1925. }
  1926. /**
  1927. * @brief Enable C2APB1 peripherals clock during Low Power (Sleep) mode.
  1928. * @rmtoll C2APB1SMENR2 LPUART1SMEN LL_C2_APB1_GRP2_EnableClockSleep\n
  1929. * C2APB1SMENR2 LPTIM2SMEN LL_C2_APB1_GRP2_EnableClockSleep
  1930. * @param Periphs This parameter can be a combination of the following values:
  1931. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPUART1 (*)
  1932. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPTIM2
  1933. * @note (*) Not supported by all the devices
  1934. * @retval None
  1935. */
  1936. __STATIC_INLINE void LL_C2_APB1_GRP2_EnableClockSleep(uint32_t Periphs)
  1937. {
  1938. __IO uint32_t tmpreg;
  1939. SET_BIT(RCC->C2APB1SMENR2, Periphs);
  1940. /* Delay after an RCC peripheral clock enabling */
  1941. tmpreg = READ_BIT(RCC->C2APB1SMENR2, Periphs);
  1942. (void)tmpreg;
  1943. }
  1944. /**
  1945. * @brief Disable C2APB1 peripherals clock during Low Power (Sleep) mode.
  1946. * @rmtoll C2APB1SMENR1 TIM2SMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1947. * C2APB1SMENR1 LCDSMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1948. * C2APB1SMENR1 RTCAPBSMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1949. * C2APB1SMENR1 SPI2SMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1950. * C2APB1SMENR1 I2C1SMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1951. * C2APB1SMENR1 I2C3SMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1952. * C2APB1SMENR1 CRSSMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1953. * C2APB1SMENR1 USBSMEN LL_C2_APB1_GRP1_DisableClockSleep\n
  1954. * C2APB1SMENR1 LPTIM1SMEN LL_C2_APB1_GRP1_DisableClockSleep
  1955. * @param Periphs This parameter can be a combination of the following values:
  1956. * @arg @ref LL_C2_APB1_GRP1_PERIPH_TIM2
  1957. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LCD (*)
  1958. * @arg @ref LL_C2_APB1_GRP1_PERIPH_RTCAPB
  1959. * @arg @ref LL_C2_APB1_GRP1_PERIPH_SPI2 (*)
  1960. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C1
  1961. * @arg @ref LL_C2_APB1_GRP1_PERIPH_I2C3 (*)
  1962. * @arg @ref LL_C2_APB1_GRP1_PERIPH_CRS (*)
  1963. * @arg @ref LL_C2_APB1_GRP1_PERIPH_USB (*)
  1964. * @arg @ref LL_C2_APB1_GRP1_PERIPH_LPTIM1
  1965. * @note (*) Not supported by all the devices
  1966. * @retval None
  1967. */
  1968. __STATIC_INLINE void LL_C2_APB1_GRP1_DisableClockSleep(uint32_t Periphs)
  1969. {
  1970. CLEAR_BIT(RCC->C2APB1SMENR1, Periphs);
  1971. }
  1972. /**
  1973. * @brief Disable C2APB1 peripherals clock during Low Power (Sleep) mode.
  1974. * @rmtoll C2APB1SMENR2 LPUART1SMEN LL_C2_APB1_GRP2_DisableClockSleep\n
  1975. * C2APB1SMENR2 LPTIM2SMEN LL_C2_APB1_GRP2_DisableClockSleep
  1976. * @param Periphs This parameter can be a combination of the following values:
  1977. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPUART1 (*)
  1978. * @arg @ref LL_C2_APB1_GRP2_PERIPH_LPTIM2
  1979. * @note (*) Not supported by all the devices
  1980. * @retval None
  1981. */
  1982. __STATIC_INLINE void LL_C2_APB1_GRP2_DisableClockSleep(uint32_t Periphs)
  1983. {
  1984. CLEAR_BIT(RCC->C2APB1SMENR2, Periphs);
  1985. }
  1986. /**
  1987. * @}
  1988. */
  1989. /** @defgroup BUS_LL_EF_C2_APB2 C2 APB2
  1990. * @{
  1991. */
  1992. /**
  1993. * @brief Enable C2APB2 peripherals clock.
  1994. * @rmtoll C2APB2ENR ADCEN LL_C2_APB2_GRP1_EnableClock\n
  1995. * C2APB2ENR TIM1EN LL_C2_APB2_GRP1_EnableClock\n
  1996. * C2APB2ENR SPI1EN LL_C2_APB2_GRP1_EnableClock\n
  1997. * C2APB2ENR USART1EN LL_C2_APB2_GRP1_EnableClock\n
  1998. * C2APB2ENR TIM16EN LL_C2_APB2_GRP1_EnableClock\n
  1999. * C2APB2ENR TIM17EN LL_C2_APB2_GRP1_EnableClock\n
  2000. * C2APB2ENR SAI1EN LL_C2_APB2_GRP1_EnableClock
  2001. * @param Periphs This parameter can be a combination of the following values:
  2002. * @arg @ref LL_C2_APB2_GRP1_PERIPH_ADC (*)
  2003. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM1
  2004. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SPI1
  2005. * @arg @ref LL_C2_APB2_GRP1_PERIPH_USART1
  2006. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM16 (*)
  2007. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM17 (*)
  2008. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SAI1 (*)
  2009. * @note (*) Not supported by all the devices
  2010. * @retval None
  2011. */
  2012. __STATIC_INLINE void LL_C2_APB2_GRP1_EnableClock(uint32_t Periphs)
  2013. {
  2014. __IO uint32_t tmpreg;
  2015. SET_BIT(RCC->C2APB2ENR, Periphs);
  2016. /* Delay after an RCC peripheral clock enabling */
  2017. tmpreg = READ_BIT(RCC->C2APB2ENR, Periphs);
  2018. (void)tmpreg;
  2019. }
  2020. /**
  2021. * @brief Check if C2APB2 peripheral clock is enabled or not
  2022. * @rmtoll C2APB2ENR ADCEN LL_C2_APB2_GRP1_IsEnabledClock\n
  2023. * C2APB2ENR TIM1EN LL_C2_APB2_GRP1_IsEnabledClock\n
  2024. * C2APB2ENR SPI1EN LL_C2_APB2_GRP1_IsEnabledClock\n
  2025. * C2APB2ENR USART1EN LL_C2_APB2_GRP1_IsEnabledClock\n
  2026. * C2APB2ENR TIM16EN LL_C2_APB2_GRP1_IsEnabledClock\n
  2027. * C2APB2ENR TIM17EN LL_C2_APB2_GRP1_IsEnabledClock\n
  2028. * C2APB2ENR SAI1EN LL_C2_APB2_GRP1_IsEnabledClock
  2029. * @param Periphs This parameter can be a combination of the following values:
  2030. * @arg @ref LL_C2_APB2_GRP1_PERIPH_ADC (*)
  2031. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM1
  2032. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SPI1
  2033. * @arg @ref LL_C2_APB2_GRP1_PERIPH_USART1
  2034. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM16 (*)
  2035. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM17 (*)
  2036. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SAI1 (*)
  2037. * @note (*) Not supported by all the devices
  2038. * @retval uint32_t
  2039. */
  2040. __STATIC_INLINE uint32_t LL_C2_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  2041. {
  2042. return ((READ_BIT(RCC->C2APB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  2043. }
  2044. /**
  2045. * @brief Disable C2APB2 peripherals clock.
  2046. * @rmtoll C2APB2ENR ADCEN LL_C2_APB2_GRP1_DisableClock\n
  2047. * C2APB2ENR TIM1EN LL_C2_APB2_GRP1_DisableClock\n
  2048. * C2APB2ENR SPI1EN LL_C2_APB2_GRP1_DisableClock\n
  2049. * C2APB2ENR USART1EN LL_C2_APB2_GRP1_DisableClock\n
  2050. * C2APB2ENR TIM16EN LL_C2_APB2_GRP1_DisableClock\n
  2051. * C2APB2ENR TIM17EN LL_C2_APB2_GRP1_DisableClock\n
  2052. * C2APB2ENR SAI1EN LL_C2_APB2_GRP1_DisableClock
  2053. * @param Periphs This parameter can be a combination of the following values:
  2054. * @arg @ref LL_C2_APB2_GRP1_PERIPH_ADC (*)
  2055. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM1
  2056. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SPI1
  2057. * @arg @ref LL_C2_APB2_GRP1_PERIPH_USART1
  2058. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM16 (*)
  2059. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM17 (*)
  2060. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SAI1 (*)
  2061. * @note (*) Not supported by all the devices
  2062. * @retval None
  2063. */
  2064. __STATIC_INLINE void LL_C2_APB2_GRP1_DisableClock(uint32_t Periphs)
  2065. {
  2066. CLEAR_BIT(RCC->C2APB2ENR, Periphs);
  2067. }
  2068. /**
  2069. * @brief Enable C2APB2 peripherals clock during Low Power (Sleep) mode.
  2070. * @rmtoll C2APB2SMENR ADCSMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2071. * C2APB2SMENR TIM1SMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2072. * C2APB2SMENR SPI1SMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2073. * C2APB2SMENR USART1SMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2074. * C2APB2SMENR TIM16SMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2075. * C2APB2SMENR TIM17SMEN LL_C2_APB2_GRP1_EnableClockSleep\n
  2076. * C2APB2SMENR SAI1SMEN LL_C2_APB2_GRP1_EnableClockSleep
  2077. * @param Periphs This parameter can be a combination of the following values:
  2078. * @arg @ref LL_C2_APB2_GRP1_PERIPH_ADC (*)
  2079. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM1
  2080. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SPI1
  2081. * @arg @ref LL_C2_APB2_GRP1_PERIPH_USART1
  2082. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM16 (*)
  2083. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM17 (*)
  2084. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SAI1 (*)
  2085. * @note (*) Not supported by all the devices
  2086. * @retval None
  2087. */
  2088. __STATIC_INLINE void LL_C2_APB2_GRP1_EnableClockSleep(uint32_t Periphs)
  2089. {
  2090. __IO uint32_t tmpreg;
  2091. SET_BIT(RCC->C2APB2SMENR, Periphs);
  2092. /* Delay after an RCC peripheral clock enabling */
  2093. tmpreg = READ_BIT(RCC->C2APB2SMENR, Periphs);
  2094. (void)tmpreg;
  2095. }
  2096. /**
  2097. * @brief Disable C2APB2 peripherals clock during Low Power (Sleep) mode.
  2098. * @rmtoll C2APB2SMENR ADCSMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2099. * C2APB2SMENR TIM1SMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2100. * C2APB2SMENR SPI1SMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2101. * C2APB2SMENR USART1SMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2102. * C2APB2SMENR TIM16SMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2103. * C2APB2SMENR TIM17SMEN LL_C2_APB2_GRP1_DisableClockSleep\n
  2104. * C2APB2SMENR SAI1SMEN LL_C2_APB2_GRP1_DisableClockSleep
  2105. * @param Periphs This parameter can be a combination of the following values:
  2106. * @arg @ref LL_C2_APB2_GRP1_PERIPH_ADC (*)
  2107. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM1
  2108. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SPI1
  2109. * @arg @ref LL_C2_APB2_GRP1_PERIPH_USART1
  2110. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM16 (*)
  2111. * @arg @ref LL_C2_APB2_GRP1_PERIPH_TIM17 (*)
  2112. * @arg @ref LL_C2_APB2_GRP1_PERIPH_SAI1 (*)
  2113. * @note (*) Not supported by all the devices
  2114. * @retval None
  2115. */
  2116. __STATIC_INLINE void LL_C2_APB2_GRP1_DisableClockSleep(uint32_t Periphs)
  2117. {
  2118. CLEAR_BIT(RCC->C2APB2SMENR, Periphs);
  2119. }
  2120. /**
  2121. * @}
  2122. */
  2123. /** @defgroup BUS_LL_EF_C2_APB3 C2 APB3
  2124. * @{
  2125. */
  2126. /**
  2127. * @brief Enable C2APB3 peripherals clock.
  2128. * @rmtoll C2APB3ENR BLEEN LL_C2_APB3_GRP1_EnableClock\n
  2129. * C2APB3ENR 802EN LL_C2_APB3_GRP1_EnableClock (*)
  2130. * @param Periphs This parameter can be a combination of the following values:
  2131. * @arg @ref LL_C2_APB3_GRP1_PERIPH_BLE
  2132. * @arg @ref LL_C2_APB3_GRP1_PERIPH_802 (*)
  2133. * @note (*) Not supported by all the devices
  2134. * @retval None
  2135. */
  2136. __STATIC_INLINE void LL_C2_APB3_GRP1_EnableClock(uint32_t Periphs)
  2137. {
  2138. __IO uint32_t tmpreg;
  2139. SET_BIT(RCC->C2APB3ENR, Periphs);
  2140. /* Delay after an RCC peripheral clock enabling */
  2141. tmpreg = READ_BIT(RCC->C2APB3ENR, Periphs);
  2142. (void)tmpreg;
  2143. }
  2144. /**
  2145. * @brief Check if C2APB3 peripheral clock is enabled or not
  2146. * @rmtoll C2APB3ENR BLEEN LL_C2_APB3_GRP1_IsEnabledClock\n
  2147. * C2APB3ENR 802EN LL_C2_APB3_GRP1_IsEnabledClock (*)
  2148. * @param Periphs This parameter can be a combination of the following values:
  2149. * @arg @ref LL_C2_APB3_GRP1_PERIPH_BLE
  2150. * @arg @ref LL_C2_APB3_GRP1_PERIPH_802 (*)
  2151. * @note (*) Not supported by all the devices
  2152. * @retval uint32_t
  2153. */
  2154. __STATIC_INLINE uint32_t LL_C2_APB3_GRP1_IsEnabledClock(uint32_t Periphs)
  2155. {
  2156. return ((READ_BIT(RCC->C2APB3ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  2157. }
  2158. /**
  2159. * @brief Disable C2APB3 peripherals clock.
  2160. * @rmtoll C2APB3ENR BLEEN LL_C2_APB3_GRP1_DisableClock\n
  2161. * C2APB3ENR 802EN LL_C2_APB3_GRP1_DisableClock (*)
  2162. * @param Periphs This parameter can be a combination of the following values:
  2163. * @arg @ref LL_C2_APB3_GRP1_PERIPH_BLE
  2164. * @arg @ref LL_C2_APB3_GRP1_PERIPH_802 (*)
  2165. * @note (*) Not supported by all the devices
  2166. * @retval None
  2167. */
  2168. __STATIC_INLINE void LL_C2_APB3_GRP1_DisableClock(uint32_t Periphs)
  2169. {
  2170. CLEAR_BIT(RCC->C2APB3ENR, Periphs);
  2171. }
  2172. /**
  2173. * @brief Enable C2APB3 peripherals clock during Low Power (Sleep) mode.
  2174. * @rmtoll C2APB3SMENR BLESMEN LL_C2_APB3_GRP1_EnableClockSleep\n
  2175. * C2APB3SMENR 802SMEN LL_C2_APB3_GRP1_EnableClockSleep (*)
  2176. * @param Periphs This parameter can be a combination of the following values:
  2177. * @arg @ref LL_C2_APB3_GRP1_PERIPH_BLE
  2178. * @arg @ref LL_C2_APB3_GRP1_PERIPH_802 (*)
  2179. * @note (*) Not supported by all the devices
  2180. * @retval None
  2181. */
  2182. __STATIC_INLINE void LL_C2_APB3_GRP1_EnableClockSleep(uint32_t Periphs)
  2183. {
  2184. __IO uint32_t tmpreg;
  2185. SET_BIT(RCC->C2APB3SMENR, Periphs);
  2186. /* Delay after an RCC peripheral clock enabling */
  2187. tmpreg = READ_BIT(RCC->C2APB3SMENR, Periphs);
  2188. (void)tmpreg;
  2189. }
  2190. /**
  2191. * @brief Disable C2APB3 peripherals clock during Low Power (Sleep) mode.
  2192. * @rmtoll C2APB3SMENR BLESMEN LL_C2_APB3_GRP1_DisableClockSleep\n
  2193. * C2APB3SMENR 802SMEN LL_C2_APB3_GRP1_DisableClockSleep (*)
  2194. * @param Periphs This parameter can be a combination of the following values:
  2195. * @arg @ref LL_C2_APB3_GRP1_PERIPH_BLE
  2196. * @arg @ref LL_C2_APB3_GRP1_PERIPH_802 (*)
  2197. * @note (*) Not supported by all the devices
  2198. * @retval None
  2199. */
  2200. __STATIC_INLINE void LL_C2_APB3_GRP1_DisableClockSleep(uint32_t Periphs)
  2201. {
  2202. CLEAR_BIT(RCC->C2APB3SMENR, Periphs);
  2203. }
  2204. /**
  2205. * @}
  2206. */
  2207. /**
  2208. * @}
  2209. */
  2210. /**
  2211. * @}
  2212. */
  2213. #endif /* defined(RCC) */
  2214. /**
  2215. * @}
  2216. */
  2217. #ifdef __cplusplus
  2218. }
  2219. #endif
  2220. #endif /* STM32WBxx_LL_BUS_H */
  2221. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/