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.
 
 
 

1172 lines
49 KiB

  1. /**
  2. ******************************************************************************
  3. * @file stm32l0xx_ll_bus.h
  4. * @author MCD Application Team
  5. * @brief Header file of BUS LL module.
  6. @verbatim
  7. ##### RCC Limitations #####
  8. ==============================================================================
  9. [..]
  10. A delay between an RCC peripheral clock enable and the effective peripheral
  11. enabling should be taken into account in order to manage the peripheral read/write
  12. from/to registers.
  13. (+) This delay depends on the peripheral mapping.
  14. (++) AHB & APB peripherals, 1 dummy read is necessary
  15. [..]
  16. Workarounds:
  17. (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
  18. inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
  19. @endverbatim
  20. ******************************************************************************
  21. * @attention
  22. *
  23. * <h2><center>&copy; Copyright(c) 2016 STMicroelectronics.
  24. * All rights reserved.</center></h2>
  25. *
  26. * This software component is licensed by ST under BSD 3-Clause license,
  27. * the "License"; You may not use this file except in compliance with the
  28. * License. You may obtain a copy of the License at:
  29. * opensource.org/licenses/BSD-3-Clause
  30. *
  31. ******************************************************************************
  32. */
  33. /* Define to prevent recursive inclusion -------------------------------------*/
  34. #ifndef __STM32L0xx_LL_BUS_H
  35. #define __STM32L0xx_LL_BUS_H
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. /* Includes ------------------------------------------------------------------*/
  40. #include "stm32l0xx.h"
  41. /** @addtogroup STM32L0xx_LL_Driver
  42. * @{
  43. */
  44. #if defined(RCC)
  45. /** @defgroup BUS_LL BUS
  46. * @{
  47. */
  48. /* Private types -------------------------------------------------------------*/
  49. /* Private variables ---------------------------------------------------------*/
  50. /* Private constants ---------------------------------------------------------*/
  51. /* Private macros ------------------------------------------------------------*/
  52. /* Exported types ------------------------------------------------------------*/
  53. /* Exported constants --------------------------------------------------------*/
  54. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  55. * @{
  56. */
  57. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH AHB1 GRP1 PERIPH
  58. * @{
  59. */
  60. #define LL_AHB1_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  61. #define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHBENR_DMA1EN /*!< DMA1 clock enable */
  62. #define LL_AHB1_GRP1_PERIPH_MIF RCC_AHBENR_MIFEN /*!< MIF clock enable */
  63. #define LL_AHB1_GRP1_PERIPH_SRAM RCC_AHBSMENR_SRAMSMEN /*!< Sleep Mode SRAM clock enable */
  64. #define LL_AHB1_GRP1_PERIPH_CRC RCC_AHBENR_CRCEN /*!< CRC clock enable */
  65. #if defined(TSC)
  66. #define LL_AHB1_GRP1_PERIPH_TSC RCC_AHBENR_TSCEN /*!< TSC clock enable */
  67. #endif /*TSC*/
  68. #if defined(RNG)
  69. #define LL_AHB1_GRP1_PERIPH_RNG RCC_AHBENR_RNGEN /*!< RNG clock enable */
  70. #endif /*RNG*/
  71. #if defined(AES)
  72. #define LL_AHB1_GRP1_PERIPH_CRYP RCC_AHBENR_CRYPEN /*!< CRYP clock enable */
  73. #endif /*AES*/
  74. /**
  75. * @}
  76. */
  77. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH APB1 GRP1 PERIPH
  78. * @{
  79. */
  80. #define LL_APB1_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  81. #define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN /*!< TIM2 clock enable */
  82. #if defined(TIM3)
  83. #define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN /*!< TIM3 clock enable */
  84. #endif
  85. #if defined(TIM6)
  86. #define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN /*!< TIM6 clock enable */
  87. #endif
  88. #if defined(TIM7)
  89. #define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN /*!< TIM7 clock enable */
  90. #endif
  91. #if defined(LCD)
  92. #define LL_APB1_GRP1_PERIPH_LCD RCC_APB1ENR_LCDEN /*!< LCD clock enable */
  93. #endif /*LCD*/
  94. #define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN /*!< WWDG clock enable */
  95. #if defined(SPI2)
  96. #define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN /*!< SPI2 clock enable */
  97. #endif
  98. #define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN /*!< USART2 clock enable */
  99. #define LL_APB1_GRP1_PERIPH_LPUART1 RCC_APB1ENR_LPUART1EN /*!< LPUART1 clock enable */
  100. #if defined(USART4)
  101. #define LL_APB1_GRP1_PERIPH_USART4 RCC_APB1ENR_USART4EN /*!< USART4 clock enable */
  102. #endif
  103. #if defined(USART5)
  104. #define LL_APB1_GRP1_PERIPH_USART5 RCC_APB1ENR_USART5EN /*!< USART5 clock enable */
  105. #endif
  106. #define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN /*!< I2C1 clock enable */
  107. #if defined(I2C2)
  108. #define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN /*!< I2C2 clock enable */
  109. #endif
  110. #if defined(USB)
  111. #define LL_APB1_GRP1_PERIPH_USB RCC_APB1ENR_USBEN /*!< USB clock enable */
  112. #endif /*USB*/
  113. #if defined(CRS)
  114. #define LL_APB1_GRP1_PERIPH_CRS RCC_APB1ENR_CRSEN /*!< CRS clock enable */
  115. #endif /*CRS*/
  116. #define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN /*!< PWR clock enable */
  117. #if defined(DAC)
  118. #define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DACEN /*!< DAC clock enable */
  119. #endif
  120. #if defined(I2C3)
  121. #define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN /*!< I2C3 clock enable */
  122. #endif
  123. #define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR_LPTIM1EN /*!< LPTIM1 clock enable */
  124. /**
  125. * @}
  126. */
  127. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH APB2 GRP1 PERIPH
  128. * @{
  129. */
  130. #define LL_APB2_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  131. #define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN /*!< SYSCFG clock enable */
  132. #define LL_APB2_GRP1_PERIPH_TIM21 RCC_APB2ENR_TIM21EN /*!< TIM21 clock enable */
  133. #if defined(TIM22)
  134. #define LL_APB2_GRP1_PERIPH_TIM22 RCC_APB2ENR_TIM22EN /*!< TIM22 clock enable */
  135. #endif
  136. #define LL_APB2_GRP1_PERIPH_FW RCC_APB2ENR_FWEN /*!< FireWall clock enable */
  137. #define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN /*!< ADC1 clock enable */
  138. #define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN /*!< SPI1 clock enable */
  139. #if defined(USART1)
  140. #define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN /*!< USART1 clock enable */
  141. #endif
  142. #define LL_APB2_GRP1_PERIPH_DBGMCU RCC_APB2ENR_DBGMCUEN /*!< DBGMCU clock enable */
  143. /**
  144. * @}
  145. */
  146. /** @defgroup BUS_LL_EC_IOP_GRP1_PERIPH IOP GRP1 PERIPH
  147. * @{
  148. */
  149. #define LL_IOP_GRP1_PERIPH_ALL (uint32_t)0xFFFFFFFFU
  150. #define LL_IOP_GRP1_PERIPH_GPIOA RCC_IOPENR_GPIOAEN /*!< GPIO port A control */
  151. #define LL_IOP_GRP1_PERIPH_GPIOB RCC_IOPENR_GPIOBEN /*!< GPIO port B control */
  152. #define LL_IOP_GRP1_PERIPH_GPIOC RCC_IOPENR_GPIOCEN /*!< GPIO port C control */
  153. #if defined(GPIOD)
  154. #define LL_IOP_GRP1_PERIPH_GPIOD RCC_IOPENR_GPIODEN /*!< GPIO port D control */
  155. #endif /*GPIOD*/
  156. #if defined(GPIOE)
  157. #define LL_IOP_GRP1_PERIPH_GPIOE RCC_IOPENR_GPIOEEN /*!< GPIO port H control */
  158. #endif /*GPIOE*/
  159. #if defined(GPIOH)
  160. #define LL_IOP_GRP1_PERIPH_GPIOH RCC_IOPENR_GPIOHEN /*!< GPIO port H control */
  161. #endif /*GPIOH*/
  162. /**
  163. * @}
  164. */
  165. /**
  166. * @}
  167. */
  168. /* Exported macro ------------------------------------------------------------*/
  169. /* Exported functions --------------------------------------------------------*/
  170. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  171. * @{
  172. */
  173. /** @defgroup BUS_LL_EF_AHB1 AHB1
  174. * @{
  175. */
  176. /**
  177. * @brief Enable AHB1 peripherals clock.
  178. * @rmtoll AHBENR DMAEN LL_AHB1_GRP1_EnableClock\n
  179. * AHBENR MIFEN LL_AHB1_GRP1_EnableClock\n
  180. * AHBENR CRCEN LL_AHB1_GRP1_EnableClock\n
  181. * AHBENR TSCEN LL_AHB1_GRP1_EnableClock\n
  182. * AHBENR RNGEN LL_AHB1_GRP1_EnableClock\n
  183. * AHBENR CRYPEN LL_AHB1_GRP1_EnableClock
  184. * @param Periphs This parameter can be a combination of the following values:
  185. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  186. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  187. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  188. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  189. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  190. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  191. *
  192. * (*) value not defined in all devices.
  193. * @retval None
  194. */
  195. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  196. {
  197. __IO uint32_t tmpreg;
  198. SET_BIT(RCC->AHBENR, Periphs);
  199. /* Delay after an RCC peripheral clock enabling */
  200. tmpreg = READ_BIT(RCC->AHBENR, Periphs);
  201. (void)tmpreg;
  202. }
  203. /**
  204. * @brief Check if AHB1 peripheral clock is enabled or not
  205. * @rmtoll AHBENR DMAEN LL_AHB1_GRP1_IsEnabledClock\n
  206. * AHBENR MIFEN LL_AHB1_GRP1_IsEnabledClock\n
  207. * AHBENR CRCEN LL_AHB1_GRP1_IsEnabledClock\n
  208. * AHBENR TSCEN LL_AHB1_GRP1_IsEnabledClock\n
  209. * AHBENR RNGEN LL_AHB1_GRP1_IsEnabledClock\n
  210. * AHBENR CRYPEN LL_AHB1_GRP1_IsEnabledClock
  211. * @param Periphs This parameter can be a combination of the following values:
  212. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  213. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  214. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  215. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  216. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  217. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  218. *
  219. * (*) value not defined in all devices.
  220. * @retval State of Periphs (1 or 0).
  221. */
  222. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  223. {
  224. return ((READ_BIT(RCC->AHBENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  225. }
  226. /**
  227. * @brief Disable AHB1 peripherals clock.
  228. * @rmtoll AHBENR DMAEN LL_AHB1_GRP1_DisableClock\n
  229. * AHBENR MIFEN LL_AHB1_GRP1_DisableClock\n
  230. * AHBENR CRCEN LL_AHB1_GRP1_DisableClock\n
  231. * AHBENR TSCEN LL_AHB1_GRP1_DisableClock\n
  232. * AHBENR RNGEN LL_AHB1_GRP1_DisableClock\n
  233. * AHBENR CRYPEN LL_AHB1_GRP1_DisableClock
  234. * @param Periphs This parameter can be a combination of the following values:
  235. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  236. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  237. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  238. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  239. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  240. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  241. *
  242. * (*) value not defined in all devices.
  243. * @retval None
  244. */
  245. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  246. {
  247. CLEAR_BIT(RCC->AHBENR, Periphs);
  248. }
  249. /**
  250. * @brief Force AHB1 peripherals reset.
  251. * @rmtoll AHBRSTR DMARST LL_AHB1_GRP1_ForceReset\n
  252. * AHBRSTR MIFRST LL_AHB1_GRP1_ForceReset\n
  253. * AHBRSTR CRCRST LL_AHB1_GRP1_ForceReset\n
  254. * AHBRSTR TSCRST LL_AHB1_GRP1_ForceReset\n
  255. * AHBRSTR RNGRST LL_AHB1_GRP1_ForceReset\n
  256. * AHBRSTR CRYPRST LL_AHB1_GRP1_ForceReset
  257. * @param Periphs This parameter can be a combination of the following values:
  258. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  259. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  260. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  261. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  262. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  263. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  264. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  265. *
  266. * (*) value not defined in all devices.
  267. * @retval None
  268. */
  269. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  270. {
  271. SET_BIT(RCC->AHBRSTR, Periphs);
  272. }
  273. /**
  274. * @brief Release AHB1 peripherals reset.
  275. * @rmtoll AHBRSTR DMARST LL_AHB1_GRP1_ReleaseReset\n
  276. * AHBRSTR MIFRST LL_AHB1_GRP1_ReleaseReset\n
  277. * AHBRSTR CRCRST LL_AHB1_GRP1_ReleaseReset\n
  278. * AHBRSTR TSCRST LL_AHB1_GRP1_ReleaseReset\n
  279. * AHBRSTR RNGRST LL_AHB1_GRP1_ReleaseReset\n
  280. * AHBRSTR CRYPRST LL_AHB1_GRP1_ReleaseReset
  281. * @param Periphs This parameter can be a combination of the following values:
  282. * @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  283. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  284. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  285. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  286. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  287. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  288. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  289. *
  290. * (*) value not defined in all devices.
  291. * @retval None
  292. */
  293. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  294. {
  295. CLEAR_BIT(RCC->AHBRSTR, Periphs);
  296. }
  297. /**
  298. * @brief Enable AHB1 peripherals clock during Low Power (Sleep) mode.
  299. * @rmtoll AHBSMENR DMASMEN LL_AHB1_GRP1_EnableClockSleep\n
  300. * AHBSMENR MIFSMEN LL_AHB1_GRP1_EnableClockSleep\n
  301. * AHBSMENR SRAMSMEN LL_AHB1_GRP1_EnableClockSleep\n
  302. * AHBSMENR CRCSMEN LL_AHB1_GRP1_EnableClockSleep\n
  303. * AHBSMENR TSCSMEN LL_AHB1_GRP1_EnableClockSleep\n
  304. * AHBSMENR RNGSMEN LL_AHB1_GRP1_EnableClockSleep\n
  305. * AHBSMENR CRYPSMEN LL_AHB1_GRP1_EnableClockSleep
  306. * @param Periphs This parameter can be a combination of the following values:
  307. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  308. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  309. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  310. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  311. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  312. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  313. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  314. *
  315. * (*) value not defined in all devices.
  316. * @retval None
  317. */
  318. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)
  319. {
  320. __IO uint32_t tmpreg;
  321. SET_BIT(RCC->AHBSMENR, Periphs);
  322. /* Delay after an RCC peripheral clock enabling */
  323. tmpreg = READ_BIT(RCC->AHBSMENR, Periphs);
  324. (void)tmpreg;
  325. }
  326. /**
  327. * @brief Disable AHB1 peripherals clock during Low Power (Sleep) mode.
  328. * @rmtoll AHBSMENR DMASMEN LL_AHB1_GRP1_DisableClockSleep\n
  329. * AHBSMENR MIFSMEN LL_AHB1_GRP1_DisableClockSleep\n
  330. * AHBSMENR SRAMSMEN LL_AHB1_GRP1_DisableClockSleep\n
  331. * AHBSMENR CRCSMEN LL_AHB1_GRP1_DisableClockSleep\n
  332. * AHBSMENR TSCSMEN LL_AHB1_GRP1_DisableClockSleep\n
  333. * AHBSMENR RNGSMEN LL_AHB1_GRP1_DisableClockSleep\n
  334. * AHBSMENR CRYPSMEN LL_AHB1_GRP1_DisableClockSleep
  335. * @param Periphs This parameter can be a combination of the following values:
  336. * @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  337. * @arg @ref LL_AHB1_GRP1_PERIPH_MIF
  338. * @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  339. * @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  340. * @arg @ref LL_AHB1_GRP1_PERIPH_TSC (*)
  341. * @arg @ref LL_AHB1_GRP1_PERIPH_RNG (*)
  342. * @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  343. *
  344. * (*) value not defined in all devices.
  345. * @retval None
  346. */
  347. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)
  348. {
  349. CLEAR_BIT(RCC->AHBSMENR, Periphs);
  350. }
  351. /**
  352. * @}
  353. */
  354. /** @defgroup BUS_LL_EF_APB1 APB1
  355. * @{
  356. */
  357. /**
  358. * @brief Enable APB1 peripherals clock.
  359. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_EnableClock\n
  360. * APB1ENR TIM3EN LL_APB1_GRP1_EnableClock\n
  361. * APB1ENR TIM6EN LL_APB1_GRP1_EnableClock\n
  362. * APB1ENR TIM7EN LL_APB1_GRP1_EnableClock\n
  363. * APB1ENR LCDEN LL_APB1_GRP1_EnableClock\n
  364. * APB1ENR WWDGEN LL_APB1_GRP1_EnableClock\n
  365. * APB1ENR SPI2EN LL_APB1_GRP1_EnableClock\n
  366. * APB1ENR USART2EN LL_APB1_GRP1_EnableClock\n
  367. * APB1ENR LPUART1EN LL_APB1_GRP1_EnableClock\n
  368. * APB1ENR USART4EN LL_APB1_GRP1_EnableClock\n
  369. * APB1ENR USART5EN LL_APB1_GRP1_EnableClock\n
  370. * APB1ENR I2C1EN LL_APB1_GRP1_EnableClock\n
  371. * APB1ENR I2C2EN LL_APB1_GRP1_EnableClock\n
  372. * APB1ENR USBEN LL_APB1_GRP1_EnableClock\n
  373. * APB1ENR CRSEN LL_APB1_GRP1_EnableClock\n
  374. * APB1ENR PWREN LL_APB1_GRP1_EnableClock\n
  375. * APB1ENR DACEN LL_APB1_GRP1_EnableClock\n
  376. * APB1ENR I2C3EN LL_APB1_GRP1_EnableClock\n
  377. * APB1ENR LPTIM1EN LL_APB1_GRP1_EnableClock
  378. * @param Periphs This parameter can be a combination of the following values:
  379. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  380. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  381. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  382. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  383. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  384. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  385. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  386. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  387. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  388. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  389. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  390. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  391. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  392. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  393. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  394. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  395. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  396. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  397. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  398. *
  399. * (*) value not defined in all devices.
  400. * @retval None
  401. */
  402. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  403. {
  404. __IO uint32_t tmpreg;
  405. SET_BIT(RCC->APB1ENR, Periphs);
  406. /* Delay after an RCC peripheral clock enabling */
  407. tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
  408. (void)tmpreg;
  409. }
  410. /**
  411. * @brief Check if APB1 peripheral clock is enabled or not
  412. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_IsEnabledClock\n
  413. * APB1ENR TIM3EN LL_APB1_GRP1_IsEnabledClock\n
  414. * APB1ENR TIM6EN LL_APB1_GRP1_IsEnabledClock\n
  415. * APB1ENR TIM7EN LL_APB1_GRP1_IsEnabledClock\n
  416. * APB1ENR LCDEN LL_APB1_GRP1_IsEnabledClock\n
  417. * APB1ENR WWDGEN LL_APB1_GRP1_IsEnabledClock\n
  418. * APB1ENR SPI2EN LL_APB1_GRP1_IsEnabledClock\n
  419. * APB1ENR USART2EN LL_APB1_GRP1_IsEnabledClock\n
  420. * APB1ENR LPUART1EN LL_APB1_GRP1_IsEnabledClock\n
  421. * APB1ENR USART4EN LL_APB1_GRP1_IsEnabledClock\n
  422. * APB1ENR USART5EN LL_APB1_GRP1_IsEnabledClock\n
  423. * APB1ENR I2C1EN LL_APB1_GRP1_IsEnabledClock\n
  424. * APB1ENR I2C2EN LL_APB1_GRP1_IsEnabledClock\n
  425. * APB1ENR USBEN LL_APB1_GRP1_IsEnabledClock\n
  426. * APB1ENR CRSEN LL_APB1_GRP1_IsEnabledClock\n
  427. * APB1ENR PWREN LL_APB1_GRP1_IsEnabledClock\n
  428. * APB1ENR DACEN LL_APB1_GRP1_IsEnabledClock\n
  429. * APB1ENR I2C3EN LL_APB1_GRP1_IsEnabledClock\n
  430. * APB1ENR LPTIM1EN LL_APB1_GRP1_IsEnabledClock
  431. * @param Periphs This parameter can be a combination of the following values:
  432. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  433. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  434. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  435. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  436. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  437. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  438. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  439. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  440. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  441. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  442. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  443. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  444. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  445. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  446. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  447. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  448. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  449. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  450. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  451. *
  452. * (*) value not defined in all devices.
  453. * @retval State of Periphs (1 or 0).
  454. */
  455. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  456. {
  457. return ((READ_BIT(RCC->APB1ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  458. }
  459. /**
  460. * @brief Disable APB1 peripherals clock.
  461. * @rmtoll APB1ENR TIM2EN LL_APB1_GRP1_DisableClock\n
  462. * APB1ENR TIM3EN LL_APB1_GRP1_DisableClock\n
  463. * APB1ENR TIM6EN LL_APB1_GRP1_DisableClock\n
  464. * APB1ENR TIM7EN LL_APB1_GRP1_DisableClock\n
  465. * APB1ENR LCDEN LL_APB1_GRP1_DisableClock\n
  466. * APB1ENR WWDGEN LL_APB1_GRP1_DisableClock\n
  467. * APB1ENR SPI2EN LL_APB1_GRP1_DisableClock\n
  468. * APB1ENR USART2EN LL_APB1_GRP1_DisableClock\n
  469. * APB1ENR LPUART1EN LL_APB1_GRP1_DisableClock\n
  470. * APB1ENR USART4EN LL_APB1_GRP1_DisableClock\n
  471. * APB1ENR USART5EN LL_APB1_GRP1_DisableClock\n
  472. * APB1ENR I2C1EN LL_APB1_GRP1_DisableClock\n
  473. * APB1ENR I2C2EN LL_APB1_GRP1_DisableClock\n
  474. * APB1ENR USBEN LL_APB1_GRP1_DisableClock\n
  475. * APB1ENR CRSEN LL_APB1_GRP1_DisableClock\n
  476. * APB1ENR PWREN LL_APB1_GRP1_DisableClock\n
  477. * APB1ENR DACEN LL_APB1_GRP1_DisableClock\n
  478. * APB1ENR I2C3EN LL_APB1_GRP1_DisableClock\n
  479. * APB1ENR LPTIM1EN LL_APB1_GRP1_DisableClock
  480. * @param Periphs This parameter can be a combination of the following values:
  481. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  482. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  483. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  484. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  485. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  486. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  487. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  488. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  489. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  490. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  491. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  492. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  493. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  494. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  495. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  496. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  497. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  498. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  499. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  500. *
  501. * (*) value not defined in all devices.
  502. * @retval None
  503. */
  504. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  505. {
  506. CLEAR_BIT(RCC->APB1ENR, Periphs);
  507. }
  508. /**
  509. * @brief Force APB1 peripherals reset.
  510. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset\n
  511. * APB1RSTR TIM3RST LL_APB1_GRP1_ForceReset\n
  512. * APB1RSTR TIM6RST LL_APB1_GRP1_ForceReset\n
  513. * APB1RSTR TIM7RST LL_APB1_GRP1_ForceReset\n
  514. * APB1RSTR LCDRST LL_APB1_GRP1_ForceReset\n
  515. * APB1RSTR WWDGRST LL_APB1_GRP1_ForceReset\n
  516. * APB1RSTR SPI2RST LL_APB1_GRP1_ForceReset\n
  517. * APB1RSTR USART2RST LL_APB1_GRP1_ForceReset\n
  518. * APB1RSTR LPUART1RST LL_APB1_GRP1_ForceReset\n
  519. * APB1RSTR USART4RST LL_APB1_GRP1_ForceReset\n
  520. * APB1RSTR USART5RST LL_APB1_GRP1_ForceReset\n
  521. * APB1RSTR I2C1RST LL_APB1_GRP1_ForceReset\n
  522. * APB1RSTR I2C2RST LL_APB1_GRP1_ForceReset\n
  523. * APB1RSTR USBRST LL_APB1_GRP1_ForceReset\n
  524. * APB1RSTR CRSRST LL_APB1_GRP1_ForceReset\n
  525. * APB1RSTR PWRRST LL_APB1_GRP1_ForceReset\n
  526. * APB1RSTR DACRST LL_APB1_GRP1_ForceReset\n
  527. * APB1RSTR I2C3RST LL_APB1_GRP1_ForceReset\n
  528. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ForceReset
  529. * @param Periphs This parameter can be a combination of the following values:
  530. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  531. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  532. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  533. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  534. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  535. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  536. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  537. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  538. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  539. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  540. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  541. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  542. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  543. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  544. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  545. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  546. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  547. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  548. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  549. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  550. *
  551. * (*) value not defined in all devices.
  552. * @retval None
  553. */
  554. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  555. {
  556. SET_BIT(RCC->APB1RSTR, Periphs);
  557. }
  558. /**
  559. * @brief Release APB1 peripherals reset.
  560. * @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset\n
  561. * APB1RSTR TIM3RST LL_APB1_GRP1_ReleaseReset\n
  562. * APB1RSTR TIM6RST LL_APB1_GRP1_ReleaseReset\n
  563. * APB1RSTR TIM7RST LL_APB1_GRP1_ReleaseReset\n
  564. * APB1RSTR LCDRST LL_APB1_GRP1_ReleaseReset\n
  565. * APB1RSTR WWDGRST LL_APB1_GRP1_ReleaseReset\n
  566. * APB1RSTR SPI2RST LL_APB1_GRP1_ReleaseReset\n
  567. * APB1RSTR USART2RST LL_APB1_GRP1_ReleaseReset\n
  568. * APB1RSTR LPUART1RST LL_APB1_GRP1_ReleaseReset\n
  569. * APB1RSTR USART4RST LL_APB1_GRP1_ReleaseReset\n
  570. * APB1RSTR USART5RST LL_APB1_GRP1_ReleaseReset\n
  571. * APB1RSTR I2C1RST LL_APB1_GRP1_ReleaseReset\n
  572. * APB1RSTR I2C2RST LL_APB1_GRP1_ReleaseReset\n
  573. * APB1RSTR USBRST LL_APB1_GRP1_ReleaseReset\n
  574. * APB1RSTR CRSRST LL_APB1_GRP1_ReleaseReset\n
  575. * APB1RSTR PWRRST LL_APB1_GRP1_ReleaseReset\n
  576. * APB1RSTR DACRST LL_APB1_GRP1_ReleaseReset\n
  577. * APB1RSTR I2C3RST LL_APB1_GRP1_ReleaseReset\n
  578. * APB1RSTR LPTIM1RST LL_APB1_GRP1_ReleaseReset
  579. * @param Periphs This parameter can be a combination of the following values:
  580. * @arg @ref LL_APB1_GRP1_PERIPH_ALL
  581. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  582. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  583. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  584. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  585. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  586. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  587. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  588. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  589. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  590. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  591. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  592. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  593. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  594. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  595. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  596. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  597. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  598. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  599. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  600. *
  601. * (*) value not defined in all devices.
  602. * @retval None
  603. */
  604. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  605. {
  606. CLEAR_BIT(RCC->APB1RSTR, Periphs);
  607. }
  608. /**
  609. * @brief Enable APB1 peripherals clock during Low Power (Sleep) mode.
  610. * @rmtoll APB1SMENR TIM2SMEN LL_APB1_GRP1_EnableClockSleep\n
  611. * APB1SMENR TIM3SMEN LL_APB1_GRP1_EnableClockSleep\n
  612. * APB1SMENR TIM6SMEN LL_APB1_GRP1_EnableClockSleep\n
  613. * APB1SMENR TIM7SMEN LL_APB1_GRP1_EnableClockSleep\n
  614. * APB1SMENR LCDSMEN LL_APB1_GRP1_EnableClockSleep\n
  615. * APB1SMENR WWDGSMEN LL_APB1_GRP1_EnableClockSleep\n
  616. * APB1SMENR SPI2SMEN LL_APB1_GRP1_EnableClockSleep\n
  617. * APB1SMENR USART2SMEN LL_APB1_GRP1_EnableClockSleep\n
  618. * APB1SMENR LPUART1SMEN LL_APB1_GRP1_EnableClockSleep\n
  619. * APB1SMENR USART4SMEN LL_APB1_GRP1_EnableClockSleep\n
  620. * APB1SMENR USART5SMEN LL_APB1_GRP1_EnableClockSleep\n
  621. * APB1SMENR I2C1SMEN LL_APB1_GRP1_EnableClockSleep\n
  622. * APB1SMENR I2C2SMEN LL_APB1_GRP1_EnableClockSleep\n
  623. * APB1SMENR USBSMEN LL_APB1_GRP1_EnableClockSleep\n
  624. * APB1SMENR CRSSMEN LL_APB1_GRP1_EnableClockSleep\n
  625. * APB1SMENR PWRSMEN LL_APB1_GRP1_EnableClockSleep\n
  626. * APB1SMENR DACSMEN LL_APB1_GRP1_EnableClockSleep\n
  627. * APB1SMENR I2C3SMEN LL_APB1_GRP1_EnableClockSleep\n
  628. * APB1SMENR LPTIM1SMEN LL_APB1_GRP1_EnableClockSleep
  629. * @param Periphs This parameter can be a combination of the following values:
  630. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  631. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  632. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  633. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  634. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  635. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  636. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  637. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  638. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  639. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  640. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  641. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  642. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  643. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  644. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  645. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  646. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  647. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  648. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  649. *
  650. * (*) value not defined in all devices.
  651. * @retval None
  652. */
  653. __STATIC_INLINE void LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs)
  654. {
  655. __IO uint32_t tmpreg;
  656. SET_BIT(RCC->APB1SMENR, Periphs);
  657. /* Delay after an RCC peripheral clock enabling */
  658. tmpreg = READ_BIT(RCC->APB1SMENR, Periphs);
  659. (void)tmpreg;
  660. }
  661. /**
  662. * @brief Disable APB1 peripherals clock during Low Power (Sleep) mode.
  663. * @rmtoll APB1SMENR TIM2SMEN LL_APB1_GRP1_DisableClockSleep\n
  664. * APB1SMENR TIM3SMEN LL_APB1_GRP1_DisableClockSleep\n
  665. * APB1SMENR TIM6SMEN LL_APB1_GRP1_DisableClockSleep\n
  666. * APB1SMENR TIM7SMEN LL_APB1_GRP1_DisableClockSleep\n
  667. * APB1SMENR LCDSMEN LL_APB1_GRP1_DisableClockSleep\n
  668. * APB1SMENR WWDGSMEN LL_APB1_GRP1_DisableClockSleep\n
  669. * APB1SMENR SPI2SMEN LL_APB1_GRP1_DisableClockSleep\n
  670. * APB1SMENR USART2SMEN LL_APB1_GRP1_DisableClockSleep\n
  671. * APB1SMENR LPUART1SMEN LL_APB1_GRP1_DisableClockSleep\n
  672. * APB1SMENR USART4SMEN LL_APB1_GRP1_DisableClockSleep\n
  673. * APB1SMENR USART5SMEN LL_APB1_GRP1_DisableClockSleep\n
  674. * APB1SMENR I2C1SMEN LL_APB1_GRP1_DisableClockSleep\n
  675. * APB1SMENR I2C2SMEN LL_APB1_GRP1_DisableClockSleep\n
  676. * APB1SMENR USBSMEN LL_APB1_GRP1_DisableClockSleep\n
  677. * APB1SMENR CRSSMEN LL_APB1_GRP1_DisableClockSleep\n
  678. * APB1SMENR PWRSMEN LL_APB1_GRP1_DisableClockSleep\n
  679. * APB1SMENR DACSMEN LL_APB1_GRP1_DisableClockSleep\n
  680. * APB1SMENR I2C3SMEN LL_APB1_GRP1_DisableClockSleep\n
  681. * APB1SMENR LPTIM1SMEN LL_APB1_GRP1_DisableClockSleep
  682. * @param Periphs This parameter can be a combination of the following values:
  683. * @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  684. * @arg @ref LL_APB1_GRP1_PERIPH_TIM3 (*)
  685. * @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
  686. * @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
  687. * @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  688. * @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  689. * @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
  690. * @arg @ref LL_APB1_GRP1_PERIPH_USART2
  691. * @arg @ref LL_APB1_GRP1_PERIPH_LPUART1
  692. * @arg @ref LL_APB1_GRP1_PERIPH_USART4 (*)
  693. * @arg @ref LL_APB1_GRP1_PERIPH_USART5 (*)
  694. * @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  695. * @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
  696. * @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
  697. * @arg @ref LL_APB1_GRP1_PERIPH_CRS (*)
  698. * @arg @ref LL_APB1_GRP1_PERIPH_PWR
  699. * @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
  700. * @arg @ref LL_APB1_GRP1_PERIPH_I2C3 (*)
  701. * @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
  702. *
  703. * (*) value not defined in all devices.
  704. * @retval None
  705. */
  706. __STATIC_INLINE void LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs)
  707. {
  708. CLEAR_BIT(RCC->APB1SMENR, Periphs);
  709. }
  710. /**
  711. * @}
  712. */
  713. /** @defgroup BUS_LL_EF_APB2 APB2
  714. * @{
  715. */
  716. /**
  717. * @brief Enable APB2 peripherals clock.
  718. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_EnableClock\n
  719. * APB2ENR TIM21EN LL_APB2_GRP1_EnableClock\n
  720. * APB2ENR TIM22EN LL_APB2_GRP1_EnableClock\n
  721. * APB2ENR FWEN LL_APB2_GRP1_EnableClock\n
  722. * APB2ENR ADCEN LL_APB2_GRP1_EnableClock\n
  723. * APB2ENR SPI1EN LL_APB2_GRP1_EnableClock\n
  724. * APB2ENR USART1EN LL_APB2_GRP1_EnableClock\n
  725. * APB2ENR DBGEN LL_APB2_GRP1_EnableClock
  726. * @param Periphs This parameter can be a combination of the following values:
  727. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  728. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  729. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  730. * @arg @ref LL_APB2_GRP1_PERIPH_FW
  731. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  732. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  733. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  734. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  735. *
  736. * (*) value not defined in all devices.
  737. * @retval None
  738. */
  739. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  740. {
  741. __IO uint32_t tmpreg;
  742. SET_BIT(RCC->APB2ENR, Periphs);
  743. /* Delay after an RCC peripheral clock enabling */
  744. tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  745. (void)tmpreg;
  746. }
  747. /**
  748. * @brief Check if APB2 peripheral clock is enabled or not
  749. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_IsEnabledClock\n
  750. * APB2ENR TIM21EN LL_APB2_GRP1_IsEnabledClock\n
  751. * APB2ENR TIM22EN LL_APB2_GRP1_IsEnabledClock\n
  752. * APB2ENR FWEN LL_APB2_GRP1_IsEnabledClock\n
  753. * APB2ENR ADCEN LL_APB2_GRP1_IsEnabledClock\n
  754. * APB2ENR SPI1EN LL_APB2_GRP1_IsEnabledClock\n
  755. * APB2ENR USART1EN LL_APB2_GRP1_IsEnabledClock\n
  756. * APB2ENR DBGEN LL_APB2_GRP1_IsEnabledClock
  757. * @param Periphs This parameter can be a combination of the following values:
  758. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  759. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  760. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  761. * @arg @ref LL_APB2_GRP1_PERIPH_FW
  762. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  763. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  764. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  765. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  766. *
  767. * (*) value not defined in all devices.
  768. * @retval State of Periphs (1 or 0).
  769. */
  770. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  771. {
  772. return ((READ_BIT(RCC->APB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  773. }
  774. /**
  775. * @brief Disable APB2 peripherals clock.
  776. * @rmtoll APB2ENR SYSCFGEN LL_APB2_GRP1_DisableClock\n
  777. * APB2ENR TIM21EN LL_APB2_GRP1_DisableClock\n
  778. * APB2ENR TIM22EN LL_APB2_GRP1_DisableClock\n
  779. * APB2ENR FWEN LL_APB2_GRP1_DisableClock\n
  780. * APB2ENR ADCEN LL_APB2_GRP1_DisableClock\n
  781. * APB2ENR SPI1EN LL_APB2_GRP1_DisableClock\n
  782. * APB2ENR USART1EN LL_APB2_GRP1_DisableClock\n
  783. * APB2ENR DBGEN LL_APB2_GRP1_DisableClock
  784. * @param Periphs This parameter can be a combination of the following values:
  785. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  786. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  787. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  788. * @arg @ref LL_APB2_GRP1_PERIPH_FW
  789. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  790. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  791. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  792. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  793. *
  794. * (*) value not defined in all devices.
  795. * @retval None
  796. */
  797. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  798. {
  799. CLEAR_BIT(RCC->APB2ENR, Periphs);
  800. }
  801. /**
  802. * @brief Force APB2 peripherals reset.
  803. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ForceReset\n
  804. * APB2RSTR TIM21RST LL_APB2_GRP1_ForceReset\n
  805. * APB2RSTR TIM22RST LL_APB2_GRP1_ForceReset\n
  806. * APB2RSTR ADCRST LL_APB2_GRP1_ForceReset\n
  807. * APB2RSTR SPI1RST LL_APB2_GRP1_ForceReset\n
  808. * APB2RSTR USART1RST LL_APB2_GRP1_ForceReset\n
  809. * APB2RSTR DBGRST LL_APB2_GRP1_ForceReset
  810. * @param Periphs This parameter can be a combination of the following values:
  811. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  812. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  813. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  814. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  815. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  816. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  817. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  818. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  819. *
  820. * (*) value not defined in all devices.
  821. * @retval None
  822. */
  823. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  824. {
  825. SET_BIT(RCC->APB2RSTR, Periphs);
  826. }
  827. /**
  828. * @brief Release APB2 peripherals reset.
  829. * @rmtoll APB2RSTR SYSCFGRST LL_APB2_GRP1_ReleaseReset\n
  830. * APB2RSTR TIM21RST LL_APB2_GRP1_ReleaseReset\n
  831. * APB2RSTR TIM22RST LL_APB2_GRP1_ReleaseReset\n
  832. * APB2RSTR ADCRST LL_APB2_GRP1_ReleaseReset\n
  833. * APB2RSTR SPI1RST LL_APB2_GRP1_ReleaseReset\n
  834. * APB2RSTR USART1RST LL_APB2_GRP1_ReleaseReset\n
  835. * APB2RSTR DBGRST LL_APB2_GRP1_ReleaseReset
  836. * @param Periphs This parameter can be a combination of the following values:
  837. * @arg @ref LL_APB2_GRP1_PERIPH_ALL
  838. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  839. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  840. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  841. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  842. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  843. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  844. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  845. *
  846. * (*) value not defined in all devices.
  847. * @retval None
  848. */
  849. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  850. {
  851. CLEAR_BIT(RCC->APB2RSTR, Periphs);
  852. }
  853. /**
  854. * @brief Enable APB2 peripherals clock during Low Power (Sleep) mode.
  855. * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_EnableClockSleep\n
  856. * APB2SMENR TIM21SMEN LL_APB2_GRP1_EnableClockSleep\n
  857. * APB2SMENR TIM22SMEN LL_APB2_GRP1_EnableClockSleep\n
  858. * APB2SMENR ADCSMEN LL_APB2_GRP1_EnableClockSleep\n
  859. * APB2SMENR SPI1SMEN LL_APB2_GRP1_EnableClockSleep\n
  860. * APB2SMENR USART1SMEN LL_APB2_GRP1_EnableClockSleep\n
  861. * APB2SMENR DBGSMEN LL_APB2_GRP1_EnableClockSleep
  862. * @param Periphs This parameter can be a combination of the following values:
  863. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  864. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  865. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  866. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  867. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  868. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  869. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  870. *
  871. * (*) value not defined in all devices.
  872. * @retval None
  873. */
  874. __STATIC_INLINE void LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs)
  875. {
  876. __IO uint32_t tmpreg;
  877. SET_BIT(RCC->APB2SMENR, Periphs);
  878. /* Delay after an RCC peripheral clock enabling */
  879. tmpreg = READ_BIT(RCC->APB2SMENR, Periphs);
  880. (void)tmpreg;
  881. }
  882. /**
  883. * @brief Disable APB2 peripherals clock during Low Power (Sleep) mode.
  884. * @rmtoll APB2SMENR SYSCFGSMEN LL_APB2_GRP1_DisableClockSleep\n
  885. * APB2SMENR TIM21SMEN LL_APB2_GRP1_DisableClockSleep\n
  886. * APB2SMENR TIM22SMEN LL_APB2_GRP1_DisableClockSleep\n
  887. * APB2SMENR ADCSMEN LL_APB2_GRP1_DisableClockSleep\n
  888. * APB2SMENR SPI1SMEN LL_APB2_GRP1_DisableClockSleep\n
  889. * APB2SMENR USART1SMEN LL_APB2_GRP1_DisableClockSleep\n
  890. * APB2SMENR DBGSMEN LL_APB2_GRP1_DisableClockSleep
  891. * @param Periphs This parameter can be a combination of the following values:
  892. * @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  893. * @arg @ref LL_APB2_GRP1_PERIPH_TIM21
  894. * @arg @ref LL_APB2_GRP1_PERIPH_TIM22 (*)
  895. * @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  896. * @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  897. * @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
  898. * @arg @ref LL_APB2_GRP1_PERIPH_DBGMCU
  899. *
  900. * (*) value not defined in all devices.
  901. * @retval None
  902. */
  903. __STATIC_INLINE void LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs)
  904. {
  905. CLEAR_BIT(RCC->APB2SMENR, Periphs);
  906. }
  907. /**
  908. * @}
  909. */
  910. /** @defgroup BUS_LL_EF_IOP IOP
  911. * @{
  912. */
  913. /**
  914. * @brief Enable IOP peripherals clock.
  915. * @rmtoll IOPENR GPIOAEN LL_IOP_GRP1_EnableClock\n
  916. * IOPENR GPIOBEN LL_IOP_GRP1_EnableClock\n
  917. * IOPENR GPIOCEN LL_IOP_GRP1_EnableClock\n
  918. * IOPENR GPIODEN LL_IOP_GRP1_EnableClock\n
  919. * IOPENR GPIOEEN LL_IOP_GRP1_EnableClock\n
  920. * IOPENR GPIOHEN LL_IOP_GRP1_EnableClock
  921. * @param Periphs This parameter can be a combination of the following values:
  922. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  923. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  924. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  925. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  926. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  927. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  928. *
  929. * (*) value not defined in all devices.
  930. * @retval None
  931. */
  932. __STATIC_INLINE void LL_IOP_GRP1_EnableClock(uint32_t Periphs)
  933. {
  934. __IO uint32_t tmpreg;
  935. SET_BIT(RCC->IOPENR, Periphs);
  936. /* Delay after an RCC peripheral clock enabling */
  937. tmpreg = READ_BIT(RCC->IOPENR, Periphs);
  938. (void)tmpreg;
  939. }
  940. /**
  941. * @brief Check if IOP peripheral clock is enabled or not
  942. * @rmtoll IOPENR GPIOAEN LL_IOP_GRP1_IsEnabledClock\n
  943. * IOPENR GPIOBEN LL_IOP_GRP1_IsEnabledClock\n
  944. * IOPENR GPIOCEN LL_IOP_GRP1_IsEnabledClock\n
  945. * IOPENR GPIODEN LL_IOP_GRP1_IsEnabledClock\n
  946. * IOPENR GPIOEEN LL_IOP_GRP1_IsEnabledClock\n
  947. * IOPENR GPIOHEN LL_IOP_GRP1_IsEnabledClock
  948. * @param Periphs This parameter can be a combination of the following values:
  949. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  950. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  951. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  952. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  953. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  954. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  955. *
  956. * (*) value not defined in all devices.
  957. * @retval State of Periphs (1 or 0).
  958. */
  959. __STATIC_INLINE uint32_t LL_IOP_GRP1_IsEnabledClock(uint32_t Periphs)
  960. {
  961. return ((READ_BIT(RCC->IOPENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  962. }
  963. /**
  964. * @brief Disable IOP peripherals clock.
  965. * @rmtoll IOPENR GPIOAEN LL_IOP_GRP1_DisableClock\n
  966. * IOPENR GPIOBEN LL_IOP_GRP1_DisableClock\n
  967. * IOPENR GPIOCEN LL_IOP_GRP1_DisableClock\n
  968. * IOPENR GPIODEN LL_IOP_GRP1_DisableClock\n
  969. * IOPENR GPIOEEN LL_IOP_GRP1_DisableClock\n
  970. * IOPENR GPIOHEN LL_IOP_GRP1_DisableClock
  971. * @param Periphs This parameter can be a combination of the following values:
  972. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  973. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  974. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  975. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  976. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  977. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  978. *
  979. * (*) value not defined in all devices.
  980. * @retval None
  981. */
  982. __STATIC_INLINE void LL_IOP_GRP1_DisableClock(uint32_t Periphs)
  983. {
  984. CLEAR_BIT(RCC->IOPENR, Periphs);
  985. }
  986. /**
  987. * @brief Disable IOP peripherals clock.
  988. * @rmtoll IOPRSTR GPIOASMEN LL_IOP_GRP1_ForceReset\n
  989. * IOPRSTR GPIOBSMEN LL_IOP_GRP1_ForceReset\n
  990. * IOPRSTR GPIOCSMEN LL_IOP_GRP1_ForceReset\n
  991. * IOPRSTR GPIODSMEN LL_IOP_GRP1_ForceReset\n
  992. * IOPRSTR GPIOESMEN LL_IOP_GRP1_ForceReset\n
  993. * IOPRSTR GPIOHSMEN LL_IOP_GRP1_ForceReset
  994. * @param Periphs This parameter can be a combination of the following values:
  995. * @arg @ref LL_IOP_GRP1_PERIPH_ALL
  996. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  997. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  998. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  999. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  1000. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  1001. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  1002. *
  1003. * (*) value not defined in all devices.
  1004. * @retval None
  1005. */
  1006. __STATIC_INLINE void LL_IOP_GRP1_ForceReset(uint32_t Periphs)
  1007. {
  1008. SET_BIT(RCC->IOPRSTR, Periphs);
  1009. }
  1010. /**
  1011. * @brief Release IOP peripherals reset.
  1012. * @rmtoll IOPRSTR GPIOASMEN LL_IOP_GRP1_ReleaseReset\n
  1013. * IOPRSTR GPIOBSMEN LL_IOP_GRP1_ReleaseReset\n
  1014. * IOPRSTR GPIOCSMEN LL_IOP_GRP1_ReleaseReset\n
  1015. * IOPRSTR GPIODSMEN LL_IOP_GRP1_ReleaseReset\n
  1016. * IOPRSTR GPIOESMEN LL_IOP_GRP1_ReleaseReset\n
  1017. * IOPRSTR GPIOHSMEN LL_IOP_GRP1_ReleaseReset
  1018. * @param Periphs This parameter can be a combination of the following values:
  1019. * @arg @ref LL_IOP_GRP1_PERIPH_ALL
  1020. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  1021. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  1022. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  1023. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  1024. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  1025. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  1026. *
  1027. * (*) value not defined in all devices.
  1028. * @retval None
  1029. */
  1030. __STATIC_INLINE void LL_IOP_GRP1_ReleaseReset(uint32_t Periphs)
  1031. {
  1032. CLEAR_BIT(RCC->IOPRSTR, Periphs);
  1033. }
  1034. /**
  1035. * @brief Enable IOP peripherals clock during Low Power (Sleep) mode.
  1036. * @rmtoll IOPSMENR GPIOARST LL_IOP_GRP1_EnableClockSleep\n
  1037. * IOPSMENR GPIOBRST LL_IOP_GRP1_EnableClockSleep\n
  1038. * IOPSMENR GPIOCRST LL_IOP_GRP1_EnableClockSleep\n
  1039. * IOPSMENR GPIODRST LL_IOP_GRP1_EnableClockSleep\n
  1040. * IOPSMENR GPIOERST LL_IOP_GRP1_EnableClockSleep\n
  1041. * IOPSMENR GPIOHRST LL_IOP_GRP1_EnableClockSleep
  1042. * @param Periphs This parameter can be a combination of the following values:
  1043. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  1044. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  1045. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  1046. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  1047. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  1048. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  1049. *
  1050. * (*) value not defined in all devices.
  1051. * @retval None
  1052. */
  1053. __STATIC_INLINE void LL_IOP_GRP1_EnableClockSleep(uint32_t Periphs)
  1054. {
  1055. __IO uint32_t tmpreg;
  1056. SET_BIT(RCC->IOPSMENR, Periphs);
  1057. /* Delay after an RCC peripheral clock enabling */
  1058. tmpreg = READ_BIT(RCC->IOPSMENR, Periphs);
  1059. (void)tmpreg;
  1060. }
  1061. /**
  1062. * @brief Disable IOP peripherals clock during Low Power (Sleep) mode.
  1063. * @rmtoll IOPSMENR GPIOARST LL_IOP_GRP1_DisableClockSleep\n
  1064. * IOPSMENR GPIOBRST LL_IOP_GRP1_DisableClockSleep\n
  1065. * IOPSMENR GPIOCRST LL_IOP_GRP1_DisableClockSleep\n
  1066. * IOPSMENR GPIODRST LL_IOP_GRP1_DisableClockSleep\n
  1067. * IOPSMENR GPIOERST LL_IOP_GRP1_DisableClockSleep\n
  1068. * IOPSMENR GPIOHRST LL_IOP_GRP1_DisableClockSleep
  1069. * @param Periphs This parameter can be a combination of the following values:
  1070. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOA
  1071. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOB
  1072. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOC
  1073. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOD (*)
  1074. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOE (*)
  1075. * @arg @ref LL_IOP_GRP1_PERIPH_GPIOH (*)
  1076. *
  1077. * (*) value not defined in all devices.
  1078. * @retval None
  1079. */
  1080. __STATIC_INLINE void LL_IOP_GRP1_DisableClockSleep(uint32_t Periphs)
  1081. {
  1082. CLEAR_BIT(RCC->IOPSMENR, Periphs);
  1083. }
  1084. /**
  1085. * @}
  1086. */
  1087. /**
  1088. * @}
  1089. */
  1090. /**
  1091. * @}
  1092. */
  1093. #endif /* defined(RCC) */
  1094. /**
  1095. * @}
  1096. */
  1097. #ifdef __cplusplus
  1098. }
  1099. #endif
  1100. #endif /* __STM32L0xx_LL_BUS_H */
  1101. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/