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.
 
 
 

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