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.
 
 
 

1995 lines
94 KiB

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