Subversion Repositories dashGPS

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