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.
 
 
 

2127 lines
99 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32f4xx_ll_bus.h
  4. * @author MCD Application Team
  5. * @version V1.7.1
  6. * @date 14-April-2017
  7. * @brief Header file of BUS LL module.
  8. @verbatim
  9. ##### RCC Limitations #####
  10. ==============================================================================
  11. [..]
  12. A delay between an RCC peripheral clock enable and the effective peripheral
  13. enabling should be taken into account in order to manage the peripheral read/write
  14. from/to registers.
  15. (+) This delay depends on the peripheral mapping.
  16. (++) AHB & APB peripherals, 1 dummy read is necessary
  17. [..]
  18. Workarounds:
  19. (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
  20. inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
  21. @endverbatim
  22. ******************************************************************************
  23. * @attention
  24. *
  25. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  26. *
  27. * Redistribution and use in source and binary forms, with or without modification,
  28. * are permitted provided that the following conditions are met:
  29. * 1. Redistributions of source code must retain the above copyright notice,
  30. * this list of conditions and the following disclaimer.
  31. * 2. Redistributions in binary form must reproduce the above copyright notice,
  32. * this list of conditions and the following disclaimer in the documentation
  33. * and/or other materials provided with the distribution.
  34. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  35. * may be used to endorse or promote products derived from this software
  36. * without specific prior written permission.
  37. *
  38. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  39. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  40. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  41. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  42. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  43. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  44. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  45. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  46. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  47. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48. *
  49. ******************************************************************************
  50. */
  51. /* Define to prevent recursive inclusion -------------------------------------*/
  52. #ifndef __STM32F4xx_LL_BUS_H
  53. #define __STM32F4xx_LL_BUS_H
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57. /* Includes ------------------------------------------------------------------*/
  58. #include "stm32f4xx.h"
  59. /** @addtogroup STM32F4xx_LL_Driver
  60. * @{
  61. */
  62. #if defined(RCC)
  63. /** @defgroup BUS_LL BUS
  64. * @{
  65. */
  66. /* Private types -------------------------------------------------------------*/
  67. /* Private variables ---------------------------------------------------------*/
  68. /* Private constants ---------------------------------------------------------*/
  69. /* Private macros ------------------------------------------------------------*/
  70. /* Exported types ------------------------------------------------------------*/
  71. /* Exported constants --------------------------------------------------------*/
  72. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  73. * @{
  74. */
  75. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  76. * @{
  77. */
  78. #define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  79. #define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHB1ENR_GPIOAEN
  80. #define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHB1ENR_GPIOBEN
  81. #define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHB1ENR_GPIOCEN
  82. #if defined(GPIOD)
  83. #define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHB1ENR_GPIODEN
  84. #endif /* GPIOD */
  85. #if defined(GPIOE)
  86. #define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHB1ENR_GPIOEEN
  87. #endif /* GPIOE */
  88. #if defined(GPIOF)
  89. #define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHB1ENR_GPIOFEN
  90. #endif /* GPIOF */
  91. #if defined(GPIOG)
  92. #define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHB1ENR_GPIOGEN
  93. #endif /* GPIOG */
  94. #if defined(GPIOH)
  95. #define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHB1ENR_GPIOHEN
  96. #endif /* GPIOH */
  97. #if defined(GPIOI)
  98. #define LL_AHB1_GRP1_PERIPH_GPIOI RCC_AHB1ENR_GPIOIEN
  99. #endif /* GPIOI */
  100. #if defined(GPIOJ)
  101. #define LL_AHB1_GRP1_PERIPH_GPIOJ RCC_AHB1ENR_GPIOJEN
  102. #endif /* GPIOJ */
  103. #if defined(GPIOK)
  104. #define LL_AHB1_GRP1_PERIPH_GPIOK RCC_AHB1ENR_GPIOKEN
  105. #endif /* GPIOK */
  106. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN
  107. #if defined(RCC_AHB1ENR_BKPSRAMEN)
  108. #define LL_AHB1_GRP1_PERIPH_BKPSRAM RCC_AHB1ENR_BKPSRAMEN
  109. #endif /* RCC_AHB1ENR_BKPSRAMEN */
  110. #if defined(RCC_AHB1ENR_CCMDATARAMEN)
  111. #define LL_AHB1_GRP1_PERIPH_CCMDATARAM RCC_AHB1ENR_CCMDATARAMEN
  112. #endif /* RCC_AHB1ENR_CCMDATARAMEN */
  113. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN
  114. #define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN
  115. #if defined(RCC_AHB1ENR_RNGEN)
  116. #define LL_AHB1_GRP1_PERIPH_RNG RCC_AHB1ENR_RNGEN
  117. #endif /* RCC_AHB1ENR_RNGEN */
  118. #if defined(DMA2D)
  119. #define LL_AHB1_GRP1_PERIPH_DMA2D RCC_AHB1ENR_DMA2DEN
  120. #endif /* DMA2D */
  121. #if defined(ETH)
  122. #define LL_AHB1_GRP1_PERIPH_ETHMAC RCC_AHB1ENR_ETHMACEN
  123. #define LL_AHB1_GRP1_PERIPH_ETHMACTX RCC_AHB1ENR_ETHMACTXEN
  124. #define LL_AHB1_GRP1_PERIPH_ETHMACRX RCC_AHB1ENR_ETHMACRXEN
  125. #define LL_AHB1_GRP1_PERIPH_ETHMACPTP RCC_AHB1ENR_ETHMACPTPEN
  126. #endif /* ETH */
  127. #if defined(USB_OTG_HS)
  128. #define LL_AHB1_GRP1_PERIPH_OTGHS RCC_AHB1ENR_OTGHSEN
  129. #define LL_AHB1_GRP1_PERIPH_OTGHSULPI RCC_AHB1ENR_OTGHSULPIEN
  130. #endif /* USB_OTG_HS */
  131. #define LL_AHB1_GRP1_PERIPH_FLITF RCC_AHB1LPENR_FLITFLPEN
  132. #define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1LPENR_SRAM1LPEN
  133. #if defined(RCC_AHB1LPENR_SRAM2LPEN)
  134. #define LL_AHB1_GRP1_PERIPH_SRAM2 RCC_AHB1LPENR_SRAM2LPEN
  135. #endif /* RCC_AHB1LPENR_SRAM2LPEN */
  136. #if defined(RCC_AHB1LPENR_SRAM3LPEN)
  137. #define LL_AHB1_GRP1_PERIPH_SRAM3 RCC_AHB1LPENR_SRAM3LPEN
  138. #endif /* RCC_AHB1LPENR_SRAM3LPEN */
  139. /**
  140. * @}
  141. */
  142. #if defined(RCC_AHB2_SUPPORT)
  143. /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH AHB2 GRP1 PERIPH
  144. * @{
  145. */
  146. #define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  147. #if defined(DCMI)
  148. #define LL_AHB2_GRP1_PERIPH_DCMI RCC_AHB2ENR_DCMIEN
  149. #endif /* DCMI */
  150. #if defined(CRYP)
  151. #define LL_AHB2_GRP1_PERIPH_CRYP RCC_AHB2ENR_CRYPEN
  152. #endif /* CRYP */
  153. #if defined(AES)
  154. #define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN
  155. #endif /* AES */
  156. #if defined(HASH)
  157. #define LL_AHB2_GRP1_PERIPH_HASH RCC_AHB2ENR_HASHEN
  158. #endif /* HASH */
  159. #if defined(RCC_AHB2ENR_RNGEN)
  160. #define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN
  161. #endif /* RCC_AHB2ENR_RNGEN */
  162. #if defined(USB_OTG_FS)
  163. #define LL_AHB2_GRP1_PERIPH_OTGFS RCC_AHB2ENR_OTGFSEN
  164. #endif /* USB_OTG_FS */
  165. /**
  166. * @}
  167. */
  168. #endif /* RCC_AHB2_SUPPORT */
  169. #if defined(RCC_AHB3_SUPPORT)
  170. /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH AHB3 GRP1 PERIPH
  171. * @{
  172. */
  173. #define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU
  174. #if defined(FSMC_Bank1)
  175. #define LL_AHB3_GRP1_PERIPH_FSMC RCC_AHB3ENR_FSMCEN
  176. #endif /* FSMC_Bank1 */
  177. #if defined(FMC_Bank1)
  178. #define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN
  179. #endif /* FMC_Bank1 */
  180. #if defined(QUADSPI)
  181. #define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN
  182. #endif /* QUADSPI */
  183. /**
  184. * @}
  185. */
  186. #endif /* RCC_AHB3_SUPPORT */
  187. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  188. * @{
  189. */
  190. #define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
  191. #if defined(TIM2)
  192. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN
  193. #endif /* TIM2 */
  194. #if defined(TIM3)
  195. #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN
  196. #endif /* TIM3 */
  197. #if defined(TIM4)
  198. #define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN
  199. #endif /* TIM4 */
  200. #define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN
  201. #if defined(TIM6)
  202. #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN
  203. #endif /* TIM6 */
  204. #if defined(TIM7)
  205. #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN
  206. #endif /* TIM7 */
  207. #if defined(TIM12)
  208. #define LL_APB1_GRP1_PERIPH_TIM12 RCC_APB1ENR_TIM12EN
  209. #endif /* TIM12 */
  210. #if defined(TIM13)
  211. #define LL_APB1_GRP1_PERIPH_TIM13 RCC_APB1ENR_TIM13EN
  212. #endif /* TIM13 */
  213. #if defined(TIM14)
  214. #define LL_APB1_GRP1_PERIPH_TIM14 RCC_APB1ENR_TIM14EN
  215. #endif /* TIM14 */
  216. #if defined(LPTIM1)
  217. #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR_LPTIM1EN
  218. #endif /* LPTIM1 */
  219. #if defined(RCC_APB1ENR_RTCAPBEN)
  220. #define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR_RTCAPBEN
  221. #endif /* RCC_APB1ENR_RTCAPBEN */
  222. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN
  223. #if defined(SPI2)
  224. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN
  225. #endif /* SPI2 */
  226. #if defined(SPI3)
  227. #define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN
  228. #endif /* SPI3 */
  229. #if defined(SPDIFRX)
  230. #define LL_APB1_GRP1_PERIPH_SPDIFRX RCC_APB1ENR_SPDIFRXEN
  231. #endif /* SPDIFRX */
  232. #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN
  233. #if defined(USART3)
  234. #define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN
  235. #endif /* USART3 */
  236. #if defined(UART4)
  237. #define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN
  238. #endif /* UART4 */
  239. #if defined(UART5)
  240. #define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN
  241. #endif /* UART5 */
  242. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN
  243. #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN
  244. #if defined(I2C3)
  245. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN
  246. #endif /* I2C3 */
  247. #if defined(FMPI2C1)
  248. #define LL_APB1_GRP1_PERIPH_FMPI2C1 RCC_APB1ENR_FMPI2C1EN
  249. #endif /* FMPI2C1 */
  250. #if defined(CAN1)
  251. #define LL_APB1_GRP1_PERIPH_CAN1 RCC_APB1ENR_CAN1EN
  252. #endif /* CAN1 */
  253. #if defined(CAN2)
  254. #define LL_APB1_GRP1_PERIPH_CAN2 RCC_APB1ENR_CAN2EN
  255. #endif /* CAN2 */
  256. #if defined(CAN3)
  257. #define LL_APB1_GRP1_PERIPH_CAN3 RCC_APB1ENR_CAN3EN
  258. #endif /* CAN3 */
  259. #if defined(CEC)
  260. #define LL_APB1_GRP1_PERIPH_CEC RCC_APB1ENR_CECEN
  261. #endif /* CEC */
  262. #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN
  263. #if defined(DAC1)
  264. #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DACEN
  265. #endif /* DAC1 */
  266. #if defined(UART7)
  267. #define LL_APB1_GRP1_PERIPH_UART7 RCC_APB1ENR_UART7EN
  268. #endif /* UART7 */
  269. #if defined(UART8)
  270. #define LL_APB1_GRP1_PERIPH_UART8 RCC_APB1ENR_UART8EN
  271. #endif /* UART8 */
  272. /**
  273. * @}
  274. */
  275. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  276. * @{
  277. */
  278. #define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
  279. #define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
  280. #if defined(TIM8)
  281. #define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN
  282. #endif /* TIM8 */
  283. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
  284. #if defined(USART6)
  285. #define LL_APB2_GRP1_PERIPH_USART6 RCC_APB2ENR_USART6EN
  286. #endif /* USART6 */
  287. #if defined(UART9)
  288. #define LL_APB2_GRP1_PERIPH_UART9 RCC_APB2ENR_UART9EN
  289. #endif /* UART9 */
  290. #if defined(UART10)
  291. #define LL_APB2_GRP1_PERIPH_UART10 RCC_APB2ENR_UART10EN
  292. #endif /* UART10 */
  293. #define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN
  294. #if defined(ADC2)
  295. #define LL_APB2_GRP1_PERIPH_ADC2 RCC_APB2ENR_ADC2EN
  296. #endif /* ADC2 */
  297. #if defined(ADC3)
  298. #define LL_APB2_GRP1_PERIPH_ADC3 RCC_APB2ENR_ADC3EN
  299. #endif /* ADC3 */
  300. #if defined(SDIO)
  301. #define LL_APB2_GRP1_PERIPH_SDIO RCC_APB2ENR_SDIOEN
  302. #endif /* SDIO */
  303. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
  304. #if defined(SPI4)
  305. #define LL_APB2_GRP1_PERIPH_SPI4 RCC_APB2ENR_SPI4EN
  306. #endif /* SPI4 */
  307. #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN
  308. #if defined(RCC_APB2ENR_EXTITEN)
  309. #define LL_APB2_GRP1_PERIPH_EXTI RCC_APB2ENR_EXTITEN
  310. #endif /* RCC_APB2ENR_EXTITEN */
  311. #define LL_APB2_GRP1_PERIPH_TIM9 RCC_APB2ENR_TIM9EN
  312. #if defined(TIM10)
  313. #define LL_APB2_GRP1_PERIPH_TIM10 RCC_APB2ENR_TIM10EN
  314. #endif /* TIM10 */
  315. #define LL_APB2_GRP1_PERIPH_TIM11 RCC_APB2ENR_TIM11EN
  316. #if defined(SPI5)
  317. #define LL_APB2_GRP1_PERIPH_SPI5 RCC_APB2ENR_SPI5EN
  318. #endif /* SPI5 */
  319. #if defined(SPI6)
  320. #define LL_APB2_GRP1_PERIPH_SPI6 RCC_APB2ENR_SPI6EN
  321. #endif /* SPI6 */
  322. #if defined(SAI1)
  323. #define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN
  324. #endif /* SAI1 */
  325. #if defined(SAI2)
  326. #define LL_APB2_GRP1_PERIPH_SAI2 RCC_APB2ENR_SAI2EN
  327. #endif /* SAI2 */
  328. #if defined(LTDC)
  329. #define LL_APB2_GRP1_PERIPH_LTDC RCC_APB2ENR_LTDCEN
  330. #endif /* LTDC */
  331. #if defined(DSI)
  332. #define LL_APB2_GRP1_PERIPH_DSI RCC_APB2ENR_DSIEN
  333. #endif /* DSI */
  334. #if defined(DFSDM1_Channel0)
  335. #define LL_APB2_GRP1_PERIPH_DFSDM1 RCC_APB2ENR_DFSDM1EN
  336. #endif /* DFSDM1_Channel0 */
  337. #if defined(DFSDM2_Channel0)
  338. #define LL_APB2_GRP1_PERIPH_DFSDM2 RCC_APB2ENR_DFSDM2EN
  339. #endif /* DFSDM2_Channel0 */
  340. #define LL_APB2_GRP1_PERIPH_ADC RCC_APB2RSTR_ADCRST
  341. /**
  342. * @}
  343. */
  344. /**
  345. * @}
  346. */
  347. /* Exported macro ------------------------------------------------------------*/
  348. /* Exported functions --------------------------------------------------------*/
  349. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  350. * @{
  351. */
  352. /** @defgroup BUS_LL_EF_AHB1 AHB1
  353. * @{
  354. */
  355. /**
  356. * @brief Enable AHB1 peripherals clock.
  357. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_EnableClock\n
  358. * AHB1ENR GPIOBEN LL_AHB1_GRP1_EnableClock\n
  359. * AHB1ENR GPIOCEN LL_AHB1_GRP1_EnableClock\n
  360. * AHB1ENR GPIODEN LL_AHB1_GRP1_EnableClock\n
  361. * AHB1ENR GPIOEEN LL_AHB1_GRP1_EnableClock\n
  362. * AHB1ENR GPIOFEN LL_AHB1_GRP1_EnableClock\n
  363. * AHB1ENR GPIOGEN LL_AHB1_GRP1_EnableClock\n
  364. * AHB1ENR GPIOHEN LL_AHB1_GRP1_EnableClock\n
  365. * AHB1ENR GPIOIEN LL_AHB1_GRP1_EnableClock\n
  366. * AHB1ENR GPIOJEN LL_AHB1_GRP1_EnableClock\n
  367. * AHB1ENR GPIOKEN LL_AHB1_GRP1_EnableClock\n
  368. * AHB1ENR CRCEN LL_AHB1_GRP1_EnableClock\n
  369. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_EnableClock\n
  370. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_EnableClock\n
  371. * AHB1ENR DMA1EN LL_AHB1_GRP1_EnableClock\n
  372. * AHB1ENR DMA2EN LL_AHB1_GRP1_EnableClock\n
  373. * AHB1ENR RNGEN LL_AHB1_GRP1_EnableClock\n
  374. * AHB1ENR DMA2DEN LL_AHB1_GRP1_EnableClock\n
  375. * AHB1ENR ETHMACEN LL_AHB1_GRP1_EnableClock\n
  376. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_EnableClock\n
  377. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_EnableClock\n
  378. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_EnableClock\n
  379. * AHB1ENR OTGHSEN LL_AHB1_GRP1_EnableClock\n
  380. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_EnableClock
  381. * @param Periphs This parameter can be a combination of the following values:
  382. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  383. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  384. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  385. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  386. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  387. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  388. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  389. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  390. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  391. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  392. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  393. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  394. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  395. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  396. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  397. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  398. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  399. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  400. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  401. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  402. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  403. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  404. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  405. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  406. *
  407. * (*) value not defined in all devices.
  408. * @retval None
  409. */
  410. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  411. {
  412. __IO uint32_t tmpreg;
  413. SET_BIT(RCC->AHB1ENR, Periphs);
  414. /* Delay after an RCC peripheral clock enabling */
  415. tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
  416. (void)tmpreg;
  417. }
  418. /**
  419. * @brief Check if AHB1 peripheral clock is enabled or not
  420. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_IsEnabledClock\n
  421. * AHB1ENR GPIOBEN LL_AHB1_GRP1_IsEnabledClock\n
  422. * AHB1ENR GPIOCEN LL_AHB1_GRP1_IsEnabledClock\n
  423. * AHB1ENR GPIODEN LL_AHB1_GRP1_IsEnabledClock\n
  424. * AHB1ENR GPIOEEN LL_AHB1_GRP1_IsEnabledClock\n
  425. * AHB1ENR GPIOFEN LL_AHB1_GRP1_IsEnabledClock\n
  426. * AHB1ENR GPIOGEN LL_AHB1_GRP1_IsEnabledClock\n
  427. * AHB1ENR GPIOHEN LL_AHB1_GRP1_IsEnabledClock\n
  428. * AHB1ENR GPIOIEN LL_AHB1_GRP1_IsEnabledClock\n
  429. * AHB1ENR GPIOJEN LL_AHB1_GRP1_IsEnabledClock\n
  430. * AHB1ENR GPIOKEN LL_AHB1_GRP1_IsEnabledClock\n
  431. * AHB1ENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  432. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_IsEnabledClock\n
  433. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_IsEnabledClock\n
  434. * AHB1ENR DMA1EN LL_AHB1_GRP1_IsEnabledClock\n
  435. * AHB1ENR DMA2EN LL_AHB1_GRP1_IsEnabledClock\n
  436. * AHB1ENR RNGEN LL_AHB1_GRP1_IsEnabledClock\n
  437. * AHB1ENR DMA2DEN LL_AHB1_GRP1_IsEnabledClock\n
  438. * AHB1ENR ETHMACEN LL_AHB1_GRP1_IsEnabledClock\n
  439. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_IsEnabledClock\n
  440. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_IsEnabledClock\n
  441. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_IsEnabledClock\n
  442. * AHB1ENR OTGHSEN LL_AHB1_GRP1_IsEnabledClock\n
  443. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_IsEnabledClock
  444. * @param Periphs This parameter can be a combination of the following values:
  445. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  446. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  447. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  448. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  449. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  450. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  451. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  452. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  453. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  454. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  455. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  456. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  457. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  458. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  459. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  460. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  461. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  462. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  463. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  464. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  465. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  466. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  467. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  468. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  469. *
  470. * (*) value not defined in all devices.
  471. * @retval State of Periphs (1 or 0).
  472. */
  473. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  474. {
  475. return (READ_BIT(RCC->AHB1ENR, Periphs) == Periphs);
  476. }
  477. /**
  478. * @brief Disable AHB1 peripherals clock.
  479. * @rmtoll AHB1ENR GPIOAEN LL_AHB1_GRP1_DisableClock\n
  480. * AHB1ENR GPIOBEN LL_AHB1_GRP1_DisableClock\n
  481. * AHB1ENR GPIOCEN LL_AHB1_GRP1_DisableClock\n
  482. * AHB1ENR GPIODEN LL_AHB1_GRP1_DisableClock\n
  483. * AHB1ENR GPIOEEN LL_AHB1_GRP1_DisableClock\n
  484. * AHB1ENR GPIOFEN LL_AHB1_GRP1_DisableClock\n
  485. * AHB1ENR GPIOGEN LL_AHB1_GRP1_DisableClock\n
  486. * AHB1ENR GPIOHEN LL_AHB1_GRP1_DisableClock\n
  487. * AHB1ENR GPIOIEN LL_AHB1_GRP1_DisableClock\n
  488. * AHB1ENR GPIOJEN LL_AHB1_GRP1_DisableClock\n
  489. * AHB1ENR GPIOKEN LL_AHB1_GRP1_DisableClock\n
  490. * AHB1ENR CRCEN LL_AHB1_GRP1_DisableClock\n
  491. * AHB1ENR BKPSRAMEN LL_AHB1_GRP1_DisableClock\n
  492. * AHB1ENR CCMDATARAMEN LL_AHB1_GRP1_DisableClock\n
  493. * AHB1ENR DMA1EN LL_AHB1_GRP1_DisableClock\n
  494. * AHB1ENR DMA2EN LL_AHB1_GRP1_DisableClock\n
  495. * AHB1ENR RNGEN LL_AHB1_GRP1_DisableClock\n
  496. * AHB1ENR DMA2DEN LL_AHB1_GRP1_DisableClock\n
  497. * AHB1ENR ETHMACEN LL_AHB1_GRP1_DisableClock\n
  498. * AHB1ENR ETHMACTXEN LL_AHB1_GRP1_DisableClock\n
  499. * AHB1ENR ETHMACRXEN LL_AHB1_GRP1_DisableClock\n
  500. * AHB1ENR ETHMACPTPEN LL_AHB1_GRP1_DisableClock\n
  501. * AHB1ENR OTGHSEN LL_AHB1_GRP1_DisableClock\n
  502. * AHB1ENR OTGHSULPIEN LL_AHB1_GRP1_DisableClock
  503. * @param Periphs This parameter can be a combination of the following values:
  504. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  505. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  506. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  507. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  508. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  509. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  510. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  511. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  512. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  513. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  514. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  515. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  516. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  517. * @arg @ref LL_AHB1_GRP1_PERIPH_CCMDATARAM (*)
  518. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  519. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  520. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  521. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  522. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  523. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  524. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  525. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  526. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  527. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  528. *
  529. * (*) value not defined in all devices.
  530. * @retval None
  531. */
  532. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  533. {
  534. CLEAR_BIT(RCC->AHB1ENR, Periphs);
  535. }
  536. /**
  537. * @brief Force AHB1 peripherals reset.
  538. * @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ForceReset\n
  539. * AHB1RSTR GPIOBRST LL_AHB1_GRP1_ForceReset\n
  540. * AHB1RSTR GPIOCRST LL_AHB1_GRP1_ForceReset\n
  541. * AHB1RSTR GPIODRST LL_AHB1_GRP1_ForceReset\n
  542. * AHB1RSTR GPIOERST LL_AHB1_GRP1_ForceReset\n
  543. * AHB1RSTR GPIOFRST LL_AHB1_GRP1_ForceReset\n
  544. * AHB1RSTR GPIOGRST LL_AHB1_GRP1_ForceReset\n
  545. * AHB1RSTR GPIOHRST LL_AHB1_GRP1_ForceReset\n
  546. * AHB1RSTR GPIOIRST LL_AHB1_GRP1_ForceReset\n
  547. * AHB1RSTR GPIOJRST LL_AHB1_GRP1_ForceReset\n
  548. * AHB1RSTR GPIOKRST LL_AHB1_GRP1_ForceReset\n
  549. * AHB1RSTR CRCRST LL_AHB1_GRP1_ForceReset\n
  550. * AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset\n
  551. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ForceReset\n
  552. * AHB1RSTR RNGRST LL_AHB1_GRP1_ForceReset\n
  553. * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ForceReset\n
  554. * AHB1RSTR ETHMACRST LL_AHB1_GRP1_ForceReset\n
  555. * AHB1RSTR OTGHSRST LL_AHB1_GRP1_ForceReset
  556. * @param Periphs This parameter can be a combination of the following values:
  557. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  558. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  559. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  560. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  561. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  562. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  563. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  564. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  565. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  566. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  567. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  568. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  569. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  570. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  571. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  572. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  573. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  574. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  575. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  576. *
  577. * (*) value not defined in all devices.
  578. * @retval None
  579. */
  580. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  581. {
  582. SET_BIT(RCC->AHB1RSTR, Periphs);
  583. }
  584. /**
  585. * @brief Release AHB1 peripherals reset.
  586. * @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ReleaseReset\n
  587. * AHB1RSTR GPIOBRST LL_AHB1_GRP1_ReleaseReset\n
  588. * AHB1RSTR GPIOCRST LL_AHB1_GRP1_ReleaseReset\n
  589. * AHB1RSTR GPIODRST LL_AHB1_GRP1_ReleaseReset\n
  590. * AHB1RSTR GPIOERST LL_AHB1_GRP1_ReleaseReset\n
  591. * AHB1RSTR GPIOFRST LL_AHB1_GRP1_ReleaseReset\n
  592. * AHB1RSTR GPIOGRST LL_AHB1_GRP1_ReleaseReset\n
  593. * AHB1RSTR GPIOHRST LL_AHB1_GRP1_ReleaseReset\n
  594. * AHB1RSTR GPIOIRST LL_AHB1_GRP1_ReleaseReset\n
  595. * AHB1RSTR GPIOJRST LL_AHB1_GRP1_ReleaseReset\n
  596. * AHB1RSTR GPIOKRST LL_AHB1_GRP1_ReleaseReset\n
  597. * AHB1RSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n
  598. * AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset\n
  599. * AHB1RSTR DMA2RST LL_AHB1_GRP1_ReleaseReset\n
  600. * AHB1RSTR RNGRST LL_AHB1_GRP1_ReleaseReset\n
  601. * AHB1RSTR DMA2DRST LL_AHB1_GRP1_ReleaseReset\n
  602. * AHB1RSTR ETHMACRST LL_AHB1_GRP1_ReleaseReset\n
  603. * AHB1RSTR OTGHSRST LL_AHB1_GRP1_ReleaseReset
  604. * @param Periphs This parameter can be a combination of the following values:
  605. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  606. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  607. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  608. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  609. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  610. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  611. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  612. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  613. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  614. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  615. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  616. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  617. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  618. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  619. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  620. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  621. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  622. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  623. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  624. *
  625. * (*) value not defined in all devices.
  626. * @retval None
  627. */
  628. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  629. {
  630. CLEAR_BIT(RCC->AHB1RSTR, Periphs);
  631. }
  632. /**
  633. * @brief Enable AHB1 peripheral clocks in low-power mode
  634. * @rmtoll AHB1LPENR GPIOALPEN LL_AHB1_GRP1_EnableClockLowPower\n
  635. * AHB1LPENR GPIOBLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  636. * AHB1LPENR GPIOCLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  637. * AHB1LPENR GPIODLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  638. * AHB1LPENR GPIOELPEN LL_AHB1_GRP1_EnableClockLowPower\n
  639. * AHB1LPENR GPIOFLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  640. * AHB1LPENR GPIOGLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  641. * AHB1LPENR GPIOHLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  642. * AHB1LPENR GPIOILPEN LL_AHB1_GRP1_EnableClockLowPower\n
  643. * AHB1LPENR GPIOJLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  644. * AHB1LPENR GPIOKLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  645. * AHB1LPENR CRCLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  646. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  647. * AHB1LPENR FLITFLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  648. * AHB1LPENR SRAM1LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  649. * AHB1LPENR SRAM2LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  650. * AHB1LPENR SRAM3LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  651. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  652. * AHB1LPENR DMA1LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  653. * AHB1LPENR DMA2LPEN LL_AHB1_GRP1_EnableClockLowPower\n
  654. * AHB1LPENR DMA2DLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  655. * AHB1LPENR RNGLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  656. * AHB1LPENR ETHMACLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  657. * AHB1LPENR ETHMACTXLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  658. * AHB1LPENR ETHMACRXLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  659. * AHB1LPENR ETHMACPTPLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  660. * AHB1LPENR OTGHSLPEN LL_AHB1_GRP1_EnableClockLowPower\n
  661. * AHB1LPENR OTGHSULPILPEN LL_AHB1_GRP1_EnableClockLowPower
  662. * @param Periphs This parameter can be a combination of the following values:
  663. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  664. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  665. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  666. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  667. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  668. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  669. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  670. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  671. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  672. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  673. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  674. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  675. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  676. * @arg @ref LL_AHB1_GRP1_PERIPH_FLITF
  677. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  678. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM2 (*)
  679. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM3 (*)
  680. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  681. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  682. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  683. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  684. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  685. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  686. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  687. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  688. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  689. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  690. *
  691. * (*) value not defined in all devices.
  692. * @retval None
  693. */
  694. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockLowPower(uint32_t Periphs)
  695. {
  696. __IO uint32_t tmpreg;
  697. SET_BIT(RCC->AHB1LPENR, Periphs);
  698. /* Delay after an RCC peripheral clock enabling */
  699. tmpreg = READ_BIT(RCC->AHB1LPENR, Periphs);
  700. (void)tmpreg;
  701. }
  702. /**
  703. * @brief Disable AHB1 peripheral clocks in low-power mode
  704. * @rmtoll AHB1LPENR GPIOALPEN LL_AHB1_GRP1_DisableClockLowPower\n
  705. * AHB1LPENR GPIOBLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  706. * AHB1LPENR GPIOCLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  707. * AHB1LPENR GPIODLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  708. * AHB1LPENR GPIOELPEN LL_AHB1_GRP1_DisableClockLowPower\n
  709. * AHB1LPENR GPIOFLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  710. * AHB1LPENR GPIOGLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  711. * AHB1LPENR GPIOHLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  712. * AHB1LPENR GPIOILPEN LL_AHB1_GRP1_DisableClockLowPower\n
  713. * AHB1LPENR GPIOJLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  714. * AHB1LPENR GPIOKLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  715. * AHB1LPENR CRCLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  716. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  717. * AHB1LPENR FLITFLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  718. * AHB1LPENR SRAM1LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  719. * AHB1LPENR SRAM2LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  720. * AHB1LPENR SRAM3LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  721. * AHB1LPENR BKPSRAMLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  722. * AHB1LPENR DMA1LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  723. * AHB1LPENR DMA2LPEN LL_AHB1_GRP1_DisableClockLowPower\n
  724. * AHB1LPENR DMA2DLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  725. * AHB1LPENR RNGLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  726. * AHB1LPENR ETHMACLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  727. * AHB1LPENR ETHMACTXLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  728. * AHB1LPENR ETHMACRXLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  729. * AHB1LPENR ETHMACPTPLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  730. * AHB1LPENR OTGHSLPEN LL_AHB1_GRP1_DisableClockLowPower\n
  731. * AHB1LPENR OTGHSULPILPEN LL_AHB1_GRP1_DisableClockLowPower
  732. * @param Periphs This parameter can be a combination of the following values:
  733. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  734. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  735. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  736. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD (*)
  737. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  738. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  739. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  740. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH (*)
  741. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOI (*)
  742. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOJ (*)
  743. * @arg @ref LL_AHB1_GRP1_PERIPH_GPIOK (*)
  744. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  745. * @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM (*)
  746. * @arg @ref LL_AHB1_GRP1_PERIPH_FLITF
  747. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
  748. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM2 (*)
  749. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM3 (*)
  750. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  751. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2
  752. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  753. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA2D (*)
  754. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
  755. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
  756. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
  757. * @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACPTP (*)
  758. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHS (*)
  759. * @arg @ref LL_AHB1_GRP1_PERIPH_OTGHSULPI (*)
  760. *
  761. * (*) value not defined in all devices.
  762. * @retval None
  763. */
  764. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockLowPower(uint32_t Periphs)
  765. {
  766. CLEAR_BIT(RCC->AHB1LPENR, Periphs);
  767. }
  768. /**
  769. * @}
  770. */
  771. #if defined(RCC_AHB2_SUPPORT)
  772. /** @defgroup BUS_LL_EF_AHB2 AHB2
  773. * @{
  774. */
  775. /**
  776. * @brief Enable AHB2 peripherals clock.
  777. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_EnableClock\n
  778. * AHB2ENR CRYPEN LL_AHB2_GRP1_EnableClock\n
  779. * AHB2ENR AESEN LL_AHB2_GRP1_EnableClock\n
  780. * AHB2ENR HASHEN LL_AHB2_GRP1_EnableClock\n
  781. * AHB2ENR RNGEN LL_AHB2_GRP1_EnableClock\n
  782. * AHB2ENR OTGFSEN LL_AHB2_GRP1_EnableClock
  783. * @param Periphs This parameter can be a combination of the following values:
  784. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  785. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  786. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  787. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  788. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  789. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  790. *
  791. * (*) value not defined in all devices.
  792. * @retval None
  793. */
  794. __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
  795. {
  796. __IO uint32_t tmpreg;
  797. SET_BIT(RCC->AHB2ENR, Periphs);
  798. /* Delay after an RCC peripheral clock enabling */
  799. tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
  800. (void)tmpreg;
  801. }
  802. /**
  803. * @brief Check if AHB2 peripheral clock is enabled or not
  804. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_IsEnabledClock\n
  805. * AHB2ENR CRYPEN LL_AHB2_GRP1_IsEnabledClock\n
  806. * AHB2ENR AESEN LL_AHB2_GRP1_IsEnabledClock\n
  807. * AHB2ENR HASHEN LL_AHB2_GRP1_IsEnabledClock\n
  808. * AHB2ENR RNGEN LL_AHB2_GRP1_IsEnabledClock\n
  809. * AHB2ENR OTGFSEN LL_AHB2_GRP1_IsEnabledClock
  810. * @param Periphs This parameter can be a combination of the following values:
  811. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  812. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  813. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  814. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  815. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  816. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  817. *
  818. * (*) value not defined in all devices.
  819. * @retval State of Periphs (1 or 0).
  820. */
  821. __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
  822. {
  823. return (READ_BIT(RCC->AHB2ENR, Periphs) == Periphs);
  824. }
  825. /**
  826. * @brief Disable AHB2 peripherals clock.
  827. * @rmtoll AHB2ENR DCMIEN LL_AHB2_GRP1_DisableClock\n
  828. * AHB2ENR CRYPEN LL_AHB2_GRP1_DisableClock\n
  829. * AHB2ENR AESEN LL_AHB2_GRP1_DisableClock\n
  830. * AHB2ENR HASHEN LL_AHB2_GRP1_DisableClock\n
  831. * AHB2ENR RNGEN LL_AHB2_GRP1_DisableClock\n
  832. * AHB2ENR OTGFSEN LL_AHB2_GRP1_DisableClock
  833. * @param Periphs This parameter can be a combination of the following values:
  834. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  835. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  836. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  837. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  838. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  839. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  840. *
  841. * (*) value not defined in all devices.
  842. * @retval None
  843. */
  844. __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
  845. {
  846. CLEAR_BIT(RCC->AHB2ENR, Periphs);
  847. }
  848. /**
  849. * @brief Force AHB2 peripherals reset.
  850. * @rmtoll AHB2RSTR DCMIRST LL_AHB2_GRP1_ForceReset\n
  851. * AHB2RSTR CRYPRST LL_AHB2_GRP1_ForceReset\n
  852. * AHB2RSTR AESRST LL_AHB2_GRP1_ForceReset\n
  853. * AHB2RSTR HASHRST LL_AHB2_GRP1_ForceReset\n
  854. * AHB2RSTR RNGRST LL_AHB2_GRP1_ForceReset\n
  855. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ForceReset
  856. * @param Periphs This parameter can be a combination of the following values:
  857. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  858. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  859. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  860. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  861. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  862. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  863. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  864. *
  865. * (*) value not defined in all devices.
  866. * @retval None
  867. */
  868. __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
  869. {
  870. SET_BIT(RCC->AHB2RSTR, Periphs);
  871. }
  872. /**
  873. * @brief Release AHB2 peripherals reset.
  874. * @rmtoll AHB2RSTR DCMIRST LL_AHB2_GRP1_ReleaseReset\n
  875. * AHB2RSTR CRYPRST LL_AHB2_GRP1_ReleaseReset\n
  876. * AHB2RSTR AESRST LL_AHB2_GRP1_ReleaseReset\n
  877. * AHB2RSTR HASHRST LL_AHB2_GRP1_ReleaseReset\n
  878. * AHB2RSTR RNGRST LL_AHB2_GRP1_ReleaseReset\n
  879. * AHB2RSTR OTGFSRST LL_AHB2_GRP1_ReleaseReset
  880. * @param Periphs This parameter can be a combination of the following values:
  881. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  882. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  883. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  884. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  885. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  886. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  887. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  888. *
  889. * (*) value not defined in all devices.
  890. * @retval None
  891. */
  892. __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
  893. {
  894. CLEAR_BIT(RCC->AHB2RSTR, Periphs);
  895. }
  896. /**
  897. * @brief Enable AHB2 peripheral clocks in low-power mode
  898. * @rmtoll AHB2LPENR DCMILPEN LL_AHB2_GRP1_EnableClockLowPower\n
  899. * AHB2LPENR CRYPLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  900. * AHB2LPENR AESLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  901. * AHB2LPENR HASHLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  902. * AHB2LPENR RNGLPEN LL_AHB2_GRP1_EnableClockLowPower\n
  903. * AHB2LPENR OTGFSLPEN LL_AHB2_GRP1_EnableClockLowPower
  904. * @param Periphs This parameter can be a combination of the following values:
  905. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  906. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  907. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  908. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  909. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  910. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  911. *
  912. * (*) value not defined in all devices.
  913. * @retval None
  914. */
  915. __STATIC_INLINE void LL_AHB2_GRP1_EnableClockLowPower(uint32_t Periphs)
  916. {
  917. __IO uint32_t tmpreg;
  918. SET_BIT(RCC->AHB2LPENR, Periphs);
  919. /* Delay after an RCC peripheral clock enabling */
  920. tmpreg = READ_BIT(RCC->AHB2LPENR, Periphs);
  921. (void)tmpreg;
  922. }
  923. /**
  924. * @brief Disable AHB2 peripheral clocks in low-power mode
  925. * @rmtoll AHB2LPENR DCMILPEN LL_AHB2_GRP1_DisableClockLowPower\n
  926. * AHB2LPENR CRYPLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  927. * AHB2LPENR AESLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  928. * AHB2LPENR HASHLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  929. * AHB2LPENR RNGLPEN LL_AHB2_GRP1_DisableClockLowPower\n
  930. * AHB2LPENR OTGFSLPEN LL_AHB2_GRP1_DisableClockLowPower
  931. * @param Periphs This parameter can be a combination of the following values:
  932. * @arg @ref LL_AHB2_GRP1_PERIPH_DCMI (*)
  933. * @arg @ref LL_AHB2_GRP1_PERIPH_CRYP (*)
  934. * @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
  935. * @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
  936. * @arg @ref LL_AHB2_GRP1_PERIPH_RNG (*)
  937. * @arg @ref LL_AHB2_GRP1_PERIPH_OTGFS (*)
  938. *
  939. * (*) value not defined in all devices.
  940. * @retval None
  941. */
  942. __STATIC_INLINE void LL_AHB2_GRP1_DisableClockLowPower(uint32_t Periphs)
  943. {
  944. CLEAR_BIT(RCC->AHB2LPENR, Periphs);
  945. }
  946. /**
  947. * @}
  948. */
  949. #endif /* RCC_AHB2_SUPPORT */
  950. #if defined(RCC_AHB3_SUPPORT)
  951. /** @defgroup BUS_LL_EF_AHB3 AHB3
  952. * @{
  953. */
  954. /**
  955. * @brief Enable AHB3 peripherals clock.
  956. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_EnableClock\n
  957. * AHB3ENR FSMCEN LL_AHB3_GRP1_EnableClock\n
  958. * AHB3ENR QSPIEN LL_AHB3_GRP1_EnableClock
  959. * @param Periphs This parameter can be a combination of the following values:
  960. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  961. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  962. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  963. *
  964. * (*) value not defined in all devices.
  965. * @retval None
  966. */
  967. __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
  968. {
  969. __IO uint32_t tmpreg;
  970. SET_BIT(RCC->AHB3ENR, Periphs);
  971. /* Delay after an RCC peripheral clock enabling */
  972. tmpreg = READ_BIT(RCC->AHB3ENR, Periphs);
  973. (void)tmpreg;
  974. }
  975. /**
  976. * @brief Check if AHB3 peripheral clock is enabled or not
  977. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_IsEnabledClock\n
  978. * AHB3ENR FSMCEN LL_AHB3_GRP1_IsEnabledClock\n
  979. * AHB3ENR QSPIEN LL_AHB3_GRP1_IsEnabledClock
  980. * @param Periphs This parameter can be a combination of the following values:
  981. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  982. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  983. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  984. *
  985. * (*) value not defined in all devices.
  986. * @retval State of Periphs (1 or 0).
  987. */
  988. __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
  989. {
  990. return (READ_BIT(RCC->AHB3ENR, Periphs) == Periphs);
  991. }
  992. /**
  993. * @brief Disable AHB3 peripherals clock.
  994. * @rmtoll AHB3ENR FMCEN LL_AHB3_GRP1_DisableClock\n
  995. * AHB3ENR FSMCEN LL_AHB3_GRP1_DisableClock\n
  996. * AHB3ENR QSPIEN LL_AHB3_GRP1_DisableClock
  997. * @param Periphs This parameter can be a combination of the following values:
  998. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  999. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1000. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1001. *
  1002. * (*) value not defined in all devices.
  1003. * @retval None
  1004. */
  1005. __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
  1006. {
  1007. CLEAR_BIT(RCC->AHB3ENR, Periphs);
  1008. }
  1009. /**
  1010. * @brief Force AHB3 peripherals reset.
  1011. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ForceReset\n
  1012. * AHB3RSTR FSMCRST LL_AHB3_GRP1_ForceReset\n
  1013. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ForceReset
  1014. * @param Periphs This parameter can be a combination of the following values:
  1015. * @arg @ref LL_AHB3_GRP1_PERIPH_ALL
  1016. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1017. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1018. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1019. *
  1020. * (*) value not defined in all devices.
  1021. * @retval None
  1022. */
  1023. __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
  1024. {
  1025. SET_BIT(RCC->AHB3RSTR, Periphs);
  1026. }
  1027. /**
  1028. * @brief Release AHB3 peripherals reset.
  1029. * @rmtoll AHB3RSTR FMCRST LL_AHB3_GRP1_ReleaseReset\n
  1030. * AHB3RSTR FSMCRST LL_AHB3_GRP1_ReleaseReset\n
  1031. * AHB3RSTR QSPIRST LL_AHB3_GRP1_ReleaseReset
  1032. * @param Periphs This parameter can be a combination of the following values:
  1033. * @arg @ref LL_AHB2_GRP1_PERIPH_ALL
  1034. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1035. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1036. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1037. *
  1038. * (*) value not defined in all devices.
  1039. * @retval None
  1040. */
  1041. __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
  1042. {
  1043. CLEAR_BIT(RCC->AHB3RSTR, Periphs);
  1044. }
  1045. /**
  1046. * @brief Enable AHB3 peripheral clocks in low-power mode
  1047. * @rmtoll AHB3LPENR FMCLPEN LL_AHB3_GRP1_EnableClockLowPower\n
  1048. * AHB3LPENR FSMCLPEN LL_AHB3_GRP1_EnableClockLowPower\n
  1049. * AHB3LPENR QSPILPEN LL_AHB3_GRP1_EnableClockLowPower
  1050. * @param Periphs This parameter can be a combination of the following values:
  1051. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1052. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1053. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1054. *
  1055. * (*) value not defined in all devices.
  1056. * @retval None
  1057. */
  1058. __STATIC_INLINE void LL_AHB3_GRP1_EnableClockLowPower(uint32_t Periphs)
  1059. {
  1060. __IO uint32_t tmpreg;
  1061. SET_BIT(RCC->AHB3LPENR, Periphs);
  1062. /* Delay after an RCC peripheral clock enabling */
  1063. tmpreg = READ_BIT(RCC->AHB3LPENR, Periphs);
  1064. (void)tmpreg;
  1065. }
  1066. /**
  1067. * @brief Disable AHB3 peripheral clocks in low-power mode
  1068. * @rmtoll AHB3LPENR FMCLPEN LL_AHB3_GRP1_DisableClockLowPower\n
  1069. * AHB3LPENR FSMCLPEN LL_AHB3_GRP1_DisableClockLowPower\n
  1070. * AHB3LPENR QSPILPEN LL_AHB3_GRP1_DisableClockLowPower
  1071. * @param Periphs This parameter can be a combination of the following values:
  1072. * @arg @ref LL_AHB3_GRP1_PERIPH_FMC (*)
  1073. * @arg @ref LL_AHB3_GRP1_PERIPH_FSMC (*)
  1074. * @arg @ref LL_AHB3_GRP1_PERIPH_QSPI (*)
  1075. *
  1076. * (*) value not defined in all devices.
  1077. * @retval None
  1078. */
  1079. __STATIC_INLINE void LL_AHB3_GRP1_DisableClockLowPower(uint32_t Periphs)
  1080. {
  1081. CLEAR_BIT(RCC->AHB3LPENR, Periphs);
  1082. }
  1083. /**
  1084. * @}
  1085. */
  1086. #endif /* RCC_AHB3_SUPPORT */
  1087. /** @defgroup BUS_LL_EF_APB1 APB1
  1088. * @{
  1089. */
  1090. /**
  1091. * @brief Enable APB1 peripherals clock.
  1092. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n
  1093. * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n
  1094. * APB1ENR TIM4EN LL_APB1_GRP1_EnableClock\n
  1095. * APB1ENR TIM5EN LL_APB1_GRP1_EnableClock\n
  1096. * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n
  1097. * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n
  1098. * APB1ENR TIM12EN LL_APB1_GRP1_EnableClock\n
  1099. * APB1ENR TIM13EN LL_APB1_GRP1_EnableClock\n
  1100. * APB1ENR TIM14EN LL_APB1_GRP1_EnableClock\n
  1101. * APB1ENR LPTIM1EN LL_APB1_GRP1_EnableClock\n
  1102. * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n
  1103. * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n
  1104. * APB1ENR SPI3EN LL_APB1_GRP1_EnableClock\n
  1105. * APB1ENR SPDIFRXEN LL_APB1_GRP1_EnableClock\n
  1106. * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n
  1107. * APB1ENR USART3EN LL_APB1_GRP1_EnableClock\n
  1108. * APB1ENR UART4EN LL_APB1_GRP1_EnableClock\n
  1109. * APB1ENR UART5EN LL_APB1_GRP1_EnableClock\n
  1110. * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n
  1111. * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n
  1112. * APB1ENR I2C3EN LL_APB1_GRP1_EnableClock\n
  1113. * APB1ENR FMPI2C1EN LL_APB1_GRP1_EnableClock\n
  1114. * APB1ENR CAN1EN LL_APB1_GRP1_EnableClock\n
  1115. * APB1ENR CAN2EN LL_APB1_GRP1_EnableClock\n
  1116. * APB1ENR CAN3EN LL_APB1_GRP1_EnableClock\n
  1117. * APB1ENR CECEN LL_APB1_GRP1_EnableClock\n
  1118. * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n
  1119. * APB1ENR DACEN LL_APB1_GRP1_EnableClock\n
  1120. * APB1ENR UART7EN LL_APB1_GRP1_EnableClock\n
  1121. * APB1ENR UART8EN LL_APB1_GRP1_EnableClock\n
  1122. * APB1ENR RTCAPBEN LL_APB1_GRP1_EnableClock
  1123. * @param Periphs This parameter can be a combination of the following values:
  1124. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1125. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1126. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1127. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1128. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1129. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1130. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1131. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1132. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1133. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1134. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1135. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1136. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1137. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1138. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1139. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1140. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1141. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1142. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1143. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1144. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1145. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1146. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1147. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1148. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1149. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1150. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1151. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1152. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1153. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1154. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1155. *
  1156. * (*) value not defined in all devices.
  1157. * @retval None
  1158. */
  1159. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  1160. {
  1161. __IO uint32_t tmpreg;
  1162. SET_BIT(RCC->APB1ENR, Periphs);
  1163. /* Delay after an RCC peripheral clock enabling */
  1164. tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
  1165. (void)tmpreg;
  1166. }
  1167. /**
  1168. * @brief Check if APB1 peripheral clock is enabled or not
  1169. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  1170. * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n
  1171. * APB1ENR TIM4EN LL_APB1_GRP1_IsEnabledClock\n
  1172. * APB1ENR TIM5EN LL_APB1_GRP1_IsEnabledClock\n
  1173. * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n
  1174. * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n
  1175. * APB1ENR TIM12EN LL_APB1_GRP1_IsEnabledClock\n
  1176. * APB1ENR TIM13EN LL_APB1_GRP1_IsEnabledClock\n
  1177. * APB1ENR TIM14EN LL_APB1_GRP1_IsEnabledClock\n
  1178. * APB1ENR LPTIM1EN LL_APB1_GRP1_IsEnabledClock\n
  1179. * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  1180. * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  1181. * APB1ENR SPI3EN LL_APB1_GRP1_IsEnabledClock\n
  1182. * APB1ENR SPDIFRXEN LL_APB1_GRP1_IsEnabledClock\n
  1183. * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n
  1184. * APB1ENR USART3EN LL_APB1_GRP1_IsEnabledClock\n
  1185. * APB1ENR UART4EN LL_APB1_GRP1_IsEnabledClock\n
  1186. * APB1ENR UART5EN LL_APB1_GRP1_IsEnabledClock\n
  1187. * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  1188. * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n
  1189. * APB1ENR I2C3EN LL_APB1_GRP1_IsEnabledClock\n
  1190. * APB1ENR FMPI2C1EN LL_APB1_GRP1_IsEnabledClock\n
  1191. * APB1ENR CAN1EN LL_APB1_GRP1_IsEnabledClock\n
  1192. * APB1ENR CAN2EN LL_APB1_GRP1_IsEnabledClock\n
  1193. * APB1ENR CAN3EN LL_APB1_GRP1_IsEnabledClock\n
  1194. * APB1ENR CECEN LL_APB1_GRP1_IsEnabledClock\n
  1195. * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n
  1196. * APB1ENR DACEN LL_APB1_GRP1_IsEnabledClock\n
  1197. * APB1ENR UART7EN LL_APB1_GRP1_IsEnabledClock\n
  1198. * APB1ENR UART8EN LL_APB1_GRP1_IsEnabledClock\n
  1199. * APB1ENR RTCAPBEN LL_APB1_GRP1_IsEnabledClock
  1200. * @param Periphs This parameter can be a combination of the following values:
  1201. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1202. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1203. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1204. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1205. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1206. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1207. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1208. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1209. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1210. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1211. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1212. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1213. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1214. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1215. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1216. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1217. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1218. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1219. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1220. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1221. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1222. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1223. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1224. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1225. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1226. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1227. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1228. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1229. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1230. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1231. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1232. *
  1233. * (*) value not defined in all devices.
  1234. * @retval State of Periphs (1 or 0).
  1235. */
  1236. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  1237. {
  1238. return (READ_BIT(RCC->APB1ENR, Periphs) == Periphs);
  1239. }
  1240. /**
  1241. * @brief Disable APB1 peripherals clock.
  1242. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n
  1243. * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n
  1244. * APB1ENR TIM4EN LL_APB1_GRP1_DisableClock\n
  1245. * APB1ENR TIM5EN LL_APB1_GRP1_DisableClock\n
  1246. * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n
  1247. * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n
  1248. * APB1ENR TIM12EN LL_APB1_GRP1_DisableClock\n
  1249. * APB1ENR TIM13EN LL_APB1_GRP1_DisableClock\n
  1250. * APB1ENR TIM14EN LL_APB1_GRP1_DisableClock\n
  1251. * APB1ENR LPTIM1EN LL_APB1_GRP1_DisableClock\n
  1252. * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n
  1253. * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n
  1254. * APB1ENR SPI3EN LL_APB1_GRP1_DisableClock\n
  1255. * APB1ENR SPDIFRXEN LL_APB1_GRP1_DisableClock\n
  1256. * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n
  1257. * APB1ENR USART3EN LL_APB1_GRP1_DisableClock\n
  1258. * APB1ENR UART4EN LL_APB1_GRP1_DisableClock\n
  1259. * APB1ENR UART5EN LL_APB1_GRP1_DisableClock\n
  1260. * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n
  1261. * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n
  1262. * APB1ENR I2C3EN LL_APB1_GRP1_DisableClock\n
  1263. * APB1ENR FMPI2C1EN LL_APB1_GRP1_DisableClock\n
  1264. * APB1ENR CAN1EN LL_APB1_GRP1_DisableClock\n
  1265. * APB1ENR CAN2EN LL_APB1_GRP1_DisableClock\n
  1266. * APB1ENR CAN3EN LL_APB1_GRP1_DisableClock\n
  1267. * APB1ENR CECEN LL_APB1_GRP1_DisableClock\n
  1268. * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n
  1269. * APB1ENR DACEN LL_APB1_GRP1_DisableClock\n
  1270. * APB1ENR UART7EN LL_APB1_GRP1_DisableClock\n
  1271. * APB1ENR UART8EN LL_APB1_GRP1_DisableClock\n
  1272. * APB1ENR RTCAPBEN LL_APB1_GRP1_DisableClock
  1273. * @param Periphs This parameter can be a combination of the following values:
  1274. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1275. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1276. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1277. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1278. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1279. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1280. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1281. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1282. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1283. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1284. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1285. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1286. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1287. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1288. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1289. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1290. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1291. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1292. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1293. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1294. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1295. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1296. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1297. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1298. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1299. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1300. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1301. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1302. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1303. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1304. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1305. *
  1306. * (*) value not defined in all devices.
  1307. * @retval None
  1308. */
  1309. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  1310. {
  1311. CLEAR_BIT(RCC->APB1ENR, Periphs);
  1312. }
  1313. /**
  1314. * @brief Force APB1 peripherals reset.
  1315. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n
  1316. * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n
  1317. * APB1RSTR TIM4RST LL_APB1_GRP1_ForceReset\n
  1318. * APB1RSTR TIM5RST LL_APB1_GRP1_ForceReset\n
  1319. * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n
  1320. * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n
  1321. * APB1RSTR TIM12RST LL_APB1_GRP1_ForceReset\n
  1322. * APB1RSTR TIM13RST LL_APB1_GRP1_ForceReset\n
  1323. * APB1RSTR TIM14RST LL_APB1_GRP1_ForceReset\n
  1324. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ForceReset\n
  1325. * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n
  1326. * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n
  1327. * APB1RSTR SPI3RST LL_APB1_GRP1_ForceReset\n
  1328. * APB1RSTR SPDIFRXRST LL_APB1_GRP1_ForceReset\n
  1329. * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n
  1330. * APB1RSTR USART3RST LL_APB1_GRP1_ForceReset\n
  1331. * APB1RSTR UART4RST LL_APB1_GRP1_ForceReset\n
  1332. * APB1RSTR UART5RST LL_APB1_GRP1_ForceReset\n
  1333. * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n
  1334. * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n
  1335. * APB1RSTR I2C3RST LL_APB1_GRP1_ForceReset\n
  1336. * APB1RSTR FMPI2C1RST LL_APB1_GRP1_ForceReset\n
  1337. * APB1RSTR CAN1RST LL_APB1_GRP1_ForceReset\n
  1338. * APB1RSTR CAN2RST LL_APB1_GRP1_ForceReset\n
  1339. * APB1RSTR CAN3RST LL_APB1_GRP1_ForceReset\n
  1340. * APB1RSTR CECRST LL_APB1_GRP1_ForceReset\n
  1341. * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n
  1342. * APB1RSTR DACRST LL_APB1_GRP1_ForceReset\n
  1343. * APB1RSTR UART7RST LL_APB1_GRP1_ForceReset\n
  1344. * APB1RSTR UART8RST LL_APB1_GRP1_ForceReset
  1345. * @param Periphs This parameter can be a combination of the following values:
  1346. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1347. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1348. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1349. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1350. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1351. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1352. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1353. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1354. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1355. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1356. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1357. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1358. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1359. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1360. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1361. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1362. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1363. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1364. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1365. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1366. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1367. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1368. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1369. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1370. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1371. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1372. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1373. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1374. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1375. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1376. *
  1377. * (*) value not defined in all devices.
  1378. * @retval None
  1379. */
  1380. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  1381. {
  1382. SET_BIT(RCC->APB1RSTR, Periphs);
  1383. }
  1384. /**
  1385. * @brief Release APB1 peripherals reset.
  1386. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n
  1387. * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n
  1388. * APB1RSTR TIM4RST LL_APB1_GRP1_ReleaseReset\n
  1389. * APB1RSTR TIM5RST LL_APB1_GRP1_ReleaseReset\n
  1390. * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n
  1391. * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n
  1392. * APB1RSTR TIM12RST LL_APB1_GRP1_ReleaseReset\n
  1393. * APB1RSTR TIM13RST LL_APB1_GRP1_ReleaseReset\n
  1394. * APB1RSTR TIM14RST LL_APB1_GRP1_ReleaseReset\n
  1395. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ReleaseReset\n
  1396. * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n
  1397. * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n
  1398. * APB1RSTR SPI3RST LL_APB1_GRP1_ReleaseReset\n
  1399. * APB1RSTR SPDIFRXRST LL_APB1_GRP1_ReleaseReset\n
  1400. * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n
  1401. * APB1RSTR USART3RST LL_APB1_GRP1_ReleaseReset\n
  1402. * APB1RSTR UART4RST LL_APB1_GRP1_ReleaseReset\n
  1403. * APB1RSTR UART5RST LL_APB1_GRP1_ReleaseReset\n
  1404. * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n
  1405. * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n
  1406. * APB1RSTR I2C3RST LL_APB1_GRP1_ReleaseReset\n
  1407. * APB1RSTR FMPI2C1RST LL_APB1_GRP1_ReleaseReset\n
  1408. * APB1RSTR CAN1RST LL_APB1_GRP1_ReleaseReset\n
  1409. * APB1RSTR CAN2RST LL_APB1_GRP1_ReleaseReset\n
  1410. * APB1RSTR CAN3RST LL_APB1_GRP1_ReleaseReset\n
  1411. * APB1RSTR CECRST LL_APB1_GRP1_ReleaseReset\n
  1412. * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n
  1413. * APB1RSTR DACRST LL_APB1_GRP1_ReleaseReset\n
  1414. * APB1RSTR UART7RST LL_APB1_GRP1_ReleaseReset\n
  1415. * APB1RSTR UART8RST LL_APB1_GRP1_ReleaseReset
  1416. * @param Periphs This parameter can be a combination of the following values:
  1417. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1418. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1419. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1420. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1421. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1422. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1423. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1424. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1425. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1426. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1427. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1428. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1429. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1430. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1431. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1432. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1433. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1434. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1435. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1436. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1437. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1438. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1439. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1440. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1441. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1442. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1443. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1444. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1445. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1446. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1447. *
  1448. * (*) value not defined in all devices.
  1449. * @retval None
  1450. */
  1451. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  1452. {
  1453. CLEAR_BIT(RCC->APB1RSTR, Periphs);
  1454. }
  1455. /**
  1456. * @brief Enable APB1 peripheral clocks in low-power mode
  1457. * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1458. * APB1LPENR TIM3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1459. * APB1LPENR TIM4LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1460. * APB1LPENR TIM5LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1461. * APB1LPENR TIM6LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1462. * APB1LPENR TIM7LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1463. * APB1LPENR TIM12LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1464. * APB1LPENR TIM13LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1465. * APB1LPENR TIM14LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1466. * APB1LPENR LPTIM1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1467. * APB1LPENR WWDGLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1468. * APB1LPENR SPI2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1469. * APB1LPENR SPI3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1470. * APB1LPENR SPDIFRXLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1471. * APB1LPENR USART2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1472. * APB1LPENR USART3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1473. * APB1LPENR UART4LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1474. * APB1LPENR UART5LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1475. * APB1LPENR I2C1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1476. * APB1LPENR I2C2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1477. * APB1LPENR I2C3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1478. * APB1LPENR FMPI2C1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1479. * APB1LPENR CAN1LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1480. * APB1LPENR CAN2LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1481. * APB1LPENR CAN3LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1482. * APB1LPENR CECLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1483. * APB1LPENR PWRLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1484. * APB1LPENR DACLPEN LL_APB1_GRP1_EnableClockLowPower\n
  1485. * APB1LPENR UART7LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1486. * APB1LPENR UART8LPEN LL_APB1_GRP1_EnableClockLowPower\n
  1487. * APB1LPENR RTCAPBLPEN LL_APB1_GRP1_EnableClockLowPower
  1488. * @param Periphs This parameter can be a combination of the following values:
  1489. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1490. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1491. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1492. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1493. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1494. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1495. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1496. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1497. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1498. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1499. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1500. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1501. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1502. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1503. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1504. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1505. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1506. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1507. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1508. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1509. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1510. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1511. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1512. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1513. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1514. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1515. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1516. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1517. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1518. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1519. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1520. *
  1521. * (*) value not defined in all devices.
  1522. * @retval None
  1523. */
  1524. __STATIC_INLINE void LL_APB1_GRP1_EnableClockLowPower(uint32_t Periphs)
  1525. {
  1526. __IO uint32_t tmpreg;
  1527. SET_BIT(RCC->APB1LPENR, Periphs);
  1528. /* Delay after an RCC peripheral clock enabling */
  1529. tmpreg = READ_BIT(RCC->APB1LPENR, Periphs);
  1530. (void)tmpreg;
  1531. }
  1532. /**
  1533. * @brief Disable APB1 peripheral clocks in low-power mode
  1534. * @rmtoll APB1LPENR TIM2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1535. * APB1LPENR TIM3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1536. * APB1LPENR TIM4LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1537. * APB1LPENR TIM5LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1538. * APB1LPENR TIM6LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1539. * APB1LPENR TIM7LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1540. * APB1LPENR TIM12LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1541. * APB1LPENR TIM13LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1542. * APB1LPENR TIM14LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1543. * APB1LPENR LPTIM1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1544. * APB1LPENR WWDGLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1545. * APB1LPENR SPI2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1546. * APB1LPENR SPI3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1547. * APB1LPENR SPDIFRXLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1548. * APB1LPENR USART2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1549. * APB1LPENR USART3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1550. * APB1LPENR UART4LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1551. * APB1LPENR UART5LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1552. * APB1LPENR I2C1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1553. * APB1LPENR I2C2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1554. * APB1LPENR I2C3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1555. * APB1LPENR FMPI2C1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1556. * APB1LPENR CAN1LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1557. * APB1LPENR CAN2LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1558. * APB1LPENR CAN3LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1559. * APB1LPENR CECLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1560. * APB1LPENR PWRLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1561. * APB1LPENR DACLPEN LL_APB1_GRP1_DisableClockLowPower\n
  1562. * APB1LPENR UART7LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1563. * APB1LPENR UART8LPEN LL_APB1_GRP1_DisableClockLowPower\n
  1564. * APB1LPENR RTCAPBLPEN LL_APB1_GRP1_DisableClockLowPower
  1565. * @param Periphs This parameter can be a combination of the following values:
  1566. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2 (*)
  1567. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  1568. * @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
  1569. * @arg @ref LL_APB1_GRP1_PERIPH_TIM5
  1570. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  1571. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  1572. * @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
  1573. * @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
  1574. * @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
  1575. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1 (*)
  1576. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  1577. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  1578. * @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  1579. * @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX (*)
  1580. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  1581. * @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
  1582. * @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  1583. * @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  1584. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  1585. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  1586. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  1587. * @arg @ref LL_APB1_GRP1_PERIPH_FMPI2C1 (*)
  1588. * @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
  1589. * @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
  1590. * @arg @ref LL_APB1_GRP1_PERIPH_CAN3 (*)
  1591. * @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
  1592. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  1593. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  1594. * @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
  1595. * @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
  1596. * @arg @ref LL_APB1_GRP1_PERIPH_RTCAPB (*)
  1597. *
  1598. * (*) value not defined in all devices.
  1599. * @retval None
  1600. */
  1601. __STATIC_INLINE void LL_APB1_GRP1_DisableClockLowPower(uint32_t Periphs)
  1602. {
  1603. CLEAR_BIT(RCC->APB1LPENR, Periphs);
  1604. }
  1605. /**
  1606. * @}
  1607. */
  1608. /** @defgroup BUS_LL_EF_APB2 APB2
  1609. * @{
  1610. */
  1611. /**
  1612. * @brief Enable APB2 peripherals clock.
  1613. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_EnableClock\n
  1614. * APB2ENR TIM8EN LL_APB2_GRP1_EnableClock\n
  1615. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  1616. * APB2ENR USART6EN LL_APB2_GRP1_EnableClock\n
  1617. * APB2ENR UART9EN LL_APB2_GRP1_EnableClock\n
  1618. * APB2ENR UART10EN LL_APB2_GRP1_EnableClock\n
  1619. * APB2ENR ADC1EN LL_APB2_GRP1_EnableClock\n
  1620. * APB2ENR ADC2EN LL_APB2_GRP1_EnableClock\n
  1621. * APB2ENR ADC3EN LL_APB2_GRP1_EnableClock\n
  1622. * APB2ENR SDIOEN LL_APB2_GRP1_EnableClock\n
  1623. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  1624. * APB2ENR SPI4EN LL_APB2_GRP1_EnableClock\n
  1625. * APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n
  1626. * APB2ENR EXTITEN LL_APB2_GRP1_EnableClock\n
  1627. * APB2ENR TIM9EN LL_APB2_GRP1_EnableClock\n
  1628. * APB2ENR TIM10EN LL_APB2_GRP1_EnableClock\n
  1629. * APB2ENR TIM11EN LL_APB2_GRP1_EnableClock\n
  1630. * APB2ENR SPI5EN LL_APB2_GRP1_EnableClock\n
  1631. * APB2ENR SPI6EN LL_APB2_GRP1_EnableClock\n
  1632. * APB2ENR SAI1EN LL_APB2_GRP1_EnableClock\n
  1633. * APB2ENR SAI2EN LL_APB2_GRP1_EnableClock\n
  1634. * APB2ENR LTDCEN LL_APB2_GRP1_EnableClock\n
  1635. * APB2ENR DSIEN LL_APB2_GRP1_EnableClock\n
  1636. * APB2ENR DFSDM1EN LL_APB2_GRP1_EnableClock\n
  1637. * APB2ENR DFSDM2EN LL_APB2_GRP1_EnableClock
  1638. * @param Periphs This parameter can be a combination of the following values:
  1639. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1640. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1641. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1642. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1643. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1644. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1645. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1646. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1647. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1648. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1649. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1650. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1651. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1652. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1653. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1654. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1655. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1656. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1657. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1658. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1659. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1660. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1661. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1662. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1663. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1664. *
  1665. * (*) value not defined in all devices.
  1666. * @retval None
  1667. */
  1668. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  1669. {
  1670. __IO uint32_t tmpreg;
  1671. SET_BIT(RCC->APB2ENR, Periphs);
  1672. /* Delay after an RCC peripheral clock enabling */
  1673. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  1674. (void)tmpreg;
  1675. }
  1676. /**
  1677. * @brief Check if APB2 peripheral clock is enabled or not
  1678. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_IsEnabledClock\n
  1679. * APB2ENR TIM8EN LL_APB2_GRP1_IsEnabledClock\n
  1680. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  1681. * APB2ENR USART6EN LL_APB2_GRP1_IsEnabledClock\n
  1682. * APB2ENR UART9EN LL_APB2_GRP1_IsEnabledClock\n
  1683. * APB2ENR UART10EN LL_APB2_GRP1_IsEnabledClock\n
  1684. * APB2ENR ADC1EN LL_APB2_GRP1_IsEnabledClock\n
  1685. * APB2ENR ADC2EN LL_APB2_GRP1_IsEnabledClock\n
  1686. * APB2ENR ADC3EN LL_APB2_GRP1_IsEnabledClock\n
  1687. * APB2ENR SDIOEN LL_APB2_GRP1_IsEnabledClock\n
  1688. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  1689. * APB2ENR SPI4EN LL_APB2_GRP1_IsEnabledClock\n
  1690. * APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n
  1691. * APB2ENR EXTITEN LL_APB2_GRP1_IsEnabledClock\n
  1692. * APB2ENR TIM9EN LL_APB2_GRP1_IsEnabledClock\n
  1693. * APB2ENR TIM10EN LL_APB2_GRP1_IsEnabledClock\n
  1694. * APB2ENR TIM11EN LL_APB2_GRP1_IsEnabledClock\n
  1695. * APB2ENR SPI5EN LL_APB2_GRP1_IsEnabledClock\n
  1696. * APB2ENR SPI6EN LL_APB2_GRP1_IsEnabledClock\n
  1697. * APB2ENR SAI1EN LL_APB2_GRP1_IsEnabledClock\n
  1698. * APB2ENR SAI2EN LL_APB2_GRP1_IsEnabledClock\n
  1699. * APB2ENR LTDCEN LL_APB2_GRP1_IsEnabledClock\n
  1700. * APB2ENR DSIEN LL_APB2_GRP1_IsEnabledClock\n
  1701. * APB2ENR DFSDM1EN LL_APB2_GRP1_IsEnabledClock\n
  1702. * APB2ENR DFSDM2EN LL_APB2_GRP1_IsEnabledClock
  1703. * @param Periphs This parameter can be a combination of the following values:
  1704. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1705. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1706. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1707. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1708. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1709. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1710. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1711. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1712. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1713. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1714. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1715. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1716. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1717. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1718. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1719. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1720. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1721. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1722. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1723. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1724. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1725. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1726. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1727. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1728. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1729. *
  1730. * (*) value not defined in all devices.
  1731. * @retval State of Periphs (1 or 0).
  1732. */
  1733. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  1734. {
  1735. return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
  1736. }
  1737. /**
  1738. * @brief Disable APB2 peripherals clock.
  1739. * @rmtoll APB2ENR TIM1EN LL_APB2_GRP1_DisableClock\n
  1740. * APB2ENR TIM8EN LL_APB2_GRP1_DisableClock\n
  1741. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  1742. * APB2ENR USART6EN LL_APB2_GRP1_DisableClock\n
  1743. * APB2ENR UART9EN LL_APB2_GRP1_DisableClock\n
  1744. * APB2ENR UART10EN LL_APB2_GRP1_DisableClock\n
  1745. * APB2ENR ADC1EN LL_APB2_GRP1_DisableClock\n
  1746. * APB2ENR ADC2EN LL_APB2_GRP1_DisableClock\n
  1747. * APB2ENR ADC3EN LL_APB2_GRP1_DisableClock\n
  1748. * APB2ENR SDIOEN LL_APB2_GRP1_DisableClock\n
  1749. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  1750. * APB2ENR SPI4EN LL_APB2_GRP1_DisableClock\n
  1751. * APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n
  1752. * APB2ENR EXTITEN LL_APB2_GRP1_DisableClock\n
  1753. * APB2ENR TIM9EN LL_APB2_GRP1_DisableClock\n
  1754. * APB2ENR TIM10EN LL_APB2_GRP1_DisableClock\n
  1755. * APB2ENR TIM11EN LL_APB2_GRP1_DisableClock\n
  1756. * APB2ENR SPI5EN LL_APB2_GRP1_DisableClock\n
  1757. * APB2ENR SPI6EN LL_APB2_GRP1_DisableClock\n
  1758. * APB2ENR SAI1EN LL_APB2_GRP1_DisableClock\n
  1759. * APB2ENR SAI2EN LL_APB2_GRP1_DisableClock\n
  1760. * APB2ENR LTDCEN LL_APB2_GRP1_DisableClock\n
  1761. * APB2ENR DSIEN LL_APB2_GRP1_DisableClock\n
  1762. * APB2ENR DFSDM1EN LL_APB2_GRP1_DisableClock\n
  1763. * APB2ENR DFSDM2EN LL_APB2_GRP1_DisableClock
  1764. * @param Periphs This parameter can be a combination of the following values:
  1765. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1766. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1767. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1768. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1769. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1770. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1771. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1772. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1773. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1774. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1775. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1776. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1777. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1778. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1779. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1780. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1781. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1782. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1783. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1784. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1785. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1786. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1787. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1788. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1789. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1790. *
  1791. * (*) value not defined in all devices.
  1792. * @retval None
  1793. */
  1794. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  1795. {
  1796. CLEAR_BIT(RCC->APB2ENR, Periphs);
  1797. }
  1798. /**
  1799. * @brief Force APB2 peripherals reset.
  1800. * @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset\n
  1801. * APB2RSTR TIM8RST LL_APB2_GRP1_ForceReset\n
  1802. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  1803. * APB2RSTR USART6RST LL_APB2_GRP1_ForceReset\n
  1804. * APB2RSTR UART9RST LL_APB2_GRP1_ForceReset\n
  1805. * APB2RSTR UART10RST LL_APB2_GRP1_ForceReset\n
  1806. * APB2RSTR ADCRST LL_APB2_GRP1_ForceReset\n
  1807. * APB2RSTR SDIORST LL_APB2_GRP1_ForceReset\n
  1808. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  1809. * APB2RSTR SPI4RST LL_APB2_GRP1_ForceReset\n
  1810. * APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n
  1811. * APB2RSTR TIM9RST LL_APB2_GRP1_ForceReset\n
  1812. * APB2RSTR TIM10RST LL_APB2_GRP1_ForceReset\n
  1813. * APB2RSTR TIM11RST LL_APB2_GRP1_ForceReset\n
  1814. * APB2RSTR SPI5RST LL_APB2_GRP1_ForceReset\n
  1815. * APB2RSTR SPI6RST LL_APB2_GRP1_ForceReset\n
  1816. * APB2RSTR SAI1RST LL_APB2_GRP1_ForceReset\n
  1817. * APB2RSTR SAI2RST LL_APB2_GRP1_ForceReset\n
  1818. * APB2RSTR LTDCRST LL_APB2_GRP1_ForceReset\n
  1819. * APB2RSTR DSIRST LL_APB2_GRP1_ForceReset\n
  1820. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ForceReset\n
  1821. * APB2RSTR DFSDM2RST LL_APB2_GRP1_ForceReset
  1822. * @param Periphs This parameter can be a combination of the following values:
  1823. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1824. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1825. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1826. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1827. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1828. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1829. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1830. * @arg @ref LL_APB2_GRP1_PERIPH_ADC
  1831. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1832. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1833. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1834. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1835. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1836. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1837. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1838. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1839. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1840. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1841. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1842. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1843. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1844. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1845. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1846. *
  1847. * (*) value not defined in all devices.
  1848. * @retval None
  1849. */
  1850. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  1851. {
  1852. SET_BIT(RCC->APB2RSTR, Periphs);
  1853. }
  1854. /**
  1855. * @brief Release APB2 peripherals reset.
  1856. * @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset\n
  1857. * APB2RSTR TIM8RST LL_APB2_GRP1_ReleaseReset\n
  1858. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  1859. * APB2RSTR USART6RST LL_APB2_GRP1_ReleaseReset\n
  1860. * APB2RSTR UART9RST LL_APB2_GRP1_ReleaseReset\n
  1861. * APB2RSTR UART10RST LL_APB2_GRP1_ReleaseReset\n
  1862. * APB2RSTR ADCRST LL_APB2_GRP1_ReleaseReset\n
  1863. * APB2RSTR SDIORST LL_APB2_GRP1_ReleaseReset\n
  1864. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  1865. * APB2RSTR SPI4RST LL_APB2_GRP1_ReleaseReset\n
  1866. * APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n
  1867. * APB2RSTR TIM9RST LL_APB2_GRP1_ReleaseReset\n
  1868. * APB2RSTR TIM10RST LL_APB2_GRP1_ReleaseReset\n
  1869. * APB2RSTR TIM11RST LL_APB2_GRP1_ReleaseReset\n
  1870. * APB2RSTR SPI5RST LL_APB2_GRP1_ReleaseReset\n
  1871. * APB2RSTR SPI6RST LL_APB2_GRP1_ReleaseReset\n
  1872. * APB2RSTR SAI1RST LL_APB2_GRP1_ReleaseReset\n
  1873. * APB2RSTR SAI2RST LL_APB2_GRP1_ReleaseReset\n
  1874. * APB2RSTR LTDCRST LL_APB2_GRP1_ReleaseReset\n
  1875. * APB2RSTR DSIRST LL_APB2_GRP1_ReleaseReset\n
  1876. * APB2RSTR DFSDM1RST LL_APB2_GRP1_ReleaseReset\n
  1877. * APB2RSTR DFSDM2RST LL_APB2_GRP1_ReleaseReset
  1878. * @param Periphs This parameter can be a combination of the following values:
  1879. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  1880. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1881. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1882. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1883. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1884. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1885. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1886. * @arg @ref LL_APB2_GRP1_PERIPH_ADC
  1887. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1888. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1889. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1890. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1891. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1892. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1893. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1894. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1895. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1896. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1897. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1898. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1899. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1900. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1901. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1902. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1903. *
  1904. * (*) value not defined in all devices.
  1905. * @retval None
  1906. */
  1907. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  1908. {
  1909. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  1910. }
  1911. /**
  1912. * @brief Enable APB2 peripheral clocks in low-power mode
  1913. * @rmtoll APB2LPENR TIM1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1914. * APB2LPENR TIM8LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1915. * APB2LPENR USART1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1916. * APB2LPENR USART6LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1917. * APB2LPENR UART9LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1918. * APB2LPENR UART10LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1919. * APB2LPENR ADC1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1920. * APB2LPENR ADC2LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1921. * APB2LPENR ADC3LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1922. * APB2LPENR SDIOLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1923. * APB2LPENR SPI1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1924. * APB2LPENR SPI4LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1925. * APB2LPENR SYSCFGLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1926. * APB2LPENR EXTITLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1927. * APB2LPENR TIM9LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1928. * APB2LPENR TIM10LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1929. * APB2LPENR TIM11LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1930. * APB2LPENR SPI5LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1931. * APB2LPENR SPI6LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1932. * APB2LPENR SAI1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1933. * APB2LPENR SAI2LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1934. * APB2LPENR LTDCLPEN LL_APB2_GRP1_EnableClockLowPower\n
  1935. * APB2LPENR DSILPEN LL_APB2_GRP1_EnableClockLowPower\n
  1936. * APB2LPENR DFSDM1LPEN LL_APB2_GRP1_EnableClockLowPower\n
  1937. * APB2LPENR DSILPEN LL_APB2_GRP1_EnableClockLowPower\n
  1938. * APB2LPENR DFSDM2LPEN LL_APB2_GRP1_EnableClockLowPower
  1939. * @param Periphs This parameter can be a combination of the following values:
  1940. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  1941. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  1942. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1943. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  1944. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  1945. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  1946. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1947. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  1948. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  1949. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1950. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1951. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  1952. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1953. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  1954. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1955. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  1956. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1957. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  1958. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  1959. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  1960. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  1961. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  1962. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  1963. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  1964. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  1965. *
  1966. * (*) value not defined in all devices.
  1967. * @retval None
  1968. */
  1969. __STATIC_INLINE void LL_APB2_GRP1_EnableClockLowPower(uint32_t Periphs)
  1970. {
  1971. __IO uint32_t tmpreg;
  1972. SET_BIT(RCC->APB2LPENR, Periphs);
  1973. /* Delay after an RCC peripheral clock enabling */
  1974. tmpreg = READ_BIT(RCC->APB2LPENR, Periphs);
  1975. (void)tmpreg;
  1976. }
  1977. /**
  1978. * @brief Disable APB2 peripheral clocks in low-power mode
  1979. * @rmtoll APB2LPENR TIM1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1980. * APB2LPENR TIM8LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1981. * APB2LPENR USART1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1982. * APB2LPENR USART6LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1983. * APB2LPENR UART9LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1984. * APB2LPENR UART10LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1985. * APB2LPENR ADC1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1986. * APB2LPENR ADC2LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1987. * APB2LPENR ADC3LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1988. * APB2LPENR SDIOLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1989. * APB2LPENR SPI1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1990. * APB2LPENR SPI4LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1991. * APB2LPENR SYSCFGLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1992. * APB2LPENR EXTITLPEN LL_APB2_GRP1_DisableClockLowPower\n
  1993. * APB2LPENR TIM9LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1994. * APB2LPENR TIM10LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1995. * APB2LPENR TIM11LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1996. * APB2LPENR SPI5LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1997. * APB2LPENR SPI6LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1998. * APB2LPENR SAI1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  1999. * APB2LPENR SAI2LPEN LL_APB2_GRP1_DisableClockLowPower\n
  2000. * APB2LPENR LTDCLPEN LL_APB2_GRP1_DisableClockLowPower\n
  2001. * APB2LPENR DSILPEN LL_APB2_GRP1_DisableClockLowPower\n
  2002. * APB2LPENR DFSDM1LPEN LL_APB2_GRP1_DisableClockLowPower\n
  2003. * APB2LPENR DSILPEN LL_APB2_GRP1_DisableClockLowPower\n
  2004. * APB2LPENR DFSDM2LPEN LL_APB2_GRP1_DisableClockLowPower
  2005. * @param Periphs This parameter can be a combination of the following values:
  2006. * @arg @ref LL_APB2_GRP1_PERIPH_TIM1
  2007. * @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
  2008. * @arg @ref LL_APB2_GRP1_PERIPH_USART1
  2009. * @arg @ref LL_APB2_GRP1_PERIPH_USART6 (*)
  2010. * @arg @ref LL_APB2_GRP1_PERIPH_UART9 (*)
  2011. * @arg @ref LL_APB2_GRP1_PERIPH_UART10 (*)
  2012. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  2013. * @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
  2014. * @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
  2015. * @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  2016. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  2017. * @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
  2018. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  2019. * @arg @ref LL_APB2_GRP1_PERIPH_EXTI (*)
  2020. * @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  2021. * @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
  2022. * @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  2023. * @arg @ref LL_APB2_GRP1_PERIPH_SPI5 (*)
  2024. * @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
  2025. * @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
  2026. * @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
  2027. * @arg @ref LL_APB2_GRP1_PERIPH_LTDC (*)
  2028. * @arg @ref LL_APB2_GRP1_PERIPH_DSI (*)
  2029. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM1 (*)
  2030. * @arg @ref LL_APB2_GRP1_PERIPH_DFSDM2 (*)
  2031. *
  2032. * (*) value not defined in all devices.
  2033. * @retval None
  2034. */
  2035. __STATIC_INLINE void LL_APB2_GRP1_DisableClockLowPower(uint32_t Periphs)
  2036. {
  2037. CLEAR_BIT(RCC->APB2LPENR, Periphs);
  2038. }
  2039. /**
  2040. * @}
  2041. */
  2042. /**
  2043. * @}
  2044. */
  2045. /**
  2046. * @}
  2047. */
  2048. #endif /* defined(RCC) */
  2049. /**
  2050. * @}
  2051. */
  2052. #ifdef __cplusplus
  2053. }
  2054. #endif
  2055. #endif /* __STM32F4xx_LL_BUS_H */
  2056. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/