Subversion Repositories DashDisplay

Rev

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

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