stm32f3xx_ll_bus.h 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060
  1. /**
  2. ******************************************************************************
  3. * @file stm32f3xx_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. * Copyright (c) 2016 STMicroelectronics.
  24. * All rights reserved.
  25. *
  26. * This software is licensed under terms that can be found in the LICENSE file in
  27. * the root directory of this software component.
  28. * If no LICENSE file comes with this software, it is provided AS-IS.
  29. ******************************************************************************
  30. */
  31. /* Define to prevent recursive inclusion -------------------------------------*/
  32. #ifndef __STM32F3xx_LL_BUS_H
  33. #define __STM32F3xx_LL_BUS_H
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /* Includes ------------------------------------------------------------------*/
  38. #include "stm32f3xx.h"
  39. /** @addtogroup STM32F3xx_LL_Driver
  40. * @{
  41. */
  42. #if defined(RCC)
  43. /** @defgroup BUS_LL BUS
  44. * @{
  45. */
  46. /* Private types -------------------------------------------------------------*/
  47. /* Private variables ---------------------------------------------------------*/
  48. /* Private constants ---------------------------------------------------------*/
  49. /* Private macros ------------------------------------------------------------*/
  50. /* Exported types ------------------------------------------------------------*/
  51. /* Exported constants --------------------------------------------------------*/
  52. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  53. * @{
  54. */
  55. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  56. * @{
  57. */
  58. #define LL_AHB1_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  59. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHBENR_DMA1EN
  60. #if defined(DMA2)
  61. #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHBENR_DMA2EN
  62. #endif /*DMA2*/
  63. #define LL_AHB1_GRP1_PERIPH_SRAM RCC_AHBENR_SRAMEN
  64. #define LL_AHB1_GRP1_PERIPH_FLASH RCC_AHBENR_FLITFEN
  65. #if defined(FMC_Bank1)
  66. #define LL_AHB1_GRP1_PERIPH_FMC RCC_AHBENR_FMCEN
  67. #endif /*FMC_Bank1*/
  68. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHBENR_CRCEN
  69. #if defined(GPIOH)
  70. #define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHBENR_GPIOHEN
  71. #endif /*GPIOH*/
  72. #define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHBENR_GPIOAEN
  73. #define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHBENR_GPIOBEN
  74. #define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHBENR_GPIOCEN
  75. #define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHBENR_GPIODEN
  76. #if defined(GPIOE)
  77. #define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHBENR_GPIOEEN
  78. #endif /*GPIOE*/
  79. #define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHBENR_GPIOFEN
  80. #if defined(GPIOG)
  81. #define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHBENR_GPIOGEN
  82. #endif /*GPIOH*/
  83. #define LL_AHB1_GRP1_PERIPH_TSC RCC_AHBENR_TSCEN
  84. #if defined(RCC_AHBENR_ADC1EN)
  85. #define LL_AHB1_GRP1_PERIPH_ADC1 RCC_AHBENR_ADC1EN
  86. #endif /*RCC_AHBENR_ADC1EN*/
  87. #if defined(ADC1_2_COMMON)
  88. #define LL_AHB1_GRP1_PERIPH_ADC12 RCC_AHBENR_ADC12EN
  89. #endif /*ADC1_2_COMMON*/
  90. #if defined(ADC3_4_COMMON)
  91. #define LL_AHB1_GRP1_PERIPH_ADC34 RCC_AHBENR_ADC34EN
  92. #endif /*ADC3_4_COMMON*/
  93. /**
  94. * @}
  95. */
  96. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  97. * @{
  98. */
  99. #define LL_APB1_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  100. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN
  101. #if defined(TIM3)
  102. #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN
  103. #endif /*TIM3*/
  104. #if defined(TIM4)
  105. #define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN
  106. #endif /*TIM4*/
  107. #if defined(TIM5)
  108. #define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN
  109. #endif /*TIM5*/
  110. #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN
  111. #if defined(TIM7)
  112. #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN
  113. #endif /*TIM7*/
  114. #if defined(TIM12)
  115. #define LL_APB1_GRP1_PERIPH_TIM12 RCC_APB1ENR_TIM12EN
  116. #endif /*TIM12*/
  117. #if defined(TIM13)
  118. #define LL_APB1_GRP1_PERIPH_TIM13 RCC_APB1ENR_TIM13EN
  119. #endif /*TIM13*/
  120. #if defined(TIM14)
  121. #define LL_APB1_GRP1_PERIPH_TIM14 RCC_APB1ENR_TIM14EN
  122. #endif /*TIM14*/
  123. #if defined(TIM18)
  124. #define LL_APB1_GRP1_PERIPH_TIM18 RCC_APB1ENR_TIM18EN
  125. #endif /*TIM18*/
  126. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN
  127. #if defined(SPI2)
  128. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN
  129. #endif /*SPI2*/
  130. #if defined(SPI3)
  131. #define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN
  132. #endif /*SPI3*/
  133. #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN
  134. #define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN
  135. #if defined(UART4)
  136. #define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN
  137. #endif /*UART4*/
  138. #if defined(UART5)
  139. #define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN
  140. #endif /*UART5*/
  141. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN
  142. #if defined(I2C2)
  143. #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN
  144. #endif /*I2C2*/
  145. #if defined(USB)
  146. #define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR_USBEN
  147. #endif /*USB*/
  148. #if defined(CAN)
  149. #define LL_APB1_GRP1_PERIPH_CAN RCC_APB1ENR_CANEN
  150. #endif /*CAN*/
  151. #if defined(DAC2)
  152. #define LL_APB1_GRP1_PERIPH_DAC2 RCC_APB1ENR_DAC2EN
  153. #endif /*DAC2*/
  154. #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN
  155. #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DAC1EN
  156. #if defined(CEC)
  157. #define LL_APB1_GRP1_PERIPH_CEC RCC_APB1ENR_CECEN
  158. #endif /*CEC*/
  159. #if defined(I2C3)
  160. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN
  161. #endif /*I2C3*/
  162. /**
  163. * @}
  164. */
  165. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  166. * @{
  167. */
  168. #define LL_APB2_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  169. #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN
  170. #if defined(RCC_APB2ENR_ADC1EN)
  171. #define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN
  172. #endif /*RCC_APB2ENR_ADC1EN*/
  173. #if defined(TIM1)
  174. #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
  175. #endif /*TIM1*/
  176. #if defined(SPI1)
  177. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
  178. #endif /*SPI1*/
  179. #if defined(TIM8)
  180. #define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN
  181. #endif /*TIM8*/
  182. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
  183. #if defined(SPI4)
  184. #define LL_APB2_GRP1_PERIPH_SPI4 RCC_APB2ENR_SPI4EN
  185. #endif /*SPI4*/
  186. #define LL_APB2_GRP1_PERIPH_TIM15 RCC_APB2ENR_TIM15EN
  187. #define LL_APB2_GRP1_PERIPH_TIM16 RCC_APB2ENR_TIM16EN
  188. #define LL_APB2_GRP1_PERIPH_TIM17 RCC_APB2ENR_TIM17EN
  189. #if defined(TIM19)
  190. #define LL_APB2_GRP1_PERIPH_TIM19 RCC_APB2ENR_TIM19EN
  191. #endif /*TIM19*/
  192. #if defined(TIM20)
  193. #define LL_APB2_GRP1_PERIPH_TIM20 RCC_APB2ENR_TIM20EN
  194. #endif /*TIM20*/
  195. #if defined(HRTIM1)
  196. #define LL_APB2_GRP1_PERIPH_HRTIM1 RCC_APB2ENR_HRTIM1EN
  197. #endif /*HRTIM1*/
  198. #if defined(SDADC1)
  199. #define LL_APB2_GRP1_PERIPH_SDADC1 RCC_APB2ENR_SDADC1EN
  200. #endif /*SDADC1*/
  201. #if defined(SDADC2)
  202. #define LL_APB2_GRP1_PERIPH_SDADC2 RCC_APB2ENR_SDADC2EN
  203. #endif /*SDADC2*/
  204. #if defined(SDADC3)
  205. #define LL_APB2_GRP1_PERIPH_SDADC3 RCC_APB2ENR_SDADC3EN
  206. #endif /*SDADC3*/
  207. /**
  208. * @}
  209. */
  210. /**
  211. * @}
  212. */
  213. /* Exported macro ------------------------------------------------------------*/
  214. /* Exported functions --------------------------------------------------------*/
  215. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  216. * @{
  217. */
  218. /** @defgroup BUS_LL_EF_AHB1 AHB1
  219. * @{
  220. */
  221. /**
  222. * @brief Enable AHB1 peripherals clock.
  223. * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_EnableClock\n
  224. * AHBENR DMA2EN LL_AHB1_GRP1_EnableClock\n
  225. * AHBENR SRAMEN LL_AHB1_GRP1_EnableClock\n
  226. * AHBENR FLITFEN LL_AHB1_GRP1_EnableClock\n
  227. * AHBENR FMCEN LL_AHB1_GRP1_EnableClock\n
  228. * AHBENR CRCEN LL_AHB1_GRP1_EnableClock\n
  229. * AHBENR GPIOHEN LL_AHB1_GRP1_EnableClock\n
  230. * AHBENR GPIOAEN LL_AHB1_GRP1_EnableClock\n
  231. * AHBENR GPIOBEN LL_AHB1_GRP1_EnableClock\n
  232. * AHBENR GPIOCEN LL_AHB1_GRP1_EnableClock\n
  233. * AHBENR GPIODEN LL_AHB1_GRP1_EnableClock\n
  234. * AHBENR GPIOEEN LL_AHB1_GRP1_EnableClock\n
  235. * AHBENR GPIOFEN LL_AHB1_GRP1_EnableClock\n
  236. * AHBENR GPIOGEN LL_AHB1_GRP1_EnableClock\n
  237. * AHBENR TSCEN LL_AHB1_GRP1_EnableClock\n
  238. * AHBENR ADC1EN LL_AHB1_GRP1_EnableClock\n
  239. * AHBENR ADC12EN LL_AHB1_GRP1_EnableClock\n
  240. * AHBENR ADC34EN LL_AHB1_GRP1_EnableClock
  241. * @param Periphs This parameter can be a combination of the following values:
  242. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  243. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  244. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  245. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  246. * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*)
  247. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  248. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  249. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  250. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  251. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  252. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  253. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  254. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF
  255. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  256. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  257. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*)
  258. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*)
  259. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*)
  260. *
  261. * (*) value not defined in all devices.
  262. * @retval None
  263. */
  264. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  265. {
  266. __IO uint32_t tmpreg;
  267. SET_BIT(RCC->AHBENR, Periphs);
  268. /* Delay after an RCC peripheral clock enabling */
  269. tmpreg = READ_BIT(RCC->AHBENR, Periphs);
  270. (void)tmpreg;
  271. }
  272. /**
  273. * @brief Check if AHB1 peripheral clock is enabled or not
  274. * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n
  275. * AHBENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n
  276. * AHBENR SRAMEN LL_AHB1_GRP1_IsEnabledClock\n
  277. * AHBENR FLITFEN LL_AHB1_GRP1_IsEnabledClock\n
  278. * AHBENR FMCEN LL_AHB1_GRP1_IsEnabledClock\n
  279. * AHBENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  280. * AHBENR GPIOHEN LL_AHB1_GRP1_IsEnabledClock\n
  281. * AHBENR GPIOAEN LL_AHB1_GRP1_IsEnabledClock\n
  282. * AHBENR GPIOBEN LL_AHB1_GRP1_IsEnabledClock\n
  283. * AHBENR GPIOCEN LL_AHB1_GRP1_IsEnabledClock\n
  284. * AHBENR GPIODEN LL_AHB1_GRP1_IsEnabledClock\n
  285. * AHBENR GPIOEEN LL_AHB1_GRP1_IsEnabledClock\n
  286. * AHBENR GPIOFEN LL_AHB1_GRP1_IsEnabledClock\n
  287. * AHBENR GPIOGEN LL_AHB1_GRP1_IsEnabledClock\n
  288. * AHBENR TSCEN LL_AHB1_GRP1_IsEnabledClock\n
  289. * AHBENR ADC1EN LL_AHB1_GRP1_IsEnabledClock\n
  290. * AHBENR ADC12EN LL_AHB1_GRP1_IsEnabledClock\n
  291. * AHBENR ADC34EN LL_AHB1_GRP1_IsEnabledClock
  292. * @param Periphs This parameter can be a combination of the following values:
  293. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  294. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  295. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  296. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  297. * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*)
  298. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  299. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  300. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  301. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  302. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  303. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  304. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  305. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF
  306. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  307. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  308. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*)
  309. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*)
  310. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*)
  311. *
  312. * (*) value not defined in all devices.
  313. * @retval State of Periphs (1 or 0).
  314. */
  315. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  316. {
  317. return (READ_BIT(RCC->AHBENR, Periphs) == Periphs);
  318. }
  319. /**
  320. * @brief Disable AHB1 peripherals clock.
  321. * @rmtoll AHBENR DMA1EN LL_AHB1_GRP1_DisableClock\n
  322. * AHBENR DMA2EN LL_AHB1_GRP1_DisableClock\n
  323. * AHBENR SRAMEN LL_AHB1_GRP1_DisableClock\n
  324. * AHBENR FLITFEN LL_AHB1_GRP1_DisableClock\n
  325. * AHBENR FMCEN LL_AHB1_GRP1_DisableClock\n
  326. * AHBENR CRCEN LL_AHB1_GRP1_DisableClock\n
  327. * AHBENR GPIOHEN LL_AHB1_GRP1_DisableClock\n
  328. * AHBENR GPIOAEN LL_AHB1_GRP1_DisableClock\n
  329. * AHBENR GPIOBEN LL_AHB1_GRP1_DisableClock\n
  330. * AHBENR GPIOCEN LL_AHB1_GRP1_DisableClock\n
  331. * AHBENR GPIODEN LL_AHB1_GRP1_DisableClock\n
  332. * AHBENR GPIOEEN LL_AHB1_GRP1_DisableClock\n
  333. * AHBENR GPIOFEN LL_AHB1_GRP1_DisableClock\n
  334. * AHBENR GPIOGEN LL_AHB1_GRP1_DisableClock\n
  335. * AHBENR TSCEN LL_AHB1_GRP1_DisableClock\n
  336. * AHBENR ADC1EN LL_AHB1_GRP1_DisableClock\n
  337. * AHBENR ADC12EN LL_AHB1_GRP1_DisableClock\n
  338. * AHBENR ADC34EN LL_AHB1_GRP1_DisableClock
  339. * @param Periphs This parameter can be a combination of the following values:
  340. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  341. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  342. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  343. * @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  344. * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*)
  345. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  346. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  347. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  348. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  349. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  350. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  351. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  352. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF
  353. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  354. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  355. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*)
  356. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*)
  357. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*)
  358. *
  359. * (*) value not defined in all devices.
  360. * @retval None
  361. */
  362. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  363. {
  364. CLEAR_BIT(RCC->AHBENR, Periphs);
  365. }
  366. /**
  367. * @brief Force AHB1 peripherals reset.
  368. * @rmtoll AHBRSTR FMCRST LL_AHB1_GRP1_ForceReset\n
  369. * AHBRSTR GPIOHRST LL_AHB1_GRP1_ForceReset\n
  370. * AHBRSTR GPIOARST LL_AHB1_GRP1_ForceReset\n
  371. * AHBRSTR GPIOBRST LL_AHB1_GRP1_ForceReset\n
  372. * AHBRSTR GPIOCRST LL_AHB1_GRP1_ForceReset\n
  373. * AHBRSTR GPIODRST LL_AHB1_GRP1_ForceReset\n
  374. * AHBRSTR GPIOERST LL_AHB1_GRP1_ForceReset\n
  375. * AHBRSTR GPIOFRST LL_AHB1_GRP1_ForceReset\n
  376. * AHBRSTR GPIOGRST LL_AHB1_GRP1_ForceReset\n
  377. * AHBRSTR TSCRST LL_AHB1_GRP1_ForceReset\n
  378. * AHBRSTR ADC1RST LL_AHB1_GRP1_ForceReset\n
  379. * AHBRSTR ADC12RST LL_AHB1_GRP1_ForceReset\n
  380. * AHBRSTR ADC34RST LL_AHB1_GRP1_ForceReset
  381. * @param Periphs This parameter can be a combination of the following values:
  382. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  383. * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*)
  384. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  385. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  386. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  387. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  388. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  389. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  390. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF
  391. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  392. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  393. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*)
  394. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*)
  395. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*)
  396. *
  397. * (*) value not defined in all devices.
  398. * @retval None
  399. */
  400. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  401. {
  402. SET_BIT(RCC->AHBRSTR, Periphs);
  403. }
  404. /**
  405. * @brief Release AHB1 peripherals reset.
  406. * @rmtoll AHBRSTR FMCRST LL_AHB1_GRP1_ReleaseReset\n
  407. * AHBRSTR GPIOHRST LL_AHB1_GRP1_ReleaseReset\n
  408. * AHBRSTR GPIOARST LL_AHB1_GRP1_ReleaseReset\n
  409. * AHBRSTR GPIOBRST LL_AHB1_GRP1_ReleaseReset\n
  410. * AHBRSTR GPIOCRST LL_AHB1_GRP1_ReleaseReset\n
  411. * AHBRSTR GPIODRST LL_AHB1_GRP1_ReleaseReset\n
  412. * AHBRSTR GPIOERST LL_AHB1_GRP1_ReleaseReset\n
  413. * AHBRSTR GPIOFRST LL_AHB1_GRP1_ReleaseReset\n
  414. * AHBRSTR GPIOGRST LL_AHB1_GRP1_ReleaseReset\n
  415. * AHBRSTR TSCRST LL_AHB1_GRP1_ReleaseReset\n
  416. * AHBRSTR ADC1RST LL_AHB1_GRP1_ReleaseReset\n
  417. * AHBRSTR ADC12RST LL_AHB1_GRP1_ReleaseReset\n
  418. * AHBRSTR ADC34RST LL_AHB1_GRP1_ReleaseReset
  419. * @param Periphs This parameter can be a combination of the following values:
  420. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  421. * @arg @ref LL_AHB1_GRP1_PERIPH_FMC (*)
  422. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  423. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  424. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  425. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  426. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  427. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  428. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF
  429. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  430. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC
  431. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC1 (*)
  432. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC12 (*)
  433. * @arg @ref LL_AHB1_GRP1_PERIPH_ADC34 (*)
  434. *
  435. * (*) value not defined in all devices.
  436. * @retval None
  437. */
  438. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  439. {
  440. CLEAR_BIT(RCC->AHBRSTR, Periphs);
  441. }
  442. /**
  443. * @}
  444. */
  445. /** @defgroup BUS_LL_EF_APB1 APB1
  446. * @{
  447. */
  448. /**
  449. * @brief Enable APB1 peripherals clock.
  450. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n
  451. * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n
  452. * APB1ENR TIM4EN LL_APB1_GRP1_EnableClock\n
  453. * APB1ENR TIM5EN LL_APB1_GRP1_EnableClock\n
  454. * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n
  455. * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n
  456. * APB1ENR TIM12EN LL_APB1_GRP1_EnableClock\n
  457. * APB1ENR TIM13EN LL_APB1_GRP1_EnableClock\n
  458. * APB1ENR TIM14EN LL_APB1_GRP1_EnableClock\n
  459. * APB1ENR TIM18EN LL_APB1_GRP1_EnableClock\n
  460. * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n
  461. * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n
  462. * APB1ENR SPI3EN LL_APB1_GRP1_EnableClock\n
  463. * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n
  464. * APB1ENR USART3EN LL_APB1_GRP1_EnableClock\n
  465. * APB1ENR UART4EN LL_APB1_GRP1_EnableClock\n
  466. * APB1ENR UART5EN LL_APB1_GRP1_EnableClock\n
  467. * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n
  468. * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n
  469. * APB1ENR USBEN LL_APB1_GRP1_EnableClock\n
  470. * APB1ENR CANEN LL_APB1_GRP1_EnableClock\n
  471. * APB1ENR DAC2EN LL_APB1_GRP1_EnableClock\n
  472. * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n
  473. * APB1ENR DAC1EN LL_APB1_GRP1_EnableClock\n
  474. * APB1ENR CECEN LL_APB1_GRP1_EnableClock\n
  475. * APB1ENR I2C3EN LL_APB1_GRP1_EnableClock
  476. * @param Periphs This parameter can be a combination of the following values:
  477. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  478. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  479. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  480. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  481. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  482. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  483. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  484. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  485. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  486. * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*)
  487. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  488. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  489. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  490. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  491. * @arg @ref LL_APB1_GRP1_PERIPH_USART3
  492. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  493. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  494. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  495. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  496. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  497. * @arg @ref LL_APB1_GRP1_PERIPH_CAN (*)
  498. * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*)
  499. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  500. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  501. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  502. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  503. *
  504. * (*) value not defined in all devices.
  505. * @retval None
  506. */
  507. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  508. {
  509. __IO uint32_t tmpreg;
  510. SET_BIT(RCC->APB1ENR, Periphs);
  511. /* Delay after an RCC peripheral clock enabling */
  512. tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
  513. (void)tmpreg;
  514. }
  515. /**
  516. * @brief Check if APB1 peripheral clock is enabled or not
  517. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  518. * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n
  519. * APB1ENR TIM4EN LL_APB1_GRP1_IsEnabledClock\n
  520. * APB1ENR TIM5EN LL_APB1_GRP1_IsEnabledClock\n
  521. * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n
  522. * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n
  523. * APB1ENR TIM12EN LL_APB1_GRP1_IsEnabledClock\n
  524. * APB1ENR TIM13EN LL_APB1_GRP1_IsEnabledClock\n
  525. * APB1ENR TIM14EN LL_APB1_GRP1_IsEnabledClock\n
  526. * APB1ENR TIM18EN LL_APB1_GRP1_IsEnabledClock\n
  527. * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  528. * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  529. * APB1ENR SPI3EN LL_APB1_GRP1_IsEnabledClock\n
  530. * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n
  531. * APB1ENR USART3EN LL_APB1_GRP1_IsEnabledClock\n
  532. * APB1ENR UART4EN LL_APB1_GRP1_IsEnabledClock\n
  533. * APB1ENR UART5EN LL_APB1_GRP1_IsEnabledClock\n
  534. * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  535. * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n
  536. * APB1ENR USBEN LL_APB1_GRP1_IsEnabledClock\n
  537. * APB1ENR CANEN LL_APB1_GRP1_IsEnabledClock\n
  538. * APB1ENR DAC2EN LL_APB1_GRP1_IsEnabledClock\n
  539. * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n
  540. * APB1ENR DAC1EN LL_APB1_GRP1_IsEnabledClock\n
  541. * APB1ENR CECEN LL_APB1_GRP1_IsEnabledClock\n
  542. * APB1ENR I2C3EN LL_APB1_GRP1_IsEnabledClock
  543. * @param Periphs This parameter can be a combination of the following values:
  544. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  545. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  546. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  547. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  548. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  549. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  550. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  551. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  552. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  553. * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*)
  554. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  555. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  556. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  557. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  558. * @arg @ref LL_APB1_GRP1_PERIPH_USART3
  559. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  560. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  561. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  562. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  563. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  564. * @arg @ref LL_APB1_GRP1_PERIPH_CAN (*)
  565. * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*)
  566. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  567. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  568. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  569. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  570. *
  571. * (*) value not defined in all devices.
  572. * @retval State of Periphs (1 or 0).
  573. */
  574. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  575. {
  576. return (READ_BIT(RCC->APB1ENR, Periphs) == Periphs);
  577. }
  578. /**
  579. * @brief Disable APB1 peripherals clock.
  580. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n
  581. * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n
  582. * APB1ENR TIM4EN LL_APB1_GRP1_DisableClock\n
  583. * APB1ENR TIM5EN LL_APB1_GRP1_DisableClock\n
  584. * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n
  585. * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n
  586. * APB1ENR TIM12EN LL_APB1_GRP1_DisableClock\n
  587. * APB1ENR TIM13EN LL_APB1_GRP1_DisableClock\n
  588. * APB1ENR TIM14EN LL_APB1_GRP1_DisableClock\n
  589. * APB1ENR TIM18EN LL_APB1_GRP1_DisableClock\n
  590. * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n
  591. * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n
  592. * APB1ENR SPI3EN LL_APB1_GRP1_DisableClock\n
  593. * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n
  594. * APB1ENR USART3EN LL_APB1_GRP1_DisableClock\n
  595. * APB1ENR UART4EN LL_APB1_GRP1_DisableClock\n
  596. * APB1ENR UART5EN LL_APB1_GRP1_DisableClock\n
  597. * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n
  598. * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n
  599. * APB1ENR USBEN LL_APB1_GRP1_DisableClock\n
  600. * APB1ENR CANEN LL_APB1_GRP1_DisableClock\n
  601. * APB1ENR DAC2EN LL_APB1_GRP1_DisableClock\n
  602. * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n
  603. * APB1ENR DAC1EN LL_APB1_GRP1_DisableClock\n
  604. * APB1ENR CECEN LL_APB1_GRP1_DisableClock\n
  605. * APB1ENR I2C3EN LL_APB1_GRP1_DisableClock
  606. * @param Periphs This parameter can be a combination of the following values:
  607. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  608. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  609. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  610. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  611. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  612. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  613. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  614. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  615. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  616. * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*)
  617. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  618. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  619. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  620. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  621. * @arg @ref LL_APB1_GRP1_PERIPH_USART3
  622. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  623. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  624. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  625. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  626. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  627. * @arg @ref LL_APB1_GRP1_PERIPH_CAN (*)
  628. * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*)
  629. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  630. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  631. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  632. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  633. *
  634. * (*) value not defined in all devices.
  635. * @retval None
  636. */
  637. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  638. {
  639. CLEAR_BIT(RCC->APB1ENR, Periphs);
  640. }
  641. /**
  642. * @brief Force APB1 peripherals reset.
  643. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n
  644. * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n
  645. * APB1RSTR TIM4RST LL_APB1_GRP1_ForceReset\n
  646. * APB1RSTR TIM5RST LL_APB1_GRP1_ForceReset\n
  647. * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n
  648. * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n
  649. * APB1RSTR TIM12RST LL_APB1_GRP1_ForceReset\n
  650. * APB1RSTR TIM13RST LL_APB1_GRP1_ForceReset\n
  651. * APB1RSTR TIM14RST LL_APB1_GRP1_ForceReset\n
  652. * APB1RSTR TIM18RST LL_APB1_GRP1_ForceReset\n
  653. * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n
  654. * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n
  655. * APB1RSTR SPI3RST LL_APB1_GRP1_ForceReset\n
  656. * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n
  657. * APB1RSTR USART3RST LL_APB1_GRP1_ForceReset\n
  658. * APB1RSTR UART4RST LL_APB1_GRP1_ForceReset\n
  659. * APB1RSTR UART5RST LL_APB1_GRP1_ForceReset\n
  660. * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n
  661. * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n
  662. * APB1RSTR USBRST LL_APB1_GRP1_ForceReset\n
  663. * APB1RSTR CANRST LL_APB1_GRP1_ForceReset\n
  664. * APB1RSTR DAC2RST LL_APB1_GRP1_ForceReset\n
  665. * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n
  666. * APB1RSTR DAC1RST LL_APB1_GRP1_ForceReset\n
  667. * APB1RSTR CECRST LL_APB1_GRP1_ForceReset\n
  668. * APB1RSTR I2C3RST LL_APB1_GRP1_ForceReset
  669. * @param Periphs This parameter can be a combination of the following values:
  670. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  671. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  672. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  673. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  674. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  675. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  676. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  677. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  678. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  679. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  680. * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*)
  681. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  682. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  683. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  684. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  685. * @arg @ref LL_APB1_GRP1_PERIPH_USART3
  686. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  687. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  688. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  689. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  690. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  691. * @arg @ref LL_APB1_GRP1_PERIPH_CAN (*)
  692. * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*)
  693. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  694. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  695. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  696. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  697. *
  698. * (*) value not defined in all devices.
  699. * @retval None
  700. */
  701. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  702. {
  703. SET_BIT(RCC->APB1RSTR, Periphs);
  704. }
  705. /**
  706. * @brief Release APB1 peripherals reset.
  707. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n
  708. * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n
  709. * APB1RSTR TIM4RST LL_APB1_GRP1_ReleaseReset\n
  710. * APB1RSTR TIM5RST LL_APB1_GRP1_ReleaseReset\n
  711. * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n
  712. * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n
  713. * APB1RSTR TIM12RST LL_APB1_GRP1_ReleaseReset\n
  714. * APB1RSTR TIM13RST LL_APB1_GRP1_ReleaseReset\n
  715. * APB1RSTR TIM14RST LL_APB1_GRP1_ReleaseReset\n
  716. * APB1RSTR TIM18RST LL_APB1_GRP1_ReleaseReset\n
  717. * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n
  718. * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n
  719. * APB1RSTR SPI3RST LL_APB1_GRP1_ReleaseReset\n
  720. * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n
  721. * APB1RSTR USART3RST LL_APB1_GRP1_ReleaseReset\n
  722. * APB1RSTR UART4RST LL_APB1_GRP1_ReleaseReset\n
  723. * APB1RSTR UART5RST LL_APB1_GRP1_ReleaseReset\n
  724. * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n
  725. * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n
  726. * APB1RSTR USBRST LL_APB1_GRP1_ReleaseReset\n
  727. * APB1RSTR CANRST LL_APB1_GRP1_ReleaseReset\n
  728. * APB1RSTR DAC2RST LL_APB1_GRP1_ReleaseReset\n
  729. * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n
  730. * APB1RSTR DAC1RST LL_APB1_GRP1_ReleaseReset\n
  731. * APB1RSTR CECRST LL_APB1_GRP1_ReleaseReset\n
  732. * APB1RSTR I2C3RST LL_APB1_GRP1_ReleaseReset
  733. * @param Periphs This parameter can be a combination of the following values:
  734. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  735. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  736. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  737. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  738. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  739. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  740. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  741. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  742. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  743. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  744. * @arg @ref LL_APB1_GRP1_PERIPH_TIM18 (*)
  745. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  746. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  747. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  748. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  749. * @arg @ref LL_APB1_GRP1_PERIPH_USART3
  750. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  751. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  752. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  753. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  754. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  755. * @arg @ref LL_APB1_GRP1_PERIPH_CAN (*)
  756. * @arg @ref LL_APB1_GRP1_PERIPH_DAC2 (*)
  757. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  758. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  759. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  760. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  761. *
  762. * (*) value not defined in all devices.
  763. * @retval None
  764. */
  765. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  766. {
  767. CLEAR_BIT(RCC->APB1RSTR, Periphs);
  768. }
  769. /**
  770. * @}
  771. */
  772. /** @defgroup BUS_LL_EF_APB2 APB2
  773. * @{
  774. */
  775. /**
  776. * @brief Enable APB2 peripherals clock.
  777. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n
  778. * APB2ENR ADC1EN LL_APB2_GRP1_EnableClock\n
  779. * APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n
  780. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  781. * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n
  782. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  783. * APB2ENR SPI4EN LL_APB2_GRP1_EnableClock\n
  784. * APB2ENR TIM15EN LL_APB2_GRP1_EnableClock\n
  785. * APB2ENR TIM16EN LL_APB2_GRP1_EnableClock\n
  786. * APB2ENR TIM17EN LL_APB2_GRP1_EnableClock\n
  787. * APB2ENR TIM19EN LL_APB2_GRP1_EnableClock\n
  788. * APB2ENR TIM20EN LL_APB2_GRP1_EnableClock\n
  789. * APB2ENR HRTIM1EN LL_APB2_GRP1_EnableClock\n
  790. * APB2ENR SDADC1EN LL_APB2_GRP1_EnableClock\n
  791. * APB2ENR SDADC2EN LL_APB2_GRP1_EnableClock\n
  792. * APB2ENR SDADC3EN LL_APB2_GRP1_EnableClock
  793. * @param Periphs This parameter can be a combination of the following values:
  794. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  795. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*)
  796. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 (*)
  797. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 (*)
  798. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  799. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  800. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  801. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  802. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  803. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17
  804. * @arg @ref LL_APB2_GRP1_PERIPH_TIM19 (*)
  805. * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*)
  806. * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*)
  807. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*)
  808. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*)
  809. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*)
  810. *
  811. * (*) value not defined in all devices.
  812. * @retval None
  813. */
  814. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  815. {
  816. __IO uint32_t tmpreg;
  817. SET_BIT(RCC->APB2ENR, Periphs);
  818. /* Delay after an RCC peripheral clock enabling */
  819. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  820. (void)tmpreg;
  821. }
  822. /**
  823. * @brief Check if APB2 peripheral clock is enabled or not
  824. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n
  825. * APB2ENR ADC1EN LL_APB2_GRP1_IsEnabledClock\n
  826. * APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n
  827. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  828. * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n
  829. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  830. * APB2ENR SPI4EN LL_APB2_GRP1_IsEnabledClock\n
  831. * APB2ENR TIM15EN LL_APB2_GRP1_IsEnabledClock\n
  832. * APB2ENR TIM16EN LL_APB2_GRP1_IsEnabledClock\n
  833. * APB2ENR TIM17EN LL_APB2_GRP1_IsEnabledClock\n
  834. * APB2ENR TIM19EN LL_APB2_GRP1_IsEnabledClock\n
  835. * APB2ENR TIM20EN LL_APB2_GRP1_IsEnabledClock\n
  836. * APB2ENR HRTIM1EN LL_APB2_GRP1_IsEnabledClock\n
  837. * APB2ENR SDADC1EN LL_APB2_GRP1_IsEnabledClock\n
  838. * APB2ENR SDADC2EN LL_APB2_GRP1_IsEnabledClock\n
  839. * APB2ENR SDADC3EN LL_APB2_GRP1_IsEnabledClock
  840. * @param Periphs This parameter can be a combination of the following values:
  841. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  842. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*)
  843. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 (*)
  844. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 (*)
  845. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  846. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  847. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  848. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  849. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  850. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17
  851. * @arg @ref LL_APB2_GRP1_PERIPH_TIM19 (*)
  852. * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*)
  853. * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*)
  854. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*)
  855. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*)
  856. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*)
  857. *
  858. * (*) value not defined in all devices.
  859. * @retval State of Periphs (1 or 0).
  860. */
  861. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  862. {
  863. return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
  864. }
  865. /**
  866. * @brief Disable APB2 peripherals clock.
  867. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n
  868. * APB2ENR ADC1EN LL_APB2_GRP1_DisableClock\n
  869. * APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n
  870. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  871. * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n
  872. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  873. * APB2ENR SPI4EN LL_APB2_GRP1_DisableClock\n
  874. * APB2ENR TIM15EN LL_APB2_GRP1_DisableClock\n
  875. * APB2ENR TIM16EN LL_APB2_GRP1_DisableClock\n
  876. * APB2ENR TIM17EN LL_APB2_GRP1_DisableClock\n
  877. * APB2ENR TIM19EN LL_APB2_GRP1_DisableClock\n
  878. * APB2ENR TIM20EN LL_APB2_GRP1_DisableClock\n
  879. * APB2ENR HRTIM1EN LL_APB2_GRP1_DisableClock\n
  880. * APB2ENR SDADC1EN LL_APB2_GRP1_DisableClock\n
  881. * APB2ENR SDADC2EN LL_APB2_GRP1_DisableClock\n
  882. * APB2ENR SDADC3EN LL_APB2_GRP1_DisableClock
  883. * @param Periphs This parameter can be a combination of the following values:
  884. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  885. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*)
  886. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 (*)
  887. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 (*)
  888. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  889. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  890. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  891. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  892. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  893. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17
  894. * @arg @ref LL_APB2_GRP1_PERIPH_TIM19 (*)
  895. * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*)
  896. * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*)
  897. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*)
  898. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*)
  899. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*)
  900. *
  901. * (*) value not defined in all devices.
  902. * @retval None
  903. */
  904. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  905. {
  906. CLEAR_BIT(RCC->APB2ENR, Periphs);
  907. }
  908. /**
  909. * @brief Force APB2 peripherals reset.
  910. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n
  911. * APB2RSTR ADC1RST LL_APB2_GRP1_ForceReset\n
  912. * APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n
  913. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  914. * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n
  915. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  916. * APB2RSTR SPI4RST LL_APB2_GRP1_ForceReset\n
  917. * APB2RSTR TIM15RST LL_APB2_GRP1_ForceReset\n
  918. * APB2RSTR TIM16RST LL_APB2_GRP1_ForceReset\n
  919. * APB2RSTR TIM17RST LL_APB2_GRP1_ForceReset\n
  920. * APB2RSTR TIM19RST LL_APB2_GRP1_ForceReset\n
  921. * APB2RSTR TIM20RST LL_APB2_GRP1_ForceReset\n
  922. * APB2RSTR HRTIM1RST LL_APB2_GRP1_ForceReset\n
  923. * APB2RSTR SDADC1RST LL_APB2_GRP1_ForceReset\n
  924. * APB2RSTR SDADC2RST LL_APB2_GRP1_ForceReset\n
  925. * APB2RSTR SDADC3RST LL_APB2_GRP1_ForceReset
  926. * @param Periphs This parameter can be a combination of the following values:
  927. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  928. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  929. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*)
  930. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 (*)
  931. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 (*)
  932. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  933. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  934. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  935. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  936. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  937. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17
  938. * @arg @ref LL_APB2_GRP1_PERIPH_TIM19 (*)
  939. * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*)
  940. * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*)
  941. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*)
  942. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*)
  943. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*)
  944. *
  945. * (*) value not defined in all devices.
  946. * @retval None
  947. */
  948. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  949. {
  950. SET_BIT(RCC->APB2RSTR, Periphs);
  951. }
  952. /**
  953. * @brief Release APB2 peripherals reset.
  954. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n
  955. * APB2RSTR ADC1RST LL_APB2_GRP1_ReleaseReset\n
  956. * APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n
  957. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  958. * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n
  959. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  960. * APB2RSTR SPI4RST LL_APB2_GRP1_ReleaseReset\n
  961. * APB2RSTR TIM15RST LL_APB2_GRP1_ReleaseReset\n
  962. * APB2RSTR TIM16RST LL_APB2_GRP1_ReleaseReset\n
  963. * APB2RSTR TIM17RST LL_APB2_GRP1_ReleaseReset\n
  964. * APB2RSTR TIM19RST LL_APB2_GRP1_ReleaseReset\n
  965. * APB2RSTR TIM20RST LL_APB2_GRP1_ReleaseReset\n
  966. * APB2RSTR HRTIM1RST LL_APB2_GRP1_ReleaseReset\n
  967. * APB2RSTR SDADC1RST LL_APB2_GRP1_ReleaseReset\n
  968. * APB2RSTR SDADC2RST LL_APB2_GRP1_ReleaseReset\n
  969. * APB2RSTR SDADC3RST LL_APB2_GRP1_ReleaseReset
  970. * @param Periphs This parameter can be a combination of the following values:
  971. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  972. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  973. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1 (*)
  974. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1 (*)
  975. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1 (*)
  976. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  977. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  978. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  979. * @arg @ref LL_APB2_GRP1_PERIPH_TIM15
  980. * @arg @ref LL_APB2_GRP1_PERIPH_TIM16
  981. * @arg @ref LL_APB2_GRP1_PERIPH_TIM17
  982. * @arg @ref LL_APB2_GRP1_PERIPH_TIM19 (*)
  983. * @arg @ref LL_APB2_GRP1_PERIPH_TIM20 (*)
  984. * @arg @ref LL_APB2_GRP1_PERIPH_HRTIM1 (*)
  985. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC1 (*)
  986. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC2 (*)
  987. * @arg @ref LL_APB2_GRP1_PERIPH_SDADC3 (*)
  988. *
  989. * (*) value not defined in all devices.
  990. * @retval None
  991. */
  992. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  993. {
  994. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  995. }
  996. /**
  997. * @}
  998. */
  999. /**
  1000. * @}
  1001. */
  1002. /**
  1003. * @}
  1004. */
  1005. #endif /* defined(RCC) */
  1006. /**
  1007. * @}
  1008. */
  1009. #ifdef __cplusplus
  1010. }
  1011. #endif
  1012. #endif /* __STM32F3xx_LL_BUS_H */