Subversion Repositories AFRtranscoder

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_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) 2016 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 __STM32F1xx_LL_BUS_H
37
#define __STM32F1xx_LL_BUS_H
38
 
39
#ifdef __cplusplus
40
extern "C" {
41
#endif
42
 
43
/* Includes ------------------------------------------------------------------*/
44
#include "stm32f1xx.h"
45
 
46
/** @addtogroup STM32F1xx_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
#if defined(RCC_AHBRSTR_OTGFSRST) || defined(RCC_AHBRSTR_ETHMACRST)
61
#define RCC_AHBRSTR_SUPPORT
62
#endif /* RCC_AHBRSTR_OTGFSRST || RCC_AHBRSTR_ETHMACRST */
63
 
64
/* Private macros ------------------------------------------------------------*/
65
 
66
/* Exported types ------------------------------------------------------------*/
67
/* Exported constants --------------------------------------------------------*/
68
/** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
69
  * @{
70
  */
71
 
72
/** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH  AHB1 GRP1 PERIPH
73
  * @{
74
  */
75
#define LL_AHB1_GRP1_PERIPH_ALL            (uint32_t)0xFFFFFFFFU
76
#define LL_AHB1_GRP1_PERIPH_CRC            RCC_AHBENR_CRCEN
77
#define LL_AHB1_GRP1_PERIPH_DMA1           RCC_AHBENR_DMA1EN
78
#if defined(DMA2)
79
#define LL_AHB1_GRP1_PERIPH_DMA2           RCC_AHBENR_DMA2EN
80
#endif /*DMA2*/
81
#if defined(ETH)
82
#define LL_AHB1_GRP1_PERIPH_ETHMAC         RCC_AHBENR_ETHMACEN
83
#define LL_AHB1_GRP1_PERIPH_ETHMACRX       RCC_AHBENR_ETHMACRXEN
84
#define LL_AHB1_GRP1_PERIPH_ETHMACTX       RCC_AHBENR_ETHMACTXEN
85
#endif /*ETH*/
86
#define LL_AHB1_GRP1_PERIPH_FLASH          RCC_AHBENR_FLITFEN
87
#if defined(FSMC_Bank1)
88
#define LL_AHB1_GRP1_PERIPH_FSMC           RCC_AHBENR_FSMCEN
89
#endif /*FSMC_Bank1*/
90
#if defined(USB_OTG_FS)
91
#define LL_AHB1_GRP1_PERIPH_OTGFS          RCC_AHBENR_OTGFSEN
92
#endif /*USB_OTG_FS*/
93
#if defined(SDIO)
94
#define LL_AHB1_GRP1_PERIPH_SDIO           RCC_AHBENR_SDIOEN
95
#endif /*SDIO*/
96
#define LL_AHB1_GRP1_PERIPH_SRAM           RCC_AHBENR_SRAMEN
97
/**
98
  * @}
99
  */
100
 
101
/** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH  APB1 GRP1 PERIPH
102
  * @{
103
  */
104
#define LL_APB1_GRP1_PERIPH_ALL            (uint32_t)0xFFFFFFFFU
105
#define LL_APB1_GRP1_PERIPH_BKP            RCC_APB1ENR_BKPEN
106
#if defined(CAN1)
107
#define LL_APB1_GRP1_PERIPH_CAN1           RCC_APB1ENR_CAN1EN
108
#endif /*CAN1*/
109
#if defined(CAN2)
110
#define LL_APB1_GRP1_PERIPH_CAN2           RCC_APB1ENR_CAN2EN
111
#endif /*CAN2*/
112
#if defined(CEC)
113
#define LL_APB1_GRP1_PERIPH_CEC            RCC_APB1ENR_CECEN
114
#endif /*CEC*/
115
#if defined(DAC)
116
#define LL_APB1_GRP1_PERIPH_DAC1           RCC_APB1ENR_DACEN
117
#endif /*DAC*/
118
#define LL_APB1_GRP1_PERIPH_I2C1           RCC_APB1ENR_I2C1EN
119
#if defined(I2C2)
120
#define LL_APB1_GRP1_PERIPH_I2C2           RCC_APB1ENR_I2C2EN
121
#endif /*I2C2*/
122
#define LL_APB1_GRP1_PERIPH_PWR            RCC_APB1ENR_PWREN
123
#if defined(SPI2)
124
#define LL_APB1_GRP1_PERIPH_SPI2           RCC_APB1ENR_SPI2EN
125
#endif /*SPI2*/
126
#if defined(SPI3)
127
#define LL_APB1_GRP1_PERIPH_SPI3           RCC_APB1ENR_SPI3EN
128
#endif /*SPI3*/
129
#if defined(TIM12)
130
#define LL_APB1_GRP1_PERIPH_TIM12          RCC_APB1ENR_TIM12EN
131
#endif /*TIM12*/
132
#if defined(TIM13)
133
#define LL_APB1_GRP1_PERIPH_TIM13          RCC_APB1ENR_TIM13EN
134
#endif /*TIM13*/
135
#if defined(TIM14)
136
#define LL_APB1_GRP1_PERIPH_TIM14          RCC_APB1ENR_TIM14EN
137
#endif /*TIM14*/
138
#define LL_APB1_GRP1_PERIPH_TIM2           RCC_APB1ENR_TIM2EN
139
#define LL_APB1_GRP1_PERIPH_TIM3           RCC_APB1ENR_TIM3EN
140
#if defined(TIM4)
141
#define LL_APB1_GRP1_PERIPH_TIM4           RCC_APB1ENR_TIM4EN
142
#endif /*TIM4*/
143
#if defined(TIM5)
144
#define LL_APB1_GRP1_PERIPH_TIM5           RCC_APB1ENR_TIM5EN
145
#endif /*TIM5*/
146
#if defined(TIM6)
147
#define LL_APB1_GRP1_PERIPH_TIM6           RCC_APB1ENR_TIM6EN
148
#endif /*TIM6*/
149
#if defined(TIM7)
150
#define LL_APB1_GRP1_PERIPH_TIM7           RCC_APB1ENR_TIM7EN
151
#endif /*TIM7*/
152
#if defined(UART4)
153
#define LL_APB1_GRP1_PERIPH_UART4          RCC_APB1ENR_UART4EN
154
#endif /*UART4*/
155
#if defined(UART5)
156
#define LL_APB1_GRP1_PERIPH_UART5          RCC_APB1ENR_UART5EN
157
#endif /*UART5*/
158
#define LL_APB1_GRP1_PERIPH_USART2         RCC_APB1ENR_USART2EN
159
#if defined(USART3)
160
#define LL_APB1_GRP1_PERIPH_USART3         RCC_APB1ENR_USART3EN
161
#endif /*USART3*/
162
#if defined(USB)
163
#define LL_APB1_GRP1_PERIPH_USB            RCC_APB1ENR_USBEN
164
#endif /*USB*/
165
#define LL_APB1_GRP1_PERIPH_WWDG           RCC_APB1ENR_WWDGEN
166
/**
167
  * @}
168
  */
169
 
170
/** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH  APB2 GRP1 PERIPH
171
  * @{
172
  */
173
#define LL_APB2_GRP1_PERIPH_ALL            (uint32_t)0xFFFFFFFFU
174
#define LL_APB2_GRP1_PERIPH_ADC1           RCC_APB2ENR_ADC1EN
175
#if defined(ADC2)
176
#define LL_APB2_GRP1_PERIPH_ADC2           RCC_APB2ENR_ADC2EN
177
#endif /*ADC2*/
178
#if defined(ADC3)
179
#define LL_APB2_GRP1_PERIPH_ADC3           RCC_APB2ENR_ADC3EN
180
#endif /*ADC3*/
181
#define LL_APB2_GRP1_PERIPH_AFIO           RCC_APB2ENR_AFIOEN
182
#define LL_APB2_GRP1_PERIPH_GPIOA          RCC_APB2ENR_IOPAEN
183
#define LL_APB2_GRP1_PERIPH_GPIOB          RCC_APB2ENR_IOPBEN
184
#define LL_APB2_GRP1_PERIPH_GPIOC          RCC_APB2ENR_IOPCEN
185
#define LL_APB2_GRP1_PERIPH_GPIOD          RCC_APB2ENR_IOPDEN
186
#if defined(GPIOE)
187
#define LL_APB2_GRP1_PERIPH_GPIOE          RCC_APB2ENR_IOPEEN
188
#endif /*GPIOE*/
189
#if defined(GPIOF)
190
#define LL_APB2_GRP1_PERIPH_GPIOF          RCC_APB2ENR_IOPFEN
191
#endif /*GPIOF*/
192
#if defined(GPIOG)
193
#define LL_APB2_GRP1_PERIPH_GPIOG          RCC_APB2ENR_IOPGEN
194
#endif /*GPIOG*/
195
#define LL_APB2_GRP1_PERIPH_SPI1           RCC_APB2ENR_SPI1EN
196
#if defined(TIM10)
197
#define LL_APB2_GRP1_PERIPH_TIM10          RCC_APB2ENR_TIM10EN
198
#endif /*TIM10*/
199
#if defined(TIM11)
200
#define LL_APB2_GRP1_PERIPH_TIM11          RCC_APB2ENR_TIM11EN
201
#endif /*TIM11*/
202
#if defined(TIM15)
203
#define LL_APB2_GRP1_PERIPH_TIM15          RCC_APB2ENR_TIM15EN
204
#endif /*TIM15*/
205
#if defined(TIM16)
206
#define LL_APB2_GRP1_PERIPH_TIM16          RCC_APB2ENR_TIM16EN
207
#endif /*TIM16*/
208
#if defined(TIM17)
209
#define LL_APB2_GRP1_PERIPH_TIM17          RCC_APB2ENR_TIM17EN
210
#endif /*TIM17*/
211
#define LL_APB2_GRP1_PERIPH_TIM1           RCC_APB2ENR_TIM1EN
212
#if defined(TIM8)
213
#define LL_APB2_GRP1_PERIPH_TIM8           RCC_APB2ENR_TIM8EN
214
#endif /*TIM8*/
215
#if defined(TIM9)
216
#define LL_APB2_GRP1_PERIPH_TIM9           RCC_APB2ENR_TIM9EN
217
#endif /*TIM9*/
218
#define LL_APB2_GRP1_PERIPH_USART1         RCC_APB2ENR_USART1EN
219
/**
220
  * @}
221
  */
222
 
223
/**
224
  * @}
225
  */
226
 
227
/* Exported macro ------------------------------------------------------------*/
228
 
229
/* Exported functions --------------------------------------------------------*/
230
/** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
231
  * @{
232
  */
233
 
234
/** @defgroup BUS_LL_EF_AHB1 AHB1
235
  * @{
236
  */
237
 
238
/**
239
  * @brief  Enable AHB1 peripherals clock.
240
  * @rmtoll AHBENR       CRCEN         LL_AHB1_GRP1_EnableClock\n
241
  *         AHBENR       DMA1EN        LL_AHB1_GRP1_EnableClock\n
242
  *         AHBENR       DMA2EN        LL_AHB1_GRP1_EnableClock\n
243
  *         AHBENR       ETHMACEN      LL_AHB1_GRP1_EnableClock\n
244
  *         AHBENR       ETHMACRXEN    LL_AHB1_GRP1_EnableClock\n
245
  *         AHBENR       ETHMACTXEN    LL_AHB1_GRP1_EnableClock\n
246
  *         AHBENR       FLITFEN       LL_AHB1_GRP1_EnableClock\n
247
  *         AHBENR       FSMCEN        LL_AHB1_GRP1_EnableClock\n
248
  *         AHBENR       OTGFSEN       LL_AHB1_GRP1_EnableClock\n
249
  *         AHBENR       SDIOEN        LL_AHB1_GRP1_EnableClock\n
250
  *         AHBENR       SRAMEN        LL_AHB1_GRP1_EnableClock
251
  * @param  Periphs This parameter can be a combination of the following values:
252
  *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
253
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
254
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
255
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
256
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
257
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
258
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
259
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
260
  *         @arg @ref LL_AHB1_GRP1_PERIPH_OTGFS (*)
261
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SDIO (*)
262
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
263
  *
264
  *         (*) value not defined in all devices.
265
  * @retval None
266
*/
267
__STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
268
{
269
  __IO uint32_t tmpreg;
270
  SET_BIT(RCC->AHBENR, Periphs);
271
  /* Delay after an RCC peripheral clock enabling */
272
  tmpreg = READ_BIT(RCC->AHBENR, Periphs);
273
  (void)tmpreg;
274
}
275
 
276
/**
277
  * @brief  Check if AHB1 peripheral clock is enabled or not
278
  * @rmtoll AHBENR       CRCEN         LL_AHB1_GRP1_IsEnabledClock\n
279
  *         AHBENR       DMA1EN        LL_AHB1_GRP1_IsEnabledClock\n
280
  *         AHBENR       DMA2EN        LL_AHB1_GRP1_IsEnabledClock\n
281
  *         AHBENR       ETHMACEN      LL_AHB1_GRP1_IsEnabledClock\n
282
  *         AHBENR       ETHMACRXEN    LL_AHB1_GRP1_IsEnabledClock\n
283
  *         AHBENR       ETHMACTXEN    LL_AHB1_GRP1_IsEnabledClock\n
284
  *         AHBENR       FLITFEN       LL_AHB1_GRP1_IsEnabledClock\n
285
  *         AHBENR       FSMCEN        LL_AHB1_GRP1_IsEnabledClock\n
286
  *         AHBENR       OTGFSEN       LL_AHB1_GRP1_IsEnabledClock\n
287
  *         AHBENR       SDIOEN        LL_AHB1_GRP1_IsEnabledClock\n
288
  *         AHBENR       SRAMEN        LL_AHB1_GRP1_IsEnabledClock
289
  * @param  Periphs This parameter can be a combination of the following values:
290
  *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
291
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
292
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
293
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
294
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
295
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
296
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
297
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
298
  *         @arg @ref LL_AHB1_GRP1_PERIPH_OTGFS (*)
299
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SDIO (*)
300
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
301
  *
302
  *         (*) value not defined in all devices.
303
  * @retval State of Periphs (1 or 0).
304
*/
305
__STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
306
{
307
  return (READ_BIT(RCC->AHBENR, Periphs) == Periphs);
308
}
309
 
310
/**
311
  * @brief  Disable AHB1 peripherals clock.
312
  * @rmtoll AHBENR       CRCEN         LL_AHB1_GRP1_DisableClock\n
313
  *         AHBENR       DMA1EN        LL_AHB1_GRP1_DisableClock\n
314
  *         AHBENR       DMA2EN        LL_AHB1_GRP1_DisableClock\n
315
  *         AHBENR       ETHMACEN      LL_AHB1_GRP1_DisableClock\n
316
  *         AHBENR       ETHMACRXEN    LL_AHB1_GRP1_DisableClock\n
317
  *         AHBENR       ETHMACTXEN    LL_AHB1_GRP1_DisableClock\n
318
  *         AHBENR       FLITFEN       LL_AHB1_GRP1_DisableClock\n
319
  *         AHBENR       FSMCEN        LL_AHB1_GRP1_DisableClock\n
320
  *         AHBENR       OTGFSEN       LL_AHB1_GRP1_DisableClock\n
321
  *         AHBENR       SDIOEN        LL_AHB1_GRP1_DisableClock\n
322
  *         AHBENR       SRAMEN        LL_AHB1_GRP1_DisableClock
323
  * @param  Periphs This parameter can be a combination of the following values:
324
  *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
325
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA1
326
  *         @arg @ref LL_AHB1_GRP1_PERIPH_DMA2 (*)
327
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
328
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACRX (*)
329
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMACTX (*)
330
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
331
  *         @arg @ref LL_AHB1_GRP1_PERIPH_FSMC (*)
332
  *         @arg @ref LL_AHB1_GRP1_PERIPH_OTGFS (*)
333
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SDIO (*)
334
  *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM
335
  *
336
  *         (*) value not defined in all devices.
337
  * @retval None
338
*/
339
__STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
340
{
341
  CLEAR_BIT(RCC->AHBENR, Periphs);
342
}
343
 
344
#if defined(RCC_AHBRSTR_SUPPORT)
345
/**
346
  * @brief  Force AHB1 peripherals reset.
347
  * @rmtoll AHBRSTR      ETHMACRST     LL_AHB1_GRP1_ForceReset\n
348
  *         AHBRSTR      OTGFSRST      LL_AHB1_GRP1_ForceReset
349
  * @param  Periphs This parameter can be a combination of the following values:
350
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
351
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
352
  *         @arg @ref LL_AHB1_GRP1_PERIPH_OTGFS (*)
353
  *
354
  *         (*) value not defined in all devices.
355
  * @retval None
356
*/
357
__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
358
{
359
  SET_BIT(RCC->AHBRSTR, Periphs);
360
}
361
 
362
/**
363
  * @brief  Release AHB1 peripherals reset.
364
  * @rmtoll AHBRSTR      ETHMACRST     LL_AHB1_GRP1_ReleaseReset\n
365
  *         AHBRSTR      OTGFSRST      LL_AHB1_GRP1_ReleaseReset
366
  * @param  Periphs This parameter can be a combination of the following values:
367
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
368
  *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHMAC (*)
369
  *         @arg @ref LL_AHB1_GRP1_PERIPH_OTGFS (*)
370
  *
371
  *         (*) value not defined in all devices.
372
  * @retval None
373
*/
374
__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
375
{
376
  CLEAR_BIT(RCC->AHBRSTR, Periphs);
377
}
378
#endif /* RCC_AHBRSTR_SUPPORT */
379
 
380
/**
381
  * @}
382
  */
383
 
384
/** @defgroup BUS_LL_EF_APB1 APB1
385
  * @{
386
  */
387
 
388
/**
389
  * @brief  Enable APB1 peripherals clock.
390
  * @rmtoll APB1ENR      BKPEN         LL_APB1_GRP1_EnableClock\n
391
  *         APB1ENR      CAN1EN        LL_APB1_GRP1_EnableClock\n
392
  *         APB1ENR      CAN2EN        LL_APB1_GRP1_EnableClock\n
393
  *         APB1ENR      CECEN         LL_APB1_GRP1_EnableClock\n
394
  *         APB1ENR      DACEN         LL_APB1_GRP1_EnableClock\n
395
  *         APB1ENR      I2C1EN        LL_APB1_GRP1_EnableClock\n
396
  *         APB1ENR      I2C2EN        LL_APB1_GRP1_EnableClock\n
397
  *         APB1ENR      PWREN         LL_APB1_GRP1_EnableClock\n
398
  *         APB1ENR      SPI2EN        LL_APB1_GRP1_EnableClock\n
399
  *         APB1ENR      SPI3EN        LL_APB1_GRP1_EnableClock\n
400
  *         APB1ENR      TIM12EN       LL_APB1_GRP1_EnableClock\n
401
  *         APB1ENR      TIM13EN       LL_APB1_GRP1_EnableClock\n
402
  *         APB1ENR      TIM14EN       LL_APB1_GRP1_EnableClock\n
403
  *         APB1ENR      TIM2EN        LL_APB1_GRP1_EnableClock\n
404
  *         APB1ENR      TIM3EN        LL_APB1_GRP1_EnableClock\n
405
  *         APB1ENR      TIM4EN        LL_APB1_GRP1_EnableClock\n
406
  *         APB1ENR      TIM5EN        LL_APB1_GRP1_EnableClock\n
407
  *         APB1ENR      TIM6EN        LL_APB1_GRP1_EnableClock\n
408
  *         APB1ENR      TIM7EN        LL_APB1_GRP1_EnableClock\n
409
  *         APB1ENR      UART4EN       LL_APB1_GRP1_EnableClock\n
410
  *         APB1ENR      UART5EN       LL_APB1_GRP1_EnableClock\n
411
  *         APB1ENR      USART2EN      LL_APB1_GRP1_EnableClock\n
412
  *         APB1ENR      USART3EN      LL_APB1_GRP1_EnableClock\n
413
  *         APB1ENR      USBEN         LL_APB1_GRP1_EnableClock\n
414
  *         APB1ENR      WWDGEN        LL_APB1_GRP1_EnableClock
415
  * @param  Periphs This parameter can be a combination of the following values:
416
  *         @arg @ref LL_APB1_GRP1_PERIPH_BKP
417
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
418
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
419
  *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
420
  *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
421
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
422
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
423
  *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
424
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
425
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
426
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
427
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
428
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
429
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
430
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
431
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
432
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
433
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
434
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
435
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
436
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
437
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
438
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
439
  *         @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
440
  *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
441
  *
442
  *         (*) value not defined in all devices.
443
  * @retval None
444
*/
445
__STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
446
{
447
  __IO uint32_t tmpreg;
448
  SET_BIT(RCC->APB1ENR, Periphs);
449
  /* Delay after an RCC peripheral clock enabling */
450
  tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
451
  (void)tmpreg;
452
}
453
 
454
/**
455
  * @brief  Check if APB1 peripheral clock is enabled or not
456
  * @rmtoll APB1ENR      BKPEN         LL_APB1_GRP1_IsEnabledClock\n
457
  *         APB1ENR      CAN1EN        LL_APB1_GRP1_IsEnabledClock\n
458
  *         APB1ENR      CAN2EN        LL_APB1_GRP1_IsEnabledClock\n
459
  *         APB1ENR      CECEN         LL_APB1_GRP1_IsEnabledClock\n
460
  *         APB1ENR      DACEN         LL_APB1_GRP1_IsEnabledClock\n
461
  *         APB1ENR      I2C1EN        LL_APB1_GRP1_IsEnabledClock\n
462
  *         APB1ENR      I2C2EN        LL_APB1_GRP1_IsEnabledClock\n
463
  *         APB1ENR      PWREN         LL_APB1_GRP1_IsEnabledClock\n
464
  *         APB1ENR      SPI2EN        LL_APB1_GRP1_IsEnabledClock\n
465
  *         APB1ENR      SPI3EN        LL_APB1_GRP1_IsEnabledClock\n
466
  *         APB1ENR      TIM12EN       LL_APB1_GRP1_IsEnabledClock\n
467
  *         APB1ENR      TIM13EN       LL_APB1_GRP1_IsEnabledClock\n
468
  *         APB1ENR      TIM14EN       LL_APB1_GRP1_IsEnabledClock\n
469
  *         APB1ENR      TIM2EN        LL_APB1_GRP1_IsEnabledClock\n
470
  *         APB1ENR      TIM3EN        LL_APB1_GRP1_IsEnabledClock\n
471
  *         APB1ENR      TIM4EN        LL_APB1_GRP1_IsEnabledClock\n
472
  *         APB1ENR      TIM5EN        LL_APB1_GRP1_IsEnabledClock\n
473
  *         APB1ENR      TIM6EN        LL_APB1_GRP1_IsEnabledClock\n
474
  *         APB1ENR      TIM7EN        LL_APB1_GRP1_IsEnabledClock\n
475
  *         APB1ENR      UART4EN       LL_APB1_GRP1_IsEnabledClock\n
476
  *         APB1ENR      UART5EN       LL_APB1_GRP1_IsEnabledClock\n
477
  *         APB1ENR      USART2EN      LL_APB1_GRP1_IsEnabledClock\n
478
  *         APB1ENR      USART3EN      LL_APB1_GRP1_IsEnabledClock\n
479
  *         APB1ENR      USBEN         LL_APB1_GRP1_IsEnabledClock\n
480
  *         APB1ENR      WWDGEN        LL_APB1_GRP1_IsEnabledClock
481
  * @param  Periphs This parameter can be a combination of the following values:
482
  *         @arg @ref LL_APB1_GRP1_PERIPH_BKP
483
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
484
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
485
  *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
486
  *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
487
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
488
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
489
  *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
490
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
491
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
492
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
493
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
494
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
495
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
496
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
497
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
498
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
499
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
500
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
501
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
502
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
503
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
504
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
505
  *         @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
506
  *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
507
  *
508
  *         (*) value not defined in all devices.
509
  * @retval State of Periphs (1 or 0).
510
*/
511
__STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
512
{
513
  return (READ_BIT(RCC->APB1ENR, Periphs) == Periphs);
514
}
515
 
516
/**
517
  * @brief  Disable APB1 peripherals clock.
518
  * @rmtoll APB1ENR      BKPEN         LL_APB1_GRP1_DisableClock\n
519
  *         APB1ENR      CAN1EN        LL_APB1_GRP1_DisableClock\n
520
  *         APB1ENR      CAN2EN        LL_APB1_GRP1_DisableClock\n
521
  *         APB1ENR      CECEN         LL_APB1_GRP1_DisableClock\n
522
  *         APB1ENR      DACEN         LL_APB1_GRP1_DisableClock\n
523
  *         APB1ENR      I2C1EN        LL_APB1_GRP1_DisableClock\n
524
  *         APB1ENR      I2C2EN        LL_APB1_GRP1_DisableClock\n
525
  *         APB1ENR      PWREN         LL_APB1_GRP1_DisableClock\n
526
  *         APB1ENR      SPI2EN        LL_APB1_GRP1_DisableClock\n
527
  *         APB1ENR      SPI3EN        LL_APB1_GRP1_DisableClock\n
528
  *         APB1ENR      TIM12EN       LL_APB1_GRP1_DisableClock\n
529
  *         APB1ENR      TIM13EN       LL_APB1_GRP1_DisableClock\n
530
  *         APB1ENR      TIM14EN       LL_APB1_GRP1_DisableClock\n
531
  *         APB1ENR      TIM2EN        LL_APB1_GRP1_DisableClock\n
532
  *         APB1ENR      TIM3EN        LL_APB1_GRP1_DisableClock\n
533
  *         APB1ENR      TIM4EN        LL_APB1_GRP1_DisableClock\n
534
  *         APB1ENR      TIM5EN        LL_APB1_GRP1_DisableClock\n
535
  *         APB1ENR      TIM6EN        LL_APB1_GRP1_DisableClock\n
536
  *         APB1ENR      TIM7EN        LL_APB1_GRP1_DisableClock\n
537
  *         APB1ENR      UART4EN       LL_APB1_GRP1_DisableClock\n
538
  *         APB1ENR      UART5EN       LL_APB1_GRP1_DisableClock\n
539
  *         APB1ENR      USART2EN      LL_APB1_GRP1_DisableClock\n
540
  *         APB1ENR      USART3EN      LL_APB1_GRP1_DisableClock\n
541
  *         APB1ENR      USBEN         LL_APB1_GRP1_DisableClock\n
542
  *         APB1ENR      WWDGEN        LL_APB1_GRP1_DisableClock
543
  * @param  Periphs This parameter can be a combination of the following values:
544
  *         @arg @ref LL_APB1_GRP1_PERIPH_BKP
545
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
546
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
547
  *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
548
  *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
549
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
550
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
551
  *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
552
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
553
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
554
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
555
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
556
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
557
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
558
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
559
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
560
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
561
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
562
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
563
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
564
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
565
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
566
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
567
  *         @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
568
  *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
569
  *
570
  *         (*) value not defined in all devices.
571
  * @retval None
572
*/
573
__STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
574
{
575
  CLEAR_BIT(RCC->APB1ENR, Periphs);
576
}
577
 
578
/**
579
  * @brief  Force APB1 peripherals reset.
580
  * @rmtoll APB1RSTR     BKPRST        LL_APB1_GRP1_ForceReset\n
581
  *         APB1RSTR     CAN1RST       LL_APB1_GRP1_ForceReset\n
582
  *         APB1RSTR     CAN2RST       LL_APB1_GRP1_ForceReset\n
583
  *         APB1RSTR     CECRST        LL_APB1_GRP1_ForceReset\n
584
  *         APB1RSTR     DACRST        LL_APB1_GRP1_ForceReset\n
585
  *         APB1RSTR     I2C1RST       LL_APB1_GRP1_ForceReset\n
586
  *         APB1RSTR     I2C2RST       LL_APB1_GRP1_ForceReset\n
587
  *         APB1RSTR     PWRRST        LL_APB1_GRP1_ForceReset\n
588
  *         APB1RSTR     SPI2RST       LL_APB1_GRP1_ForceReset\n
589
  *         APB1RSTR     SPI3RST       LL_APB1_GRP1_ForceReset\n
590
  *         APB1RSTR     TIM12RST      LL_APB1_GRP1_ForceReset\n
591
  *         APB1RSTR     TIM13RST      LL_APB1_GRP1_ForceReset\n
592
  *         APB1RSTR     TIM14RST      LL_APB1_GRP1_ForceReset\n
593
  *         APB1RSTR     TIM2RST       LL_APB1_GRP1_ForceReset\n
594
  *         APB1RSTR     TIM3RST       LL_APB1_GRP1_ForceReset\n
595
  *         APB1RSTR     TIM4RST       LL_APB1_GRP1_ForceReset\n
596
  *         APB1RSTR     TIM5RST       LL_APB1_GRP1_ForceReset\n
597
  *         APB1RSTR     TIM6RST       LL_APB1_GRP1_ForceReset\n
598
  *         APB1RSTR     TIM7RST       LL_APB1_GRP1_ForceReset\n
599
  *         APB1RSTR     UART4RST      LL_APB1_GRP1_ForceReset\n
600
  *         APB1RSTR     UART5RST      LL_APB1_GRP1_ForceReset\n
601
  *         APB1RSTR     USART2RST     LL_APB1_GRP1_ForceReset\n
602
  *         APB1RSTR     USART3RST     LL_APB1_GRP1_ForceReset\n
603
  *         APB1RSTR     USBRST        LL_APB1_GRP1_ForceReset\n
604
  *         APB1RSTR     WWDGRST       LL_APB1_GRP1_ForceReset
605
  * @param  Periphs This parameter can be a combination of the following values:
606
  *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
607
  *         @arg @ref LL_APB1_GRP1_PERIPH_BKP
608
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
609
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
610
  *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
611
  *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
612
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
613
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
614
  *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
615
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
616
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
617
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
618
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
619
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
620
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
621
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
622
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
623
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
624
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
625
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
626
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
627
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
628
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
629
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
630
  *         @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
631
  *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
632
  *
633
  *         (*) value not defined in all devices.
634
  * @retval None
635
*/
636
__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
637
{
638
  SET_BIT(RCC->APB1RSTR, Periphs);
639
}
640
 
641
/**
642
  * @brief  Release APB1 peripherals reset.
643
  * @rmtoll APB1RSTR     BKPRST        LL_APB1_GRP1_ReleaseReset\n
644
  *         APB1RSTR     CAN1RST       LL_APB1_GRP1_ReleaseReset\n
645
  *         APB1RSTR     CAN2RST       LL_APB1_GRP1_ReleaseReset\n
646
  *         APB1RSTR     CECRST        LL_APB1_GRP1_ReleaseReset\n
647
  *         APB1RSTR     DACRST        LL_APB1_GRP1_ReleaseReset\n
648
  *         APB1RSTR     I2C1RST       LL_APB1_GRP1_ReleaseReset\n
649
  *         APB1RSTR     I2C2RST       LL_APB1_GRP1_ReleaseReset\n
650
  *         APB1RSTR     PWRRST        LL_APB1_GRP1_ReleaseReset\n
651
  *         APB1RSTR     SPI2RST       LL_APB1_GRP1_ReleaseReset\n
652
  *         APB1RSTR     SPI3RST       LL_APB1_GRP1_ReleaseReset\n
653
  *         APB1RSTR     TIM12RST      LL_APB1_GRP1_ReleaseReset\n
654
  *         APB1RSTR     TIM13RST      LL_APB1_GRP1_ReleaseReset\n
655
  *         APB1RSTR     TIM14RST      LL_APB1_GRP1_ReleaseReset\n
656
  *         APB1RSTR     TIM2RST       LL_APB1_GRP1_ReleaseReset\n
657
  *         APB1RSTR     TIM3RST       LL_APB1_GRP1_ReleaseReset\n
658
  *         APB1RSTR     TIM4RST       LL_APB1_GRP1_ReleaseReset\n
659
  *         APB1RSTR     TIM5RST       LL_APB1_GRP1_ReleaseReset\n
660
  *         APB1RSTR     TIM6RST       LL_APB1_GRP1_ReleaseReset\n
661
  *         APB1RSTR     TIM7RST       LL_APB1_GRP1_ReleaseReset\n
662
  *         APB1RSTR     UART4RST      LL_APB1_GRP1_ReleaseReset\n
663
  *         APB1RSTR     UART5RST      LL_APB1_GRP1_ReleaseReset\n
664
  *         APB1RSTR     USART2RST     LL_APB1_GRP1_ReleaseReset\n
665
  *         APB1RSTR     USART3RST     LL_APB1_GRP1_ReleaseReset\n
666
  *         APB1RSTR     USBRST        LL_APB1_GRP1_ReleaseReset\n
667
  *         APB1RSTR     WWDGRST       LL_APB1_GRP1_ReleaseReset
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_BKP
671
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN1 (*)
672
  *         @arg @ref LL_APB1_GRP1_PERIPH_CAN2 (*)
673
  *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
674
  *         @arg @ref LL_APB1_GRP1_PERIPH_DAC1 (*)
675
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
676
  *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2 (*)
677
  *         @arg @ref LL_APB1_GRP1_PERIPH_PWR
678
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2 (*)
679
  *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3 (*)
680
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
681
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
682
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
683
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
684
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
685
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
686
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
687
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6 (*)
688
  *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7 (*)
689
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
690
  *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
691
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
692
  *         @arg @ref LL_APB1_GRP1_PERIPH_USART3 (*)
693
  *         @arg @ref LL_APB1_GRP1_PERIPH_USB (*)
694
  *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
695
  *
696
  *         (*) value not defined in all devices.
697
  * @retval None
698
*/
699
__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
700
{
701
  CLEAR_BIT(RCC->APB1RSTR, Periphs);
702
}
703
 
704
/**
705
  * @}
706
  */
707
 
708
/** @defgroup BUS_LL_EF_APB2 APB2
709
  * @{
710
  */
711
 
712
/**
713
  * @brief  Enable APB2 peripherals clock.
714
  * @rmtoll APB2ENR      ADC1EN        LL_APB2_GRP1_EnableClock\n
715
  *         APB2ENR      ADC2EN        LL_APB2_GRP1_EnableClock\n
716
  *         APB2ENR      ADC3EN        LL_APB2_GRP1_EnableClock\n
717
  *         APB2ENR      AFIOEN        LL_APB2_GRP1_EnableClock\n
718
  *         APB2ENR      IOPAEN        LL_APB2_GRP1_EnableClock\n
719
  *         APB2ENR      IOPBEN        LL_APB2_GRP1_EnableClock\n
720
  *         APB2ENR      IOPCEN        LL_APB2_GRP1_EnableClock\n
721
  *         APB2ENR      IOPDEN        LL_APB2_GRP1_EnableClock\n
722
  *         APB2ENR      IOPEEN        LL_APB2_GRP1_EnableClock\n
723
  *         APB2ENR      IOPFEN        LL_APB2_GRP1_EnableClock\n
724
  *         APB2ENR      IOPGEN        LL_APB2_GRP1_EnableClock\n
725
  *         APB2ENR      SPI1EN        LL_APB2_GRP1_EnableClock\n
726
  *         APB2ENR      TIM10EN       LL_APB2_GRP1_EnableClock\n
727
  *         APB2ENR      TIM11EN       LL_APB2_GRP1_EnableClock\n
728
  *         APB2ENR      TIM15EN       LL_APB2_GRP1_EnableClock\n
729
  *         APB2ENR      TIM16EN       LL_APB2_GRP1_EnableClock\n
730
  *         APB2ENR      TIM17EN       LL_APB2_GRP1_EnableClock\n
731
  *         APB2ENR      TIM1EN        LL_APB2_GRP1_EnableClock\n
732
  *         APB2ENR      TIM8EN        LL_APB2_GRP1_EnableClock\n
733
  *         APB2ENR      TIM9EN        LL_APB2_GRP1_EnableClock\n
734
  *         APB2ENR      USART1EN      LL_APB2_GRP1_EnableClock
735
  * @param  Periphs This parameter can be a combination of the following values:
736
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
737
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
738
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
739
  *         @arg @ref LL_APB2_GRP1_PERIPH_AFIO
740
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOA
741
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOB
742
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOC
743
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOD
744
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOE (*)
745
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOF (*)
746
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOG (*)
747
  *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
748
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
749
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11 (*)
750
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
751
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
752
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
753
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
754
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
755
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9 (*)
756
  *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
757
  *
758
  *         (*) value not defined in all devices.
759
  * @retval None
760
*/
761
__STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
762
{
763
  __IO uint32_t tmpreg;
764
  SET_BIT(RCC->APB2ENR, Periphs);
765
  /* Delay after an RCC peripheral clock enabling */
766
  tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
767
  (void)tmpreg;
768
}
769
 
770
/**
771
  * @brief  Check if APB2 peripheral clock is enabled or not
772
  * @rmtoll APB2ENR      ADC1EN        LL_APB2_GRP1_IsEnabledClock\n
773
  *         APB2ENR      ADC2EN        LL_APB2_GRP1_IsEnabledClock\n
774
  *         APB2ENR      ADC3EN        LL_APB2_GRP1_IsEnabledClock\n
775
  *         APB2ENR      AFIOEN        LL_APB2_GRP1_IsEnabledClock\n
776
  *         APB2ENR      IOPAEN        LL_APB2_GRP1_IsEnabledClock\n
777
  *         APB2ENR      IOPBEN        LL_APB2_GRP1_IsEnabledClock\n
778
  *         APB2ENR      IOPCEN        LL_APB2_GRP1_IsEnabledClock\n
779
  *         APB2ENR      IOPDEN        LL_APB2_GRP1_IsEnabledClock\n
780
  *         APB2ENR      IOPEEN        LL_APB2_GRP1_IsEnabledClock\n
781
  *         APB2ENR      IOPFEN        LL_APB2_GRP1_IsEnabledClock\n
782
  *         APB2ENR      IOPGEN        LL_APB2_GRP1_IsEnabledClock\n
783
  *         APB2ENR      SPI1EN        LL_APB2_GRP1_IsEnabledClock\n
784
  *         APB2ENR      TIM10EN       LL_APB2_GRP1_IsEnabledClock\n
785
  *         APB2ENR      TIM11EN       LL_APB2_GRP1_IsEnabledClock\n
786
  *         APB2ENR      TIM15EN       LL_APB2_GRP1_IsEnabledClock\n
787
  *         APB2ENR      TIM16EN       LL_APB2_GRP1_IsEnabledClock\n
788
  *         APB2ENR      TIM17EN       LL_APB2_GRP1_IsEnabledClock\n
789
  *         APB2ENR      TIM1EN        LL_APB2_GRP1_IsEnabledClock\n
790
  *         APB2ENR      TIM8EN        LL_APB2_GRP1_IsEnabledClock\n
791
  *         APB2ENR      TIM9EN        LL_APB2_GRP1_IsEnabledClock\n
792
  *         APB2ENR      USART1EN      LL_APB2_GRP1_IsEnabledClock
793
  * @param  Periphs This parameter can be a combination of the following values:
794
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
795
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
796
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
797
  *         @arg @ref LL_APB2_GRP1_PERIPH_AFIO
798
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOA
799
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOB
800
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOC
801
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOD
802
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOE (*)
803
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOF (*)
804
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOG (*)
805
  *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
806
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
807
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11 (*)
808
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
809
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
810
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
811
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
812
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
813
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9 (*)
814
  *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
815
  *
816
  *         (*) value not defined in all devices.
817
  * @retval State of Periphs (1 or 0).
818
*/
819
__STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
820
{
821
  return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
822
}
823
 
824
/**
825
  * @brief  Disable APB2 peripherals clock.
826
  * @rmtoll APB2ENR      ADC1EN        LL_APB2_GRP1_DisableClock\n
827
  *         APB2ENR      ADC2EN        LL_APB2_GRP1_DisableClock\n
828
  *         APB2ENR      ADC3EN        LL_APB2_GRP1_DisableClock\n
829
  *         APB2ENR      AFIOEN        LL_APB2_GRP1_DisableClock\n
830
  *         APB2ENR      IOPAEN        LL_APB2_GRP1_DisableClock\n
831
  *         APB2ENR      IOPBEN        LL_APB2_GRP1_DisableClock\n
832
  *         APB2ENR      IOPCEN        LL_APB2_GRP1_DisableClock\n
833
  *         APB2ENR      IOPDEN        LL_APB2_GRP1_DisableClock\n
834
  *         APB2ENR      IOPEEN        LL_APB2_GRP1_DisableClock\n
835
  *         APB2ENR      IOPFEN        LL_APB2_GRP1_DisableClock\n
836
  *         APB2ENR      IOPGEN        LL_APB2_GRP1_DisableClock\n
837
  *         APB2ENR      SPI1EN        LL_APB2_GRP1_DisableClock\n
838
  *         APB2ENR      TIM10EN       LL_APB2_GRP1_DisableClock\n
839
  *         APB2ENR      TIM11EN       LL_APB2_GRP1_DisableClock\n
840
  *         APB2ENR      TIM15EN       LL_APB2_GRP1_DisableClock\n
841
  *         APB2ENR      TIM16EN       LL_APB2_GRP1_DisableClock\n
842
  *         APB2ENR      TIM17EN       LL_APB2_GRP1_DisableClock\n
843
  *         APB2ENR      TIM1EN        LL_APB2_GRP1_DisableClock\n
844
  *         APB2ENR      TIM8EN        LL_APB2_GRP1_DisableClock\n
845
  *         APB2ENR      TIM9EN        LL_APB2_GRP1_DisableClock\n
846
  *         APB2ENR      USART1EN      LL_APB2_GRP1_DisableClock
847
  * @param  Periphs This parameter can be a combination of the following values:
848
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
849
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
850
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
851
  *         @arg @ref LL_APB2_GRP1_PERIPH_AFIO
852
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOA
853
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOB
854
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOC
855
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOD
856
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOE (*)
857
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOF (*)
858
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOG (*)
859
  *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
860
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
861
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11 (*)
862
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
863
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
864
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
865
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
866
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
867
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9 (*)
868
  *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
869
  *
870
  *         (*) value not defined in all devices.
871
  * @retval None
872
*/
873
__STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
874
{
875
  CLEAR_BIT(RCC->APB2ENR, Periphs);
876
}
877
 
878
/**
879
  * @brief  Force APB2 peripherals reset.
880
  * @rmtoll APB2RSTR     ADC1RST       LL_APB2_GRP1_ForceReset\n
881
  *         APB2RSTR     ADC2RST       LL_APB2_GRP1_ForceReset\n
882
  *         APB2RSTR     ADC3RST       LL_APB2_GRP1_ForceReset\n
883
  *         APB2RSTR     AFIORST       LL_APB2_GRP1_ForceReset\n
884
  *         APB2RSTR     IOPARST       LL_APB2_GRP1_ForceReset\n
885
  *         APB2RSTR     IOPBRST       LL_APB2_GRP1_ForceReset\n
886
  *         APB2RSTR     IOPCRST       LL_APB2_GRP1_ForceReset\n
887
  *         APB2RSTR     IOPDRST       LL_APB2_GRP1_ForceReset\n
888
  *         APB2RSTR     IOPERST       LL_APB2_GRP1_ForceReset\n
889
  *         APB2RSTR     IOPFRST       LL_APB2_GRP1_ForceReset\n
890
  *         APB2RSTR     IOPGRST       LL_APB2_GRP1_ForceReset\n
891
  *         APB2RSTR     SPI1RST       LL_APB2_GRP1_ForceReset\n
892
  *         APB2RSTR     TIM10RST      LL_APB2_GRP1_ForceReset\n
893
  *         APB2RSTR     TIM11RST      LL_APB2_GRP1_ForceReset\n
894
  *         APB2RSTR     TIM15RST      LL_APB2_GRP1_ForceReset\n
895
  *         APB2RSTR     TIM16RST      LL_APB2_GRP1_ForceReset\n
896
  *         APB2RSTR     TIM17RST      LL_APB2_GRP1_ForceReset\n
897
  *         APB2RSTR     TIM1RST       LL_APB2_GRP1_ForceReset\n
898
  *         APB2RSTR     TIM8RST       LL_APB2_GRP1_ForceReset\n
899
  *         APB2RSTR     TIM9RST       LL_APB2_GRP1_ForceReset\n
900
  *         APB2RSTR     USART1RST     LL_APB2_GRP1_ForceReset
901
  * @param  Periphs This parameter can be a combination of the following values:
902
  *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
903
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
904
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
905
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
906
  *         @arg @ref LL_APB2_GRP1_PERIPH_AFIO
907
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOA
908
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOB
909
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOC
910
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOD
911
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOE (*)
912
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOF (*)
913
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOG (*)
914
  *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
915
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
916
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11 (*)
917
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
918
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
919
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
920
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
921
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
922
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9 (*)
923
  *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
924
  *
925
  *         (*) value not defined in all devices.
926
  * @retval None
927
*/
928
__STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
929
{
930
  SET_BIT(RCC->APB2RSTR, Periphs);
931
}
932
 
933
/**
934
  * @brief  Release APB2 peripherals reset.
935
  * @rmtoll APB2RSTR     ADC1RST       LL_APB2_GRP1_ReleaseReset\n
936
  *         APB2RSTR     ADC2RST       LL_APB2_GRP1_ReleaseReset\n
937
  *         APB2RSTR     ADC3RST       LL_APB2_GRP1_ReleaseReset\n
938
  *         APB2RSTR     AFIORST       LL_APB2_GRP1_ReleaseReset\n
939
  *         APB2RSTR     IOPARST       LL_APB2_GRP1_ReleaseReset\n
940
  *         APB2RSTR     IOPBRST       LL_APB2_GRP1_ReleaseReset\n
941
  *         APB2RSTR     IOPCRST       LL_APB2_GRP1_ReleaseReset\n
942
  *         APB2RSTR     IOPDRST       LL_APB2_GRP1_ReleaseReset\n
943
  *         APB2RSTR     IOPERST       LL_APB2_GRP1_ReleaseReset\n
944
  *         APB2RSTR     IOPFRST       LL_APB2_GRP1_ReleaseReset\n
945
  *         APB2RSTR     IOPGRST       LL_APB2_GRP1_ReleaseReset\n
946
  *         APB2RSTR     SPI1RST       LL_APB2_GRP1_ReleaseReset\n
947
  *         APB2RSTR     TIM10RST      LL_APB2_GRP1_ReleaseReset\n
948
  *         APB2RSTR     TIM11RST      LL_APB2_GRP1_ReleaseReset\n
949
  *         APB2RSTR     TIM15RST      LL_APB2_GRP1_ReleaseReset\n
950
  *         APB2RSTR     TIM16RST      LL_APB2_GRP1_ReleaseReset\n
951
  *         APB2RSTR     TIM17RST      LL_APB2_GRP1_ReleaseReset\n
952
  *         APB2RSTR     TIM1RST       LL_APB2_GRP1_ReleaseReset\n
953
  *         APB2RSTR     TIM8RST       LL_APB2_GRP1_ReleaseReset\n
954
  *         APB2RSTR     TIM9RST       LL_APB2_GRP1_ReleaseReset\n
955
  *         APB2RSTR     USART1RST     LL_APB2_GRP1_ReleaseReset
956
  * @param  Periphs This parameter can be a combination of the following values:
957
  *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
958
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC1
959
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC2 (*)
960
  *         @arg @ref LL_APB2_GRP1_PERIPH_ADC3 (*)
961
  *         @arg @ref LL_APB2_GRP1_PERIPH_AFIO
962
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOA
963
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOB
964
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOC
965
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOD
966
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOE (*)
967
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOF (*)
968
  *         @arg @ref LL_APB2_GRP1_PERIPH_GPIOG (*)
969
  *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
970
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM10 (*)
971
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM11 (*)
972
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
973
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
974
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
975
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
976
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
977
  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9 (*)
978
  *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
979
  *
980
  *         (*) value not defined in all devices.
981
  * @retval None
982
*/
983
__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
984
{
985
  CLEAR_BIT(RCC->APB2RSTR, Periphs);
986
}
987
 
988
/**
989
  * @}
990
  */
991
 
992
 
993
/**
994
  * @}
995
  */
996
 
997
/**
998
  * @}
999
  */
1000
 
1001
#endif /* defined(RCC) */
1002
 
1003
/**
1004
  * @}
1005
  */
1006
 
1007
#ifdef __cplusplus
1008
}
1009
#endif
1010
 
1011
#endif /* __STM32F1xx_LL_BUS_H */
1012