Subversion Repositories DashDisplay

Rev

Rev 56 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /**
  2.   ******************************************************************************
  3.   * @file    stm32l1xx_ll_bus.h
  4.   * @author  MCD Application Team
  5.   * @brief   Header file of BUS LL module.
  6.  
  7.   @verbatim
  8.                       ##### RCC Limitations #####
  9.   ==============================================================================
  10.     [..]
  11.       A delay between an RCC peripheral clock enable and the effective peripheral
  12.       enabling should be taken into account in order to manage the peripheral read/write
  13.       from/to registers.
  14.       (+) This delay depends on the peripheral mapping.
  15.         (++) AHB & APB peripherals, 1 dummy read is necessary
  16.  
  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.  
  22.   @endverbatim
  23.   ******************************************************************************
  24.   * @attention
  25.   *
  26.   * Copyright (c) 2017 STMicroelectronics.
  27.   * All rights reserved.
  28.   *
  29.   * This software is licensed under terms that can be found in the LICENSE file in
  30.   * the root directory of this software component.
  31.   * If no LICENSE file comes with this software, it is provided AS-IS.
  32.   ******************************************************************************
  33.   */
  34.  
  35. /* Define to prevent recursive inclusion -------------------------------------*/
  36. #ifndef __STM32L1xx_LL_BUS_H
  37. #define __STM32L1xx_LL_BUS_H
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. /* Includes ------------------------------------------------------------------*/
  44. #include "stm32l1xx.h"
  45.  
  46. /** @addtogroup STM32L1xx_LL_Driver
  47.   * @{
  48.   */
  49.  
  50. #if defined(RCC)
  51.  
  52. /** @defgroup BUS_LL BUS
  53.   * @{
  54.   */
  55.  
  56. /* Private types -------------------------------------------------------------*/
  57. /* Private variables ---------------------------------------------------------*/
  58.  
  59. /* Private constants ---------------------------------------------------------*/
  60.  
  61. /* Private macros ------------------------------------------------------------*/
  62.  
  63. /* Exported types ------------------------------------------------------------*/
  64. /* Exported constants --------------------------------------------------------*/
  65. /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
  66.   * @{
  67.   */
  68.  
  69. /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH  AHB1 GRP1 PERIPH
  70.   * @{
  71.   */
  72. #define LL_AHB1_GRP1_PERIPH_ALL            0xFFFFFFFFU
  73. #define LL_AHB1_GRP1_PERIPH_GPIOA          RCC_AHBENR_GPIOAEN
  74. #define LL_AHB1_GRP1_PERIPH_GPIOB          RCC_AHBENR_GPIOBEN
  75. #define LL_AHB1_GRP1_PERIPH_GPIOC          RCC_AHBENR_GPIOCEN
  76. #define LL_AHB1_GRP1_PERIPH_GPIOD          RCC_AHBENR_GPIODEN
  77. #if defined(GPIOE)
  78. #define LL_AHB1_GRP1_PERIPH_GPIOE          RCC_AHBENR_GPIOEEN
  79. #endif/*GPIOE*/
  80. #define LL_AHB1_GRP1_PERIPH_GPIOH          RCC_AHBENR_GPIOHEN
  81. #if defined(GPIOF)
  82. #define LL_AHB1_GRP1_PERIPH_GPIOF          RCC_AHBENR_GPIOFEN
  83. #endif/*GPIOF*/
  84. #if defined(GPIOG)
  85. #define LL_AHB1_GRP1_PERIPH_GPIOG          RCC_AHBENR_GPIOGEN
  86. #endif/*GPIOG*/
  87. #define LL_AHB1_GRP1_PERIPH_SRAM           RCC_AHBLPENR_SRAMLPEN
  88. #define LL_AHB1_GRP1_PERIPH_CRC            RCC_AHBENR_CRCEN
  89. #define LL_AHB1_GRP1_PERIPH_FLASH          RCC_AHBENR_FLITFEN
  90. #define LL_AHB1_GRP1_PERIPH_DMA1           RCC_AHBENR_DMA1EN
  91. #if defined(DMA2)
  92. #define LL_AHB1_GRP1_PERIPH_DMA2           RCC_AHBENR_DMA2EN
  93. #endif/*DMA2*/
  94. #if defined(AES)
  95. #define LL_AHB1_GRP1_PERIPH_CRYP           RCC_AHBENR_AESEN
  96. #endif/*AES*/
  97. #if defined(FSMC_Bank1)
  98. #define LL_AHB1_GRP1_PERIPH_FSMC           RCC_AHBENR_FSMCEN
  99. #endif/*FSMC_Bank1*/
  100. /**
  101.   * @}
  102.   */
  103.  
  104. /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH  APB1 GRP1 PERIPH
  105.   * @{
  106.   */
  107. #define LL_APB1_GRP1_PERIPH_ALL            0xFFFFFFFFU
  108. #define LL_APB1_GRP1_PERIPH_TIM2           RCC_APB1ENR_TIM2EN
  109. #define LL_APB1_GRP1_PERIPH_TIM3           RCC_APB1ENR_TIM3EN
  110. #define LL_APB1_GRP1_PERIPH_TIM4           RCC_APB1ENR_TIM4EN
  111. #if defined(TIM5)
  112. #define LL_APB1_GRP1_PERIPH_TIM5           RCC_APB1ENR_TIM5EN
  113. #endif /*TIM5*/
  114. #define LL_APB1_GRP1_PERIPH_TIM6           RCC_APB1ENR_TIM6EN
  115. #define LL_APB1_GRP1_PERIPH_TIM7           RCC_APB1ENR_TIM7EN
  116. #if defined(LCD)
  117. #define LL_APB1_GRP1_PERIPH_LCD            RCC_APB1ENR_LCDEN
  118. #endif /*LCD*/
  119. #define LL_APB1_GRP1_PERIPH_WWDG           RCC_APB1ENR_WWDGEN
  120. #define LL_APB1_GRP1_PERIPH_SPI2           RCC_APB1ENR_SPI2EN
  121. #if defined(SPI3)
  122. #define LL_APB1_GRP1_PERIPH_SPI3           RCC_APB1ENR_SPI3EN
  123. #endif /*SPI3*/
  124. #define LL_APB1_GRP1_PERIPH_USART2         RCC_APB1ENR_USART2EN
  125. #define LL_APB1_GRP1_PERIPH_USART3         RCC_APB1ENR_USART3EN
  126. #if defined(UART4)
  127. #define LL_APB1_GRP1_PERIPH_UART4          RCC_APB1ENR_UART4EN
  128. #endif /*UART4*/
  129. #if defined(UART5)
  130. #define LL_APB1_GRP1_PERIPH_UART5          RCC_APB1ENR_UART5EN
  131. #endif /*UART5*/
  132. #define LL_APB1_GRP1_PERIPH_I2C1           RCC_APB1ENR_I2C1EN
  133. #define LL_APB1_GRP1_PERIPH_I2C2           RCC_APB1ENR_I2C2EN
  134. #define LL_APB1_GRP1_PERIPH_USB            RCC_APB1ENR_USBEN
  135. #define LL_APB1_GRP1_PERIPH_PWR            RCC_APB1ENR_PWREN
  136. #define LL_APB1_GRP1_PERIPH_DAC1           RCC_APB1ENR_DACEN
  137. #define LL_APB1_GRP1_PERIPH_COMP           RCC_APB1ENR_COMPEN
  138. #if defined(OPAMP)
  139. /* Note: Peripherals COMP and OPAMP share the same clock domain */
  140. #define LL_APB1_GRP1_PERIPH_OPAMP          LL_APB1_GRP1_PERIPH_COMP
  141. #endif
  142. /**
  143.   * @}
  144.   */
  145.  
  146. /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH  APB2 GRP1 PERIPH
  147.   * @{
  148.   */
  149. #define LL_APB2_GRP1_PERIPH_ALL            0xFFFFFFFFU
  150. #define LL_APB2_GRP1_PERIPH_SYSCFG         RCC_APB2ENR_SYSCFGEN
  151. #define LL_APB2_GRP1_PERIPH_TIM9           RCC_APB2ENR_TIM9EN
  152. #define LL_APB2_GRP1_PERIPH_TIM10          RCC_APB2ENR_TIM10EN
  153. #define LL_APB2_GRP1_PERIPH_TIM11          RCC_APB2ENR_TIM11EN
  154. #define LL_APB2_GRP1_PERIPH_ADC1           RCC_APB2ENR_ADC1EN
  155. #if defined(SDIO)
  156. #define LL_APB2_GRP1_PERIPH_SDIO           RCC_APB2ENR_SDIOEN
  157. #endif /*SDIO*/
  158. #define LL_APB2_GRP1_PERIPH_SPI1           RCC_APB2ENR_SPI1EN
  159. #define LL_APB2_GRP1_PERIPH_USART1         RCC_APB2ENR_USART1EN
  160. /**
  161.   * @}
  162.   */
  163.  
  164. /**
  165.   * @}
  166.   */
  167.  
  168. /* Exported macro ------------------------------------------------------------*/
  169.  
  170. /* Exported functions --------------------------------------------------------*/
  171. /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
  172.   * @{
  173.   */
  174.  
  175. /** @defgroup BUS_LL_EF_AHB1 AHB1
  176.   * @{
  177.   */
  178.  
  179. /**
  180.   * @brief  Enable AHB1 peripherals clock.
  181.   * @rmtoll AHBENR       GPIOAEN       LL_AHB1_GRP1_EnableClock\n
  182.   *         AHBENR       GPIOBEN       LL_AHB1_GRP1_EnableClock\n
  183.   *         AHBENR       GPIOCEN       LL_AHB1_GRP1_EnableClock\n
  184.   *         AHBENR       GPIODEN       LL_AHB1_GRP1_EnableClock\n
  185.   *         AHBENR       GPIOEEN       LL_AHB1_GRP1_EnableClock\n
  186.   *         AHBENR       GPIOHEN       LL_AHB1_GRP1_EnableClock\n
  187.   *         AHBENR       GPIOFEN       LL_AHB1_GRP1_EnableClock\n
  188.   *         AHBENR       GPIOGEN       LL_AHB1_GRP1_EnableClock\n
  189.   *         AHBENR       CRCEN         LL_AHB1_GRP1_EnableClock\n
  190.   *         AHBENR       FLITFEN       LL_AHB1_GRP1_EnableClock\n
  191.   *         AHBENR       DMA1EN        LL_AHB1_GRP1_EnableClock\n
  192.   *         AHBENR       DMA2EN        LL_AHB1_GRP1_EnableClock\n
  193.   *         AHBENR       AESEN         LL_AHB1_GRP1_EnableClock\n
  194.   *         AHBENR       FSMCEN        LL_AHB1_GRP1_EnableClock
  195.   * @param  Periphs This parameter can be a combination of the following values:
  196.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  197.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  198.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  199.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  200.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  201.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  202.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  203.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  204.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  205.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  206.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  207.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  208.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  209.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  210.   *
  211.   *         (*) value not defined in all devices.
  212.   * @retval None
  213. */
  214. __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
  215. {
  216.   __IO uint32_t tmpreg;
  217.   SET_BIT(RCC->AHBENR, Periphs);
  218.   /* Delay after an RCC peripheral clock enabling */
  219.   tmpreg = READ_BIT(RCC->AHBENR, Periphs);
  220.   (void)tmpreg;
  221. }
  222.  
  223. /**
  224.   * @brief  Check if AHB1 peripheral clock is enabled or not
  225.   * @rmtoll AHBENR       GPIOAEN       LL_AHB1_GRP1_IsEnabledClock\n
  226.   *         AHBENR       GPIOBEN       LL_AHB1_GRP1_IsEnabledClock\n
  227.   *         AHBENR       GPIOCEN       LL_AHB1_GRP1_IsEnabledClock\n
  228.   *         AHBENR       GPIODEN       LL_AHB1_GRP1_IsEnabledClock\n
  229.   *         AHBENR       GPIOEEN       LL_AHB1_GRP1_IsEnabledClock\n
  230.   *         AHBENR       GPIOHEN       LL_AHB1_GRP1_IsEnabledClock\n
  231.   *         AHBENR       GPIOFEN       LL_AHB1_GRP1_IsEnabledClock\n
  232.   *         AHBENR       GPIOGEN       LL_AHB1_GRP1_IsEnabledClock\n
  233.   *         AHBENR       CRCEN         LL_AHB1_GRP1_IsEnabledClock\n
  234.   *         AHBENR       FLITFEN       LL_AHB1_GRP1_IsEnabledClock\n
  235.   *         AHBENR       DMA1EN        LL_AHB1_GRP1_IsEnabledClock\n
  236.   *         AHBENR       DMA2EN        LL_AHB1_GRP1_IsEnabledClock\n
  237.   *         AHBENR       AESEN         LL_AHB1_GRP1_IsEnabledClock\n
  238.   *         AHBENR       FSMCEN        LL_AHB1_GRP1_IsEnabledClock
  239.   * @param  Periphs This parameter can be a combination of the following values:
  240.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  241.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  242.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  243.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  244.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  245.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  246.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  247.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  248.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  249.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  250.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  251.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  252.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  253.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  254.   *
  255.   *         (*) value not defined in all devices.
  256.   * @retval State of Periphs (1 or 0).
  257. */
  258. __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
  259. {
  260.   return ((READ_BIT(RCC->AHBENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  261. }
  262.  
  263. /**
  264.   * @brief  Disable AHB1 peripherals clock.
  265.   * @rmtoll AHBENR       GPIOAEN       LL_AHB1_GRP1_DisableClock\n
  266.   *         AHBENR       GPIOBEN       LL_AHB1_GRP1_DisableClock\n
  267.   *         AHBENR       GPIOCEN       LL_AHB1_GRP1_DisableClock\n
  268.   *         AHBENR       GPIODEN       LL_AHB1_GRP1_DisableClock\n
  269.   *         AHBENR       GPIOEEN       LL_AHB1_GRP1_DisableClock\n
  270.   *         AHBENR       GPIOHEN       LL_AHB1_GRP1_DisableClock\n
  271.   *         AHBENR       GPIOFEN       LL_AHB1_GRP1_DisableClock\n
  272.   *         AHBENR       GPIOGEN       LL_AHB1_GRP1_DisableClock\n
  273.   *         AHBENR       CRCEN         LL_AHB1_GRP1_DisableClock\n
  274.   *         AHBENR       FLITFEN       LL_AHB1_GRP1_DisableClock\n
  275.   *         AHBENR       DMA1EN        LL_AHB1_GRP1_DisableClock\n
  276.   *         AHBENR       DMA2EN        LL_AHB1_GRP1_DisableClock\n
  277.   *         AHBENR       AESEN         LL_AHB1_GRP1_DisableClock\n
  278.   *         AHBENR       FSMCEN        LL_AHB1_GRP1_DisableClock
  279.   * @param  Periphs This parameter can be a combination of the following values:
  280.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  281.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  282.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  283.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  284.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  285.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  286.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  287.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  288.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  289.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  290.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  291.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  292.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  293.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  294.   *
  295.   *         (*) value not defined in all devices.
  296.   * @retval None
  297. */
  298. __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
  299. {
  300.   CLEAR_BIT(RCC->AHBENR, Periphs);
  301. }
  302.  
  303. /**
  304.   * @brief  Force AHB1 peripherals reset.
  305.   * @rmtoll AHBRSTR      GPIOARST      LL_AHB1_GRP1_ForceReset\n
  306.   *         AHBRSTR      GPIOBRST      LL_AHB1_GRP1_ForceReset\n
  307.   *         AHBRSTR      GPIOCRST      LL_AHB1_GRP1_ForceReset\n
  308.   *         AHBRSTR      GPIODRST      LL_AHB1_GRP1_ForceReset\n
  309.   *         AHBRSTR      GPIOERST      LL_AHB1_GRP1_ForceReset\n
  310.   *         AHBRSTR      GPIOHRST      LL_AHB1_GRP1_ForceReset\n
  311.   *         AHBRSTR      GPIOFRST      LL_AHB1_GRP1_ForceReset\n
  312.   *         AHBRSTR      GPIOGRST      LL_AHB1_GRP1_ForceReset\n
  313.   *         AHBRSTR      CRCRST        LL_AHB1_GRP1_ForceReset\n
  314.   *         AHBRSTR      FLITFRST      LL_AHB1_GRP1_ForceReset\n
  315.   *         AHBRSTR      DMA1RST       LL_AHB1_GRP1_ForceReset\n
  316.   *         AHBRSTR      DMA2RST       LL_AHB1_GRP1_ForceReset\n
  317.   *         AHBRSTR      AESRST        LL_AHB1_GRP1_ForceReset\n
  318.   *         AHBRSTR      FSMCRST       LL_AHB1_GRP1_ForceReset
  319.   * @param  Periphs This parameter can be a combination of the following values:
  320.   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  321.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  322.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  323.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  324.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  325.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  326.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  327.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  328.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  329.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  330.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  331.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  332.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  333.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  334.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  335.   *
  336.   *         (*) value not defined in all devices.
  337.   * @retval None
  338. */
  339. __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
  340. {
  341.   SET_BIT(RCC->AHBRSTR, Periphs);
  342. }
  343.  
  344. /**
  345.   * @brief  Release AHB1 peripherals reset.
  346.   * @rmtoll AHBRSTR      GPIOARST      LL_AHB1_GRP1_ReleaseReset\n
  347.   *         AHBRSTR      GPIOBRST      LL_AHB1_GRP1_ReleaseReset\n
  348.   *         AHBRSTR      GPIOCRST      LL_AHB1_GRP1_ReleaseReset\n
  349.   *         AHBRSTR      GPIODRST      LL_AHB1_GRP1_ReleaseReset\n
  350.   *         AHBRSTR      GPIOERST      LL_AHB1_GRP1_ReleaseReset\n
  351.   *         AHBRSTR      GPIOHRST      LL_AHB1_GRP1_ReleaseReset\n
  352.   *         AHBRSTR      GPIOFRST      LL_AHB1_GRP1_ReleaseReset\n
  353.   *         AHBRSTR      GPIOGRST      LL_AHB1_GRP1_ReleaseReset\n
  354.   *         AHBRSTR      CRCRST        LL_AHB1_GRP1_ReleaseReset\n
  355.   *         AHBRSTR      FLITFRST      LL_AHB1_GRP1_ReleaseReset\n
  356.   *         AHBRSTR      DMA1RST       LL_AHB1_GRP1_ReleaseReset\n
  357.   *         AHBRSTR      DMA2RST       LL_AHB1_GRP1_ReleaseReset\n
  358.   *         AHBRSTR      AESRST        LL_AHB1_GRP1_ReleaseReset\n
  359.   *         AHBRSTR      FSMCRST       LL_AHB1_GRP1_ReleaseReset
  360.   * @param  Periphs This parameter can be a combination of the following values:
  361.   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
  362.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  363.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  364.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  365.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  366.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  367.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  368.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  369.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  370.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  371.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  372.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  373.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  374.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  375.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  376.   *
  377.   *         (*) value not defined in all devices.
  378.   * @retval None
  379. */
  380. __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
  381. {
  382.   CLEAR_BIT(RCC->AHBRSTR, Periphs);
  383. }
  384.  
  385. /**
  386.   * @brief  Enable AHB1 peripherals clock during Low Power (Sleep) mode.
  387.   * @rmtoll AHBLPENR     GPIOALPEN     LL_AHB1_GRP1_EnableClockSleep\n
  388.   *         AHBLPENR     GPIOBLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  389.   *         AHBLPENR     GPIOCLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  390.   *         AHBLPENR     GPIODLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  391.   *         AHBLPENR     GPIOELPEN     LL_AHB1_GRP1_EnableClockSleep\n
  392.   *         AHBLPENR     GPIOHLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  393.   *         AHBLPENR     GPIOFLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  394.   *         AHBLPENR     GPIOGLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  395.   *         AHBLPENR     CRCLPEN       LL_AHB1_GRP1_EnableClockSleep\n
  396.   *         AHBLPENR     FLITFLPEN     LL_AHB1_GRP1_EnableClockSleep\n
  397.   *         AHBLPENR     SRAMLPEN      LL_AHB1_GRP1_EnableClockSleep\n
  398.   *         AHBLPENR     DMA1LPEN      LL_AHB1_GRP1_EnableClockSleep\n
  399.   *         AHBLPENR     DMA2LPEN      LL_AHB1_GRP1_EnableClockSleep\n
  400.   *         AHBLPENR     AESLPEN       LL_AHB1_GRP1_EnableClockSleep\n
  401.   *         AHBLPENR     FSMCLPEN      LL_AHB1_GRP1_EnableClockSleep
  402.   * @param  Periphs This parameter can be a combination of the following values:
  403.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  404.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  405.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  406.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  407.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  408.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  409.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  410.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  411.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  412.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  413.   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  414.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  415.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  416.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  417.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  418.   *
  419.   *         (*) value not defined in all devices.
  420.   * @retval None
  421. */
  422. __STATIC_INLINE void LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)
  423. {
  424.   __IO uint32_t tmpreg;
  425.   SET_BIT(RCC->AHBLPENR, Periphs);
  426.   /* Delay after an RCC peripheral clock enabling */
  427.   tmpreg = READ_BIT(RCC->AHBLPENR, Periphs);
  428.   (void)tmpreg;
  429. }
  430.  
  431. /**
  432.   * @brief  Disable AHB1 peripherals clock during Low Power (Sleep) mode.
  433.   * @rmtoll AHBLPENR     GPIOALPEN     LL_AHB1_GRP1_DisableClockSleep\n
  434.   *         AHBLPENR     GPIOBLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  435.   *         AHBLPENR     GPIOCLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  436.   *         AHBLPENR     GPIODLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  437.   *         AHBLPENR     GPIOELPEN     LL_AHB1_GRP1_DisableClockSleep\n
  438.   *         AHBLPENR     GPIOHLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  439.   *         AHBLPENR     GPIOFLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  440.   *         AHBLPENR     GPIOGLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  441.   *         AHBLPENR     CRCLPEN       LL_AHB1_GRP1_DisableClockSleep\n
  442.   *         AHBLPENR     FLITFLPEN     LL_AHB1_GRP1_DisableClockSleep\n
  443.   *         AHBLPENR     SRAMLPEN      LL_AHB1_GRP1_DisableClockSleep\n
  444.   *         AHBLPENR     DMA1LPEN      LL_AHB1_GRP1_DisableClockSleep\n
  445.   *         AHBLPENR     DMA2LPEN      LL_AHB1_GRP1_DisableClockSleep\n
  446.   *         AHBLPENR     AESLPEN       LL_AHB1_GRP1_DisableClockSleep\n
  447.   *         AHBLPENR     FSMCLPEN      LL_AHB1_GRP1_DisableClockSleep
  448.   * @param  Periphs This parameter can be a combination of the following values:
  449.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOA
  450.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOB
  451.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOC
  452.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOD
  453.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOE (*)
  454.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOH
  455.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOF (*)
  456.   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPIOG (*)
  457.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
  458.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
  459.   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
  460.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
  461.   *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
  462.   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRYP (*)
  463.   *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
  464.   *
  465.   *         (*) value not defined in all devices.
  466.   * @retval None
  467. */
  468. __STATIC_INLINE void LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)
  469. {
  470.   CLEAR_BIT(RCC->AHBLPENR, Periphs);
  471. }
  472.  
  473. /**
  474.   * @}
  475.   */
  476.  
  477. /** @defgroup BUS_LL_EF_APB1 APB1
  478.   * @{
  479.   */
  480.  
  481. /**
  482.   * @brief  Enable APB1 peripherals clock.
  483.   * @rmtoll APB1ENR      TIM2EN        LL_APB1_GRP1_EnableClock\n
  484.   *         APB1ENR      TIM3EN        LL_APB1_GRP1_EnableClock\n
  485.   *         APB1ENR      TIM4EN        LL_APB1_GRP1_EnableClock\n
  486.   *         APB1ENR      TIM5EN        LL_APB1_GRP1_EnableClock\n
  487.   *         APB1ENR      TIM6EN        LL_APB1_GRP1_EnableClock\n
  488.   *         APB1ENR      TIM7EN        LL_APB1_GRP1_EnableClock\n
  489.   *         APB1ENR      LCDEN         LL_APB1_GRP1_EnableClock\n
  490.   *         APB1ENR      WWDGEN        LL_APB1_GRP1_EnableClock\n
  491.   *         APB1ENR      SPI2EN        LL_APB1_GRP1_EnableClock\n
  492.   *         APB1ENR      SPI3EN        LL_APB1_GRP1_EnableClock\n
  493.   *         APB1ENR      USART2EN      LL_APB1_GRP1_EnableClock\n
  494.   *         APB1ENR      USART3EN      LL_APB1_GRP1_EnableClock\n
  495.   *         APB1ENR      UART4EN       LL_APB1_GRP1_EnableClock\n
  496.   *         APB1ENR      UART5EN       LL_APB1_GRP1_EnableClock\n
  497.   *         APB1ENR      I2C1EN        LL_APB1_GRP1_EnableClock\n
  498.   *         APB1ENR      I2C2EN        LL_APB1_GRP1_EnableClock\n
  499.   *         APB1ENR      USBEN         LL_APB1_GRP1_EnableClock\n
  500.   *         APB1ENR      PWREN         LL_APB1_GRP1_EnableClock\n
  501.   *         APB1ENR      DACEN         LL_APB1_GRP1_EnableClock\n
  502.   *         APB1ENR      COMPEN        LL_APB1_GRP1_EnableClock
  503.   * @param  Periphs This parameter can be a combination of the following values:
  504.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  505.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  506.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  507.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  508.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  509.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  510.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  511.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  512.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  513.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  514.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  515.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  516.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  517.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  518.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  519.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  520.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  521.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  522.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  523.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  524.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  525.   *
  526.   *         (*) value not defined in all devices.
  527.   * @retval None
  528. */
  529. __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
  530. {
  531.   __IO uint32_t tmpreg;
  532.   SET_BIT(RCC->APB1ENR, Periphs);
  533.   /* Delay after an RCC peripheral clock enabling */
  534.   tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
  535.   (void)tmpreg;
  536. }
  537.  
  538. /**
  539.   * @brief  Check if APB1 peripheral clock is enabled or not
  540.   * @rmtoll APB1ENR      TIM2EN        LL_APB1_GRP1_IsEnabledClock\n
  541.   *         APB1ENR      TIM3EN        LL_APB1_GRP1_IsEnabledClock\n
  542.   *         APB1ENR      TIM4EN        LL_APB1_GRP1_IsEnabledClock\n
  543.   *         APB1ENR      TIM5EN        LL_APB1_GRP1_IsEnabledClock\n
  544.   *         APB1ENR      TIM6EN        LL_APB1_GRP1_IsEnabledClock\n
  545.   *         APB1ENR      TIM7EN        LL_APB1_GRP1_IsEnabledClock\n
  546.   *         APB1ENR      LCDEN         LL_APB1_GRP1_IsEnabledClock\n
  547.   *         APB1ENR      WWDGEN        LL_APB1_GRP1_IsEnabledClock\n
  548.   *         APB1ENR      SPI2EN        LL_APB1_GRP1_IsEnabledClock\n
  549.   *         APB1ENR      SPI3EN        LL_APB1_GRP1_IsEnabledClock\n
  550.   *         APB1ENR      USART2EN      LL_APB1_GRP1_IsEnabledClock\n
  551.   *         APB1ENR      USART3EN      LL_APB1_GRP1_IsEnabledClock\n
  552.   *         APB1ENR      UART4EN       LL_APB1_GRP1_IsEnabledClock\n
  553.   *         APB1ENR      UART5EN       LL_APB1_GRP1_IsEnabledClock\n
  554.   *         APB1ENR      I2C1EN        LL_APB1_GRP1_IsEnabledClock\n
  555.   *         APB1ENR      I2C2EN        LL_APB1_GRP1_IsEnabledClock\n
  556.   *         APB1ENR      USBEN         LL_APB1_GRP1_IsEnabledClock\n
  557.   *         APB1ENR      PWREN         LL_APB1_GRP1_IsEnabledClock\n
  558.   *         APB1ENR      DACEN         LL_APB1_GRP1_IsEnabledClock\n
  559.   *         APB1ENR      COMPEN        LL_APB1_GRP1_IsEnabledClock
  560.   * @param  Periphs This parameter can be a combination of the following values:
  561.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  562.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  563.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  564.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  565.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  566.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  567.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  568.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  569.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  570.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  571.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  572.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  573.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  574.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  575.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  576.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  577.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  578.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  579.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  580.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  581.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  582.   *
  583.   *         (*) value not defined in all devices.
  584.   * @retval State of Periphs (1 or 0).
  585. */
  586. __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
  587. {
  588.   return ((READ_BIT(RCC->APB1ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  589. }
  590.  
  591. /**
  592.   * @brief  Disable APB1 peripherals clock.
  593.   * @rmtoll APB1ENR      TIM2EN        LL_APB1_GRP1_DisableClock\n
  594.   *         APB1ENR      TIM3EN        LL_APB1_GRP1_DisableClock\n
  595.   *         APB1ENR      TIM4EN        LL_APB1_GRP1_DisableClock\n
  596.   *         APB1ENR      TIM5EN        LL_APB1_GRP1_DisableClock\n
  597.   *         APB1ENR      TIM6EN        LL_APB1_GRP1_DisableClock\n
  598.   *         APB1ENR      TIM7EN        LL_APB1_GRP1_DisableClock\n
  599.   *         APB1ENR      LCDEN         LL_APB1_GRP1_DisableClock\n
  600.   *         APB1ENR      WWDGEN        LL_APB1_GRP1_DisableClock\n
  601.   *         APB1ENR      SPI2EN        LL_APB1_GRP1_DisableClock\n
  602.   *         APB1ENR      SPI3EN        LL_APB1_GRP1_DisableClock\n
  603.   *         APB1ENR      USART2EN      LL_APB1_GRP1_DisableClock\n
  604.   *         APB1ENR      USART3EN      LL_APB1_GRP1_DisableClock\n
  605.   *         APB1ENR      UART4EN       LL_APB1_GRP1_DisableClock\n
  606.   *         APB1ENR      UART5EN       LL_APB1_GRP1_DisableClock\n
  607.   *         APB1ENR      I2C1EN        LL_APB1_GRP1_DisableClock\n
  608.   *         APB1ENR      I2C2EN        LL_APB1_GRP1_DisableClock\n
  609.   *         APB1ENR      USBEN         LL_APB1_GRP1_DisableClock\n
  610.   *         APB1ENR      PWREN         LL_APB1_GRP1_DisableClock\n
  611.   *         APB1ENR      DACEN         LL_APB1_GRP1_DisableClock\n
  612.   *         APB1ENR      COMPEN        LL_APB1_GRP1_DisableClock
  613.   * @param  Periphs This parameter can be a combination of the following values:
  614.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  615.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  616.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  617.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  618.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  619.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  620.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  621.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  622.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  623.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  624.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  625.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  626.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  627.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  628.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  629.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  630.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  631.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  632.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  633.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  634.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  635.   *
  636.   *         (*) value not defined in all devices.
  637.   * @retval None
  638. */
  639. __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
  640. {
  641.   CLEAR_BIT(RCC->APB1ENR, Periphs);
  642. }
  643.  
  644. /**
  645.   * @brief  Force APB1 peripherals reset.
  646.   * @rmtoll APB1RSTR     TIM2RST       LL_APB1_GRP1_ForceReset\n
  647.   *         APB1RSTR     TIM3RST       LL_APB1_GRP1_ForceReset\n
  648.   *         APB1RSTR     TIM4RST       LL_APB1_GRP1_ForceReset\n
  649.   *         APB1RSTR     TIM5RST       LL_APB1_GRP1_ForceReset\n
  650.   *         APB1RSTR     TIM6RST       LL_APB1_GRP1_ForceReset\n
  651.   *         APB1RSTR     TIM7RST       LL_APB1_GRP1_ForceReset\n
  652.   *         APB1RSTR     LCDRST        LL_APB1_GRP1_ForceReset\n
  653.   *         APB1RSTR     WWDGRST       LL_APB1_GRP1_ForceReset\n
  654.   *         APB1RSTR     SPI2RST       LL_APB1_GRP1_ForceReset\n
  655.   *         APB1RSTR     SPI3RST       LL_APB1_GRP1_ForceReset\n
  656.   *         APB1RSTR     USART2RST     LL_APB1_GRP1_ForceReset\n
  657.   *         APB1RSTR     USART3RST     LL_APB1_GRP1_ForceReset\n
  658.   *         APB1RSTR     UART4RST      LL_APB1_GRP1_ForceReset\n
  659.   *         APB1RSTR     UART5RST      LL_APB1_GRP1_ForceReset\n
  660.   *         APB1RSTR     I2C1RST       LL_APB1_GRP1_ForceReset\n
  661.   *         APB1RSTR     I2C2RST       LL_APB1_GRP1_ForceReset\n
  662.   *         APB1RSTR     USBRST        LL_APB1_GRP1_ForceReset\n
  663.   *         APB1RSTR     PWRRST        LL_APB1_GRP1_ForceReset\n
  664.   *         APB1RSTR     DACRST        LL_APB1_GRP1_ForceReset\n
  665.   *         APB1RSTR     COMPRST       LL_APB1_GRP1_ForceReset
  666.   * @param  Periphs This parameter can be a combination of the following values:
  667.   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
  668.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  669.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  670.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  671.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  672.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  673.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  674.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  675.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  676.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  677.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  678.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  679.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  680.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  681.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  682.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  683.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  684.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  685.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  686.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  687.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  688.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  689.   *
  690.   *         (*) value not defined in all devices.
  691.   * @retval None
  692. */
  693. __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
  694. {
  695.   SET_BIT(RCC->APB1RSTR, Periphs);
  696. }
  697.  
  698. /**
  699.   * @brief  Release APB1 peripherals reset.
  700.   * @rmtoll APB1RSTR     TIM2RST       LL_APB1_GRP1_ReleaseReset\n
  701.   *         APB1RSTR     TIM3RST       LL_APB1_GRP1_ReleaseReset\n
  702.   *         APB1RSTR     TIM4RST       LL_APB1_GRP1_ReleaseReset\n
  703.   *         APB1RSTR     TIM5RST       LL_APB1_GRP1_ReleaseReset\n
  704.   *         APB1RSTR     TIM6RST       LL_APB1_GRP1_ReleaseReset\n
  705.   *         APB1RSTR     TIM7RST       LL_APB1_GRP1_ReleaseReset\n
  706.   *         APB1RSTR     LCDRST        LL_APB1_GRP1_ReleaseReset\n
  707.   *         APB1RSTR     WWDGRST       LL_APB1_GRP1_ReleaseReset\n
  708.   *         APB1RSTR     SPI2RST       LL_APB1_GRP1_ReleaseReset\n
  709.   *         APB1RSTR     SPI3RST       LL_APB1_GRP1_ReleaseReset\n
  710.   *         APB1RSTR     USART2RST     LL_APB1_GRP1_ReleaseReset\n
  711.   *         APB1RSTR     USART3RST     LL_APB1_GRP1_ReleaseReset\n
  712.   *         APB1RSTR     UART4RST      LL_APB1_GRP1_ReleaseReset\n
  713.   *         APB1RSTR     UART5RST      LL_APB1_GRP1_ReleaseReset\n
  714.   *         APB1RSTR     I2C1RST       LL_APB1_GRP1_ReleaseReset\n
  715.   *         APB1RSTR     I2C2RST       LL_APB1_GRP1_ReleaseReset\n
  716.   *         APB1RSTR     USBRST        LL_APB1_GRP1_ReleaseReset\n
  717.   *         APB1RSTR     PWRRST        LL_APB1_GRP1_ReleaseReset\n
  718.   *         APB1RSTR     DACRST        LL_APB1_GRP1_ReleaseReset\n
  719.   *         APB1RSTR     COMPRST       LL_APB1_GRP1_ReleaseReset
  720.   * @param  Periphs This parameter can be a combination of the following values:
  721.   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
  722.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  723.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  724.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  725.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  726.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  727.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  728.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  729.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  730.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  731.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  732.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  733.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  734.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  735.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  736.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  737.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  738.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  739.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  740.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  741.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  742.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  743.   *
  744.   *         (*) value not defined in all devices.
  745.   * @retval None
  746. */
  747. __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
  748. {
  749.   CLEAR_BIT(RCC->APB1RSTR, Periphs);
  750. }
  751.  
  752. /**
  753.   * @brief  Enable APB1 peripherals clock during Low Power (Sleep) mode.
  754.   * @rmtoll APB1LPENR    TIM2LPEN      LL_APB1_GRP1_EnableClockSleep\n
  755.   *         APB1LPENR    TIM3LPEN      LL_APB1_GRP1_EnableClockSleep\n
  756.   *         APB1LPENR    TIM4LPEN      LL_APB1_GRP1_EnableClockSleep\n
  757.   *         APB1LPENR    TIM5LPEN      LL_APB1_GRP1_EnableClockSleep\n
  758.   *         APB1LPENR    TIM6LPEN      LL_APB1_GRP1_EnableClockSleep\n
  759.   *         APB1LPENR    TIM7LPEN      LL_APB1_GRP1_EnableClockSleep\n
  760.   *         APB1LPENR    LCDLPEN       LL_APB1_GRP1_EnableClockSleep\n
  761.   *         APB1LPENR    WWDGLPEN      LL_APB1_GRP1_EnableClockSleep\n
  762.   *         APB1LPENR    SPI2LPEN      LL_APB1_GRP1_EnableClockSleep\n
  763.   *         APB1LPENR    SPI3LPEN      LL_APB1_GRP1_EnableClockSleep\n
  764.   *         APB1LPENR    USART2LPEN    LL_APB1_GRP1_EnableClockSleep\n
  765.   *         APB1LPENR    USART3LPEN    LL_APB1_GRP1_EnableClockSleep\n
  766.   *         APB1LPENR    UART4LPEN     LL_APB1_GRP1_EnableClockSleep\n
  767.   *         APB1LPENR    UART5LPEN     LL_APB1_GRP1_EnableClockSleep\n
  768.   *         APB1LPENR    I2C1LPEN      LL_APB1_GRP1_EnableClockSleep\n
  769.   *         APB1LPENR    I2C2LPEN      LL_APB1_GRP1_EnableClockSleep\n
  770.   *         APB1LPENR    USBLPEN       LL_APB1_GRP1_EnableClockSleep\n
  771.   *         APB1LPENR    PWRLPEN       LL_APB1_GRP1_EnableClockSleep\n
  772.   *         APB1LPENR    DACLPEN       LL_APB1_GRP1_EnableClockSleep\n
  773.   *         APB1LPENR    COMPLPEN      LL_APB1_GRP1_EnableClockSleep
  774.   * @param  Periphs This parameter can be a combination of the following values:
  775.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  776.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  777.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  778.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  779.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  780.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  781.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  782.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  783.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  784.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  785.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  786.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  787.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  788.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  789.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  790.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  791.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  792.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  793.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  794.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  795.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  796.   *
  797.   *         (*) value not defined in all devices.
  798.   * @retval None
  799. */
  800. __STATIC_INLINE void LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs)
  801. {
  802.   __IO uint32_t tmpreg;
  803.   SET_BIT(RCC->APB1LPENR, Periphs);
  804.   /* Delay after an RCC peripheral clock enabling */
  805.   tmpreg = READ_BIT(RCC->APB1LPENR, Periphs);
  806.   (void)tmpreg;
  807. }
  808.  
  809. /**
  810.   * @brief  Disable APB1 peripherals clock during Low Power (Sleep) mode.
  811.   * @rmtoll APB1LPENR    TIM2LPEN      LL_APB1_GRP1_DisableClockSleep\n
  812.   *         APB1LPENR    TIM3LPEN      LL_APB1_GRP1_DisableClockSleep\n
  813.   *         APB1LPENR    TIM4LPEN      LL_APB1_GRP1_DisableClockSleep\n
  814.   *         APB1LPENR    TIM5LPEN      LL_APB1_GRP1_DisableClockSleep\n
  815.   *         APB1LPENR    TIM6LPEN      LL_APB1_GRP1_DisableClockSleep\n
  816.   *         APB1LPENR    TIM7LPEN      LL_APB1_GRP1_DisableClockSleep\n
  817.   *         APB1LPENR    LCDLPEN       LL_APB1_GRP1_DisableClockSleep\n
  818.   *         APB1LPENR    WWDGLPEN      LL_APB1_GRP1_DisableClockSleep\n
  819.   *         APB1LPENR    SPI2LPEN      LL_APB1_GRP1_DisableClockSleep\n
  820.   *         APB1LPENR    SPI3LPEN      LL_APB1_GRP1_DisableClockSleep\n
  821.   *         APB1LPENR    USART2LPEN    LL_APB1_GRP1_DisableClockSleep\n
  822.   *         APB1LPENR    USART3LPEN    LL_APB1_GRP1_DisableClockSleep\n
  823.   *         APB1LPENR    UART4LPEN     LL_APB1_GRP1_DisableClockSleep\n
  824.   *         APB1LPENR    UART5LPEN     LL_APB1_GRP1_DisableClockSleep\n
  825.   *         APB1LPENR    I2C1LPEN      LL_APB1_GRP1_DisableClockSleep\n
  826.   *         APB1LPENR    I2C2LPEN      LL_APB1_GRP1_DisableClockSleep\n
  827.   *         APB1LPENR    USBLPEN       LL_APB1_GRP1_DisableClockSleep\n
  828.   *         APB1LPENR    PWRLPEN       LL_APB1_GRP1_DisableClockSleep\n
  829.   *         APB1LPENR    DACLPEN       LL_APB1_GRP1_DisableClockSleep\n
  830.   *         APB1LPENR    COMPLPEN      LL_APB1_GRP1_DisableClockSleep
  831.   * @param  Periphs This parameter can be a combination of the following values:
  832.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
  833.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
  834.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
  835.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
  836.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
  837.   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
  838.   *         @arg @ref LL_APB1_GRP1_PERIPH_LCD (*)
  839.   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
  840.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
  841.   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
  842.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
  843.   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
  844.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
  845.   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
  846.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
  847.   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
  848.   *         @arg @ref LL_APB1_GRP1_PERIPH_USB
  849.   *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
  850.   *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1
  851.   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP
  852.   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
  853.   *
  854.   *         (*) value not defined in all devices.
  855.   * @retval None
  856. */
  857. __STATIC_INLINE void LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs)
  858. {
  859.   CLEAR_BIT(RCC->APB1LPENR, Periphs);
  860. }
  861.  
  862. /**
  863.   * @}
  864.   */
  865.  
  866. /** @defgroup BUS_LL_EF_APB2 APB2
  867.   * @{
  868.   */
  869.  
  870. /**
  871.   * @brief  Enable APB2 peripherals clock.
  872.   * @rmtoll APB2ENR      SYSCFGEN      LL_APB2_GRP1_EnableClock\n
  873.   *         APB2ENR      TIM9EN        LL_APB2_GRP1_EnableClock\n
  874.   *         APB2ENR      TIM10EN       LL_APB2_GRP1_EnableClock\n
  875.   *         APB2ENR      TIM11EN       LL_APB2_GRP1_EnableClock\n
  876.   *         APB2ENR      ADC1EN        LL_APB2_GRP1_EnableClock\n
  877.   *         APB2ENR      SDIOEN        LL_APB2_GRP1_EnableClock\n
  878.   *         APB2ENR      SPI1EN        LL_APB2_GRP1_EnableClock\n
  879.   *         APB2ENR      USART1EN      LL_APB2_GRP1_EnableClock
  880.   * @param  Periphs This parameter can be a combination of the following values:
  881.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  882.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  883.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  884.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  885.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  886.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  887.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  888.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  889.   *
  890.   *         (*) value not defined in all devices.
  891.   * @retval None
  892. */
  893. __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
  894. {
  895.   __IO uint32_t tmpreg;
  896.   SET_BIT(RCC->APB2ENR, Periphs);
  897.   /* Delay after an RCC peripheral clock enabling */
  898.   tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
  899.   (void)tmpreg;
  900. }
  901.  
  902. /**
  903.   * @brief  Check if APB2 peripheral clock is enabled or not
  904.   * @rmtoll APB2ENR      SYSCFGEN      LL_APB2_GRP1_IsEnabledClock\n
  905.   *         APB2ENR      TIM9EN        LL_APB2_GRP1_IsEnabledClock\n
  906.   *         APB2ENR      TIM10EN       LL_APB2_GRP1_IsEnabledClock\n
  907.   *         APB2ENR      TIM11EN       LL_APB2_GRP1_IsEnabledClock\n
  908.   *         APB2ENR      ADC1EN        LL_APB2_GRP1_IsEnabledClock\n
  909.   *         APB2ENR      SDIOEN        LL_APB2_GRP1_IsEnabledClock\n
  910.   *         APB2ENR      SPI1EN        LL_APB2_GRP1_IsEnabledClock\n
  911.   *         APB2ENR      USART1EN      LL_APB2_GRP1_IsEnabledClock
  912.   * @param  Periphs This parameter can be a combination of the following values:
  913.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  914.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  915.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  916.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  917.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  918.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  919.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  920.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  921.   *
  922.   *         (*) value not defined in all devices.
  923.   * @retval State of Periphs (1 or 0).
  924. */
  925. __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
  926. {
  927.   return ((READ_BIT(RCC->APB2ENR, Periphs) == (Periphs)) ? 1UL : 0UL);
  928. }
  929.  
  930. /**
  931.   * @brief  Disable APB2 peripherals clock.
  932.   * @rmtoll APB2ENR      SYSCFGEN      LL_APB2_GRP1_DisableClock\n
  933.   *         APB2ENR      TIM9EN        LL_APB2_GRP1_DisableClock\n
  934.   *         APB2ENR      TIM10EN       LL_APB2_GRP1_DisableClock\n
  935.   *         APB2ENR      TIM11EN       LL_APB2_GRP1_DisableClock\n
  936.   *         APB2ENR      ADC1EN        LL_APB2_GRP1_DisableClock\n
  937.   *         APB2ENR      SDIOEN        LL_APB2_GRP1_DisableClock\n
  938.   *         APB2ENR      SPI1EN        LL_APB2_GRP1_DisableClock\n
  939.   *         APB2ENR      USART1EN      LL_APB2_GRP1_DisableClock
  940.   * @param  Periphs This parameter can be a combination of the following values:
  941.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  942.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  943.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  944.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  945.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  946.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  947.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  948.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  949.   *
  950.   *         (*) value not defined in all devices.
  951.   * @retval None
  952. */
  953. __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
  954. {
  955.   CLEAR_BIT(RCC->APB2ENR, Periphs);
  956. }
  957.  
  958. /**
  959.   * @brief  Force APB2 peripherals reset.
  960.   * @rmtoll APB2RSTR     SYSCFGRST     LL_APB2_GRP1_ForceReset\n
  961.   *         APB2RSTR     TIM9RST       LL_APB2_GRP1_ForceReset\n
  962.   *         APB2RSTR     TIM10RST      LL_APB2_GRP1_ForceReset\n
  963.   *         APB2RSTR     TIM11RST      LL_APB2_GRP1_ForceReset\n
  964.   *         APB2RSTR     ADC1RST       LL_APB2_GRP1_ForceReset\n
  965.   *         APB2RSTR     SDIORST       LL_APB2_GRP1_ForceReset\n
  966.   *         APB2RSTR     SPI1RST       LL_APB2_GRP1_ForceReset\n
  967.   *         APB2RSTR     USART1RST     LL_APB2_GRP1_ForceReset
  968.   * @param  Periphs This parameter can be a combination of the following values:
  969.   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
  970.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  971.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  972.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  973.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  974.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  975.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  976.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  977.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  978.   *
  979.   *         (*) value not defined in all devices.
  980.   * @retval None
  981. */
  982. __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
  983. {
  984.   SET_BIT(RCC->APB2RSTR, Periphs);
  985. }
  986.  
  987. /**
  988.   * @brief  Release APB2 peripherals reset.
  989.   * @rmtoll APB2RSTR     SYSCFGRST     LL_APB2_GRP1_ReleaseReset\n
  990.   *         APB2RSTR     TIM9RST       LL_APB2_GRP1_ReleaseReset\n
  991.   *         APB2RSTR     TIM10RST      LL_APB2_GRP1_ReleaseReset\n
  992.   *         APB2RSTR     TIM11RST      LL_APB2_GRP1_ReleaseReset\n
  993.   *         APB2RSTR     ADC1RST       LL_APB2_GRP1_ReleaseReset\n
  994.   *         APB2RSTR     SDIORST       LL_APB2_GRP1_ReleaseReset\n
  995.   *         APB2RSTR     SPI1RST       LL_APB2_GRP1_ReleaseReset\n
  996.   *         APB2RSTR     USART1RST     LL_APB2_GRP1_ReleaseReset
  997.   * @param  Periphs This parameter can be a combination of the following values:
  998.   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
  999.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1000.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1001.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  1002.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1003.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1004.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1005.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1006.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1007.   *
  1008.   *         (*) value not defined in all devices.
  1009.   * @retval None
  1010. */
  1011. __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
  1012. {
  1013.   CLEAR_BIT(RCC->APB2RSTR, Periphs);
  1014. }
  1015.  
  1016. /**
  1017.   * @brief  Enable APB2 peripherals clock during Low Power (Sleep) mode.
  1018.   * @rmtoll APB2LPENR    SYSCFGLPEN    LL_APB2_GRP1_EnableClockSleep\n
  1019.   *         APB2LPENR    TIM9LPEN      LL_APB2_GRP1_EnableClockSleep\n
  1020.   *         APB2LPENR    TIM10LPEN     LL_APB2_GRP1_EnableClockSleep\n
  1021.   *         APB2LPENR    TIM11LPEN     LL_APB2_GRP1_EnableClockSleep\n
  1022.   *         APB2LPENR    ADC1LPEN      LL_APB2_GRP1_EnableClockSleep\n
  1023.   *         APB2LPENR    SDIOLPEN      LL_APB2_GRP1_EnableClockSleep\n
  1024.   *         APB2LPENR    SPI1LPEN      LL_APB2_GRP1_EnableClockSleep\n
  1025.   *         APB2LPENR    USART1LPEN    LL_APB2_GRP1_EnableClockSleep
  1026.   * @param  Periphs This parameter can be a combination of the following values:
  1027.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1028.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1029.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  1030.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1031.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1032.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1033.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1034.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1035.   *
  1036.   *         (*) value not defined in all devices.
  1037.   * @retval None
  1038. */
  1039. __STATIC_INLINE void LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs)
  1040. {
  1041.   __IO uint32_t tmpreg;
  1042.   SET_BIT(RCC->APB2LPENR, Periphs);
  1043.   /* Delay after an RCC peripheral clock enabling */
  1044.   tmpreg = READ_BIT(RCC->APB2LPENR, Periphs);
  1045.   (void)tmpreg;
  1046. }
  1047.  
  1048. /**
  1049.   * @brief  Disable APB2 peripherals clock during Low Power (Sleep) mode.
  1050.   * @rmtoll APB2LPENR    SYSCFGLPEN    LL_APB2_GRP1_DisableClockSleep\n
  1051.   *         APB2LPENR    TIM9LPEN      LL_APB2_GRP1_DisableClockSleep\n
  1052.   *         APB2LPENR    TIM10LPEN     LL_APB2_GRP1_DisableClockSleep\n
  1053.   *         APB2LPENR    TIM11LPEN     LL_APB2_GRP1_DisableClockSleep\n
  1054.   *         APB2LPENR    ADC1LPEN      LL_APB2_GRP1_DisableClockSleep\n
  1055.   *         APB2LPENR    SDIOLPEN      LL_APB2_GRP1_DisableClockSleep\n
  1056.   *         APB2LPENR    SPI1LPEN      LL_APB2_GRP1_DisableClockSleep\n
  1057.   *         APB2LPENR    USART1LPEN    LL_APB2_GRP1_DisableClockSleep
  1058.   * @param  Periphs This parameter can be a combination of the following values:
  1059.   *         @arg @ref LL_APB2_GRP1_PERIPH_SYSCFG
  1060.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
  1061.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10
  1062.   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11
  1063.   *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
  1064.   *         @arg @ref LL_APB2_GRP1_PERIPH_SDIO (*)
  1065.   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
  1066.   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
  1067.   *
  1068.   *         (*) value not defined in all devices.
  1069.   * @retval None
  1070. */
  1071. __STATIC_INLINE void LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs)
  1072. {
  1073.   CLEAR_BIT(RCC->APB2LPENR, Periphs);
  1074. }
  1075.  
  1076. /**
  1077.   * @}
  1078.   */
  1079.  
  1080.  
  1081. /**
  1082.   * @}
  1083.   */
  1084.  
  1085. /**
  1086.   * @}
  1087.   */
  1088.  
  1089. #endif /* defined(RCC) */
  1090.  
  1091. /**
  1092.   * @}
  1093.   */
  1094.  
  1095. #ifdef __cplusplus
  1096. }
  1097. #endif
  1098.  
  1099. #endif /* __STM32L1xx_LL_BUS_H */
  1100.  
  1101.