Subversion Repositories DashDisplay

Rev

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

Rev Author Line No. Line
56 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32l1xx_ll_system.h
4
  * @author  MCD Application Team
5
  * @brief   Header file of SYSTEM LL module.
6
  @verbatim
7
  ==============================================================================
8
                     ##### How to use this driver #####
9
  ==============================================================================
10
    [..]
11
    The LL SYSTEM driver contains a set of generic APIs that can be
12
    used by user:
13
      (+) Some of the FLASH features need to be handled in the SYSTEM file.
14
      (+) Access to DBGCMU registers
15
      (+) Access to SYSCFG registers
16
      (+) Access to Routing Interfaces registers
17
 
18
  @endverbatim
19
  ******************************************************************************
20
  * @attention
21
  *
22
  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
23
  * All rights reserved.</center></h2>
24
  *
25
  * This software component is licensed by ST under BSD 3-Clause license,
26
  * the "License"; You may not use this file except in compliance with the
27
  * License. You may obtain a copy of the License at:
28
  *                        opensource.org/licenses/BSD-3-Clause
29
  *
30
  ******************************************************************************
31
  */
32
 
33
/* Define to prevent recursive inclusion -------------------------------------*/
34
#ifndef __STM32L1xx_LL_SYSTEM_H
35
#define __STM32L1xx_LL_SYSTEM_H
36
 
37
#ifdef __cplusplus
38
extern "C" {
39
#endif
40
 
41
/* Includes ------------------------------------------------------------------*/
42
#include "stm32l1xx.h"
43
 
44
/** @addtogroup STM32L1xx_LL_Driver
45
  * @{
46
  */
47
 
48
#if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI)
49
 
50
/** @defgroup SYSTEM_LL SYSTEM
51
  * @{
52
  */
53
 
54
/* Private types -------------------------------------------------------------*/
55
/* Private variables ---------------------------------------------------------*/
56
 
57
/* Private constants ---------------------------------------------------------*/
58
/** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
59
  * @{
60
  */
61
 
62
/**
63
 * @brief Power-down in Run mode Flash key
64
 */
65
#define FLASH_PDKEY1                  (0x04152637U) /*!< Flash power down key1 */
66
#define FLASH_PDKEY2                  (0xFAFBFCFDU) /*!< Flash power down key2: used with FLASH_PDKEY1
67
                                                       to unlock the RUN_PD bit in FLASH_ACR */
68
 
69
/**
70
  * @}
71
  */
72
 
73
/* Private macros ------------------------------------------------------------*/
74
 
75
/* Exported types ------------------------------------------------------------*/
76
/* Exported constants --------------------------------------------------------*/
77
/** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
78
  * @{
79
  */
80
 
81
/** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP
82
* @{
83
*/
84
#define LL_SYSCFG_REMAP_FLASH              (0x00000000U)                                         /*<! Main Flash memory mapped at 0x00000000 */
85
#define LL_SYSCFG_REMAP_SYSTEMFLASH        SYSCFG_MEMRMP_MEM_MODE_0                              /*<! System Flash memory mapped at 0x00000000 */
86
#define LL_SYSCFG_REMAP_SRAM               (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0) /*<! Embedded SRAM mapped at 0x00000000 */
87
#if defined(FSMC_R_BASE)
88
#define LL_SYSCFG_REMAP_FMC                SYSCFG_MEMRMP_MEM_MODE_1                              /*<! FSMC Bank1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 */
89
#endif /* FSMC_R_BASE */
90
/**
91
  * @}
92
  */
93
 
94
/** @defgroup SYSTEM_LL_EC_BOOT SYSCFG BOOT MODE
95
  * @{
96
  */
97
#define LL_SYSCFG_BOOTMODE_FLASH               (0x00000000U)             /*<! Main Flash memory boot mode */
98
#define LL_SYSCFG_BOOTMODE_SYSTEMFLASH         SYSCFG_MEMRMP_BOOT_MODE_0 /*<! System Flash memory boot mode */
99
#if defined(FSMC_BANK1)
100
#define LL_SYSCFG_BOOTMODE_FSMC                SYSCFG_MEMRMP_BOOT_MODE_1 /*<! FSMC boot mode */
101
#endif /* FSMC_BANK1 */
102
#define LL_SYSCFG_BOOTMODE_SRAM                SYSCFG_MEMRMP_BOOT_MODE   /*<! Embedded SRAM boot mode */
103
/**
104
  * @}
105
  */
106
 
107
#if defined(LCD)
108
/** @defgroup SYSTEM_LL_EC_LCDCAPA SYSCFG LCD capacitance connection
109
  * @{
110
  */
111
#define LL_SYSCFG_LCDCAPA_PB2              SYSCFG_PMC_LCD_CAPA_0 /*<! controls the connection of VLCDrail2 on PB2/LCD_VCAP2 */
112
#define LL_SYSCFG_LCDCAPA_PB12             SYSCFG_PMC_LCD_CAPA_1 /*<! controls the connection of VLCDrail1 on PB12/LCD_VCAP1 */
113
#define LL_SYSCFG_LCDCAPA_PB0              SYSCFG_PMC_LCD_CAPA_2 /*<! controls the connection of VLCDrail3 on PB0/LCD_VCAP3 */
114
#define LL_SYSCFG_LCDCAPA_PE11             SYSCFG_PMC_LCD_CAPA_3 /*<! controls the connection of VLCDrail1 on PE11/LCD_VCAP1 */
115
#define LL_SYSCFG_LCDCAPA_PE12             SYSCFG_PMC_LCD_CAPA_4 /*<! controls the connection of VLCDrail3 on PE12/LCD_VCAP3 */
116
/**
117
  * @}
118
  */
119
 
120
#endif /* LCD */
121
 
122
/** @defgroup SYSTEM_LL_EC_EXTI SYSCFG EXTI PORT
123
  * @{
124
  */
125
#define LL_SYSCFG_EXTI_PORTA               0U /*!< EXTI PORT A                        */
126
#define LL_SYSCFG_EXTI_PORTB               1U /*!< EXTI PORT B                        */
127
#define LL_SYSCFG_EXTI_PORTC               2U /*!< EXTI PORT C                        */
128
#define LL_SYSCFG_EXTI_PORTD               3U /*!< EXTI PORT D                        */
129
#if defined(GPIOE)
130
#define LL_SYSCFG_EXTI_PORTE               4U /*!< EXTI PORT E                        */
131
#endif /* GPIOE */
132
#if defined(GPIOF)
133
#define LL_SYSCFG_EXTI_PORTF               6U /*!< EXTI PORT F                        */
134
#endif /* GPIOF */
135
#if defined(GPIOG)
136
#define LL_SYSCFG_EXTI_PORTG               7U /*!< EXTI PORT G                        */
137
#endif /* GPIOG */
138
#define LL_SYSCFG_EXTI_PORTH               5U /*!< EXTI PORT H                        */
139
/**
140
  * @}
141
  */
142
 
143
/** @addtogroup SYSTEM_LL_EC_SYSCFG EXTI LINE
144
  * @{
145
  */
146
#define LL_SYSCFG_EXTI_LINE0               (uint32_t)(0x000FU << 16U | 0U)  /* EXTI_POSITION_0 | EXTICR[0] */
147
#define LL_SYSCFG_EXTI_LINE1               (uint32_t)(0x00F0U << 16U | 0U)  /* EXTI_POSITION_4 | EXTICR[0] */
148
#define LL_SYSCFG_EXTI_LINE2               (uint32_t)(0x0F00U << 16U | 0U)  /* EXTI_POSITION_8 | EXTICR[0] */
149
#define LL_SYSCFG_EXTI_LINE3               (uint32_t)(0xF000U << 16U | 0U)  /* EXTI_POSITION_12 | EXTICR[0] */
150
#define LL_SYSCFG_EXTI_LINE4               (uint32_t)(0x000FU << 16U | 1U)  /* EXTI_POSITION_0 | EXTICR[1] */
151
#define LL_SYSCFG_EXTI_LINE5               (uint32_t)(0x00F0U << 16U | 1U)  /* EXTI_POSITION_4 | EXTICR[1] */
152
#define LL_SYSCFG_EXTI_LINE6               (uint32_t)(0x0F00U << 16U | 1U)  /* EXTI_POSITION_8 | EXTICR[1] */
153
#define LL_SYSCFG_EXTI_LINE7               (uint32_t)(0xF000U << 16U | 1U)  /* EXTI_POSITION_12 | EXTICR[1] */
154
#define LL_SYSCFG_EXTI_LINE8               (uint32_t)(0x000FU << 16U | 2U)  /* EXTI_POSITION_0 | EXTICR[2] */
155
#define LL_SYSCFG_EXTI_LINE9               (uint32_t)(0x00F0U << 16U | 2U)  /* EXTI_POSITION_4 | EXTICR[2] */
156
#define LL_SYSCFG_EXTI_LINE10              (uint32_t)(0x0F00U << 16U | 2U)  /* EXTI_POSITION_8 | EXTICR[2] */
157
#define LL_SYSCFG_EXTI_LINE11              (uint32_t)(0xF000U << 16U | 2U)  /* EXTI_POSITION_12 | EXTICR[2] */
158
#define LL_SYSCFG_EXTI_LINE12              (uint32_t)(0x000FU << 16U | 3U)  /* EXTI_POSITION_0 | EXTICR[3] */
159
#define LL_SYSCFG_EXTI_LINE13              (uint32_t)(0x00F0U << 16U | 3U)  /* EXTI_POSITION_4 | EXTICR[3] */
160
#define LL_SYSCFG_EXTI_LINE14              (uint32_t)(0x0F00U << 16U | 3U)  /* EXTI_POSITION_8 | EXTICR[3] */
161
#define LL_SYSCFG_EXTI_LINE15              (uint32_t)(0xF000U << 16U | 3U)  /* EXTI_POSITION_12 | EXTICR[3] */
162
/**
163
  * @}
164
  */
165
 
166
/** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment
167
  * @{
168
  */
169
#define LL_DBGMCU_TRACE_NONE               0x00000000U                                     /*!< TRACE pins not assigned (default state) */
170
#define LL_DBGMCU_TRACE_ASYNCH             DBGMCU_CR_TRACE_IOEN                            /*!< TRACE pin assignment for Asynchronous Mode */
171
#define LL_DBGMCU_TRACE_SYNCH_SIZE1        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */
172
#define LL_DBGMCU_TRACE_SYNCH_SIZE2        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */
173
#define LL_DBGMCU_TRACE_SYNCH_SIZE4        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)   /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */
174
/**
175
  * @}
176
  */
177
 
178
/** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
179
  * @{
180
  */
181
#define LL_DBGMCU_APB1_GRP1_TIM2_STOP      DBGMCU_APB1_FZ_DBG_TIM2_STOP             /*!< TIM2 counter stopped when core is halted */
182
#define LL_DBGMCU_APB1_GRP1_TIM3_STOP      DBGMCU_APB1_FZ_DBG_TIM3_STOP             /*!< TIM3 counter stopped when core is halted */
183
#define LL_DBGMCU_APB1_GRP1_TIM4_STOP      DBGMCU_APB1_FZ_DBG_TIM4_STOP             /*!< TIM4 counter stopped when core is halted */
184
#if defined (DBGMCU_APB1_FZ_DBG_TIM5_STOP)
185
#define LL_DBGMCU_APB1_GRP1_TIM5_STOP      DBGMCU_APB1_FZ_DBG_TIM5_STOP             /*!< TIM5 counter stopped when core is halted */
186
#endif /* DBGMCU_APB1_FZ_DBG_TIM5_STOP */
187
#define LL_DBGMCU_APB1_GRP1_TIM6_STOP      DBGMCU_APB1_FZ_DBG_TIM6_STOP             /*!< TIM6 counter stopped when core is halted */
188
#define LL_DBGMCU_APB1_GRP1_TIM7_STOP      DBGMCU_APB1_FZ_DBG_TIM7_STOP             /*!< TIM7 counter stopped when core is halted */
189
#if defined (DBGMCU_APB1_FZ_DBG_RTC_STOP)
190
#define LL_DBGMCU_APB1_GRP1_RTC_STOP       DBGMCU_APB1_FZ_DBG_RTC_STOP              /*!< RTC Counter stopped when Core is halted */
191
#endif /* DBGMCU_APB1_FZ_DBG_RTC_STOP */
192
#define LL_DBGMCU_APB1_GRP1_WWDG_STOP      DBGMCU_APB1_FZ_DBG_WWDG_STOP             /*!< Debug Window Watchdog stopped when Core is halted */
193
#define LL_DBGMCU_APB1_GRP1_IWDG_STOP      DBGMCU_APB1_FZ_DBG_IWDG_STOP             /*!< Debug Independent Watchdog stopped when Core is halted */
194
#define LL_DBGMCU_APB1_GRP1_I2C1_STOP      DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT    /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
195
#define LL_DBGMCU_APB1_GRP1_I2C2_STOP      DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT    /*!< I2C2 SMBUS timeout mode stopped when Core is halted */
196
/**
197
  * @}
198
  */
199
 
200
/** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP
201
  * @{
202
  */
203
#define LL_DBGMCU_APB2_GRP1_TIM9_STOP      DBGMCU_APB2_FZ_DBG_TIM9_STOP             /*!< TIM9 counter stopped when core is halted */
204
#define LL_DBGMCU_APB2_GRP1_TIM10_STOP     DBGMCU_APB2_FZ_DBG_TIM10_STOP            /*!< TIM10 counter stopped when core is halted */
205
#define LL_DBGMCU_APB2_GRP1_TIM11_STOP     DBGMCU_APB2_FZ_DBG_TIM11_STOP            /*!< TIM11 counter stopped when core is halted */
206
/**
207
  * @}
208
  */
209
 
210
/** @defgroup SYSTEM_LL_EC_TIM_SELECT RI TIM selection
211
  * @{
212
  */
213
#define LL_RI_TIM_SELECT_NONE              (0x00000000U)           /*!< No timer selected */
214
#define LL_RI_TIM_SELECT_TIM2              RI_ICR_TIM_0            /*!< Timer 2 selected */
215
#define LL_RI_TIM_SELECT_TIM3              RI_ICR_TIM_1            /*!< Timer 3 selected */
216
#define LL_RI_TIM_SELECT_TIM4              RI_ICR_TIM              /*!< Timer 4 selected */
217
/**
218
  * @}
219
  */
220
 
221
/** @defgroup SYSTEM_LL_EC_INPUTCAPTURE RI Input Capture number
222
  * @{
223
  */
224
#define LL_RI_INPUTCAPTURE_1               (RI_ICR_IC1 | RI_ICR_IC1OS) /*!< Input Capture 1 select output */
225
#define LL_RI_INPUTCAPTURE_2               (RI_ICR_IC2 | RI_ICR_IC2OS) /*!< Input Capture 2 select output */
226
#define LL_RI_INPUTCAPTURE_3               (RI_ICR_IC3 | RI_ICR_IC3OS) /*!< Input Capture 3 select output */
227
#define LL_RI_INPUTCAPTURE_4               (RI_ICR_IC4 | RI_ICR_IC4OS) /*!< Input Capture 4 select output */
228
/**
229
  * @}
230
  */
231
 
232
/** @defgroup SYSTEM_LL_EC_INPUTCAPTUREROUTING RI Input Capture Routing
233
  * @{
234
  */
235
                                                         /* TIMx_IC1 TIMx_IC2  TIMx_IC3  TIMx_IC4   */
236
#define LL_RI_INPUTCAPTUREROUTING_0        (0x00000000U) /*!< PA0       PA1      PA2       PA3      */
237
#define LL_RI_INPUTCAPTUREROUTING_1        (0x00000001U) /*!< PA4       PA5      PA6       PA7      */
238
#define LL_RI_INPUTCAPTUREROUTING_2        (0x00000002U) /*!< PA8       PA9      PA10      PA11     */
239
#define LL_RI_INPUTCAPTUREROUTING_3        (0x00000003U) /*!< PA12      PA13     PA14      PA15     */
240
#define LL_RI_INPUTCAPTUREROUTING_4        (0x00000004U) /*!< PC0       PC1      PC2       PC3      */
241
#define LL_RI_INPUTCAPTUREROUTING_5        (0x00000005U) /*!< PC4       PC5      PC6       PC7      */
242
#define LL_RI_INPUTCAPTUREROUTING_6        (0x00000006U) /*!< PC8       PC9      PC10      PC11     */
243
#define LL_RI_INPUTCAPTUREROUTING_7        (0x00000007U) /*!< PC12      PC13     PC14      PC15     */
244
#define LL_RI_INPUTCAPTUREROUTING_8        (0x00000008U) /*!< PD0       PD1      PD2       PD3      */
245
#define LL_RI_INPUTCAPTUREROUTING_9        (0x00000009U) /*!< PD4       PD5      PD6       PD7      */
246
#define LL_RI_INPUTCAPTUREROUTING_10       (0x0000000AU) /*!< PD8       PD9      PD10      PD11     */
247
#define LL_RI_INPUTCAPTUREROUTING_11       (0x0000000BU) /*!< PD12      PD13     PD14      PD15     */
248
#if defined(GPIOE)
249
#define LL_RI_INPUTCAPTUREROUTING_12       (0x0000000CU) /*!< PE0       PE1      PE2       PE3      */
250
#define LL_RI_INPUTCAPTUREROUTING_13       (0x0000000DU) /*!< PE4       PE5      PE6       PE7      */
251
#define LL_RI_INPUTCAPTUREROUTING_14       (0x0000000EU) /*!< PE8       PE9      PE10      PE11     */
252
#define LL_RI_INPUTCAPTUREROUTING_15       (0x0000000FU) /*!< PE12      PE13     PE14      PE15     */
253
#endif /* GPIOE */
254
/**
255
  * @}
256
  */
257
 
258
/** @defgroup SYSTEM_LL_EC_IOSWITCH_LINKED_ADC RI IO Switch linked to ADC
259
  * @{
260
  */
261
#define LL_RI_IOSWITCH_CH0                 RI_ASCR1_CH_0    /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
262
#define LL_RI_IOSWITCH_CH1                 RI_ASCR1_CH_1    /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
263
#define LL_RI_IOSWITCH_CH2                 RI_ASCR1_CH_2    /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
264
#define LL_RI_IOSWITCH_CH3                 RI_ASCR1_CH_3    /*!< CH[3:0] GR1[4:1]: I/O Analog switch control */
265
#define LL_RI_IOSWITCH_CH4                 RI_ASCR1_CH_4    /*!< CH4: Analog switch control     */
266
#define LL_RI_IOSWITCH_CH5                 RI_ASCR1_CH_5    /*!< CH5: Comparator 1 analog switch*/
267
#define LL_RI_IOSWITCH_CH6                 RI_ASCR1_CH_6    /*!< CH[7:6] GR2[2:1]: I/O Analog switch control */
268
#define LL_RI_IOSWITCH_CH7                 RI_ASCR1_CH_7    /*!< CH[7:6] GR2[2:1]: I/O Analog switch control */
269
#define LL_RI_IOSWITCH_CH8                 RI_ASCR1_CH_8    /*!< CH[9:8] GR3[2:1]: I/O Analog switch control */
270
#define LL_RI_IOSWITCH_CH9                 RI_ASCR1_CH_9    /*!< CH[9:8] GR3[2:1]: I/O Analog switch control */
271
#define LL_RI_IOSWITCH_CH10                RI_ASCR1_CH_10   /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
272
#define LL_RI_IOSWITCH_CH11                RI_ASCR1_CH_11   /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
273
#define LL_RI_IOSWITCH_CH12                RI_ASCR1_CH_12   /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
274
#define LL_RI_IOSWITCH_CH13                RI_ASCR1_CH_13   /*!< CH[13:10] GR8[4:1]: I/O Analog switch control */
275
#define LL_RI_IOSWITCH_CH14                RI_ASCR1_CH_14   /*!< CH[15:14] GR9[2:1]: I/O Analog switch control */
276
#define LL_RI_IOSWITCH_CH15                RI_ASCR1_CH_15   /*!< CH[15:14] GR9[2:1]: I/O Analog switch control */
277
#define LL_RI_IOSWITCH_CH18                RI_ASCR1_CH_18   /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
278
#define LL_RI_IOSWITCH_CH19                RI_ASCR1_CH_19   /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
279
#define LL_RI_IOSWITCH_CH20                RI_ASCR1_CH_20   /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
280
#define LL_RI_IOSWITCH_CH21                RI_ASCR1_CH_21   /*!< CH[21:18]/GR7[4:1]: I/O Analog switch control */
281
#define LL_RI_IOSWITCH_CH22                RI_ASCR1_CH_22   /*!< Analog I/O switch control of channels CH22 */
282
#define LL_RI_IOSWITCH_CH23                RI_ASCR1_CH_23   /*!< Analog I/O switch control of channels CH23  */
283
#define LL_RI_IOSWITCH_CH24                RI_ASCR1_CH_24   /*!< Analog I/O switch control of channels CH24  */
284
#define LL_RI_IOSWITCH_CH25                RI_ASCR1_CH_25   /*!< Analog I/O switch control of channels CH25  */
285
#define LL_RI_IOSWITCH_VCOMP               RI_ASCR1_VCOMP   /*!< VCOMP (ADC channel 26) is an internal switch
286
                                                                 used to connect selected channel to COMP1 non inverting input */
287
#if defined(RI_ASCR1_CH_27)
288
#define LL_RI_IOSWITCH_CH27                RI_ASCR1_CH_27   /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
289
#define LL_RI_IOSWITCH_CH28                RI_ASCR1_CH_28   /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
290
#define LL_RI_IOSWITCH_CH29                RI_ASCR1_CH_29   /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
291
#define LL_RI_IOSWITCH_CH30                RI_ASCR1_CH_30   /*!< CH[30:27]/GR11[4:1]: I/O Analog switch control */
292
#define LL_RI_IOSWITCH_CH31                RI_ASCR1_CH_31   /*!< CH31/GR11-5 I/O Analog switch control */
293
#endif /* RI_ASCR1_CH_27 */
294
/**
295
  * @}
296
  */
297
 
298
/** @defgroup SYSTEM_LL_EC_IOSWITCH_NOT_LINKED_ADC RI IO Switch not linked to ADC
299
  * @{
300
  */
301
#define LL_RI_IOSWITCH_GR10_1              RI_ASCR2_GR10_1 /*!< GR10-1 I/O analog switch control */
302
#define LL_RI_IOSWITCH_GR10_2              RI_ASCR2_GR10_2 /*!< GR10-2 I/O analog switch control */
303
#define LL_RI_IOSWITCH_GR10_3              RI_ASCR2_GR10_3 /*!< GR10-3 I/O analog switch control */
304
#define LL_RI_IOSWITCH_GR10_4              RI_ASCR2_GR10_4 /*!< GR10-4 I/O analog switch control */
305
#define LL_RI_IOSWITCH_GR6_1               RI_ASCR2_GR6_1  /*!< GR6-1 I/O analog switch control  */
306
#define LL_RI_IOSWITCH_GR6_2               RI_ASCR2_GR6_2  /*!< GR6-2 I/O analog switch control  */
307
#define LL_RI_IOSWITCH_GR5_1               RI_ASCR2_GR5_1  /*!< GR5-1 I/O analog switch control  */
308
#define LL_RI_IOSWITCH_GR5_2               RI_ASCR2_GR5_2  /*!< GR5-2 I/O analog switch control  */
309
#define LL_RI_IOSWITCH_GR5_3               RI_ASCR2_GR5_3  /*!< GR5-3 I/O analog switch control  */
310
#define LL_RI_IOSWITCH_GR4_1               RI_ASCR2_GR4_1  /*!< GR4-1 I/O analog switch control  */
311
#define LL_RI_IOSWITCH_GR4_2               RI_ASCR2_GR4_2  /*!< GR4-2 I/O analog switch control  */
312
#define LL_RI_IOSWITCH_GR4_3               RI_ASCR2_GR4_3  /*!< GR4-3 I/O analog switch control  */
313
#if defined(RI_ASCR2_CH0b)
314
#define LL_RI_IOSWITCH_CH0b                RI_ASCR2_CH0b   /*!< CH0b-GR03-3 I/O analog switch control  */
315
#if defined(RI_ASCR2_CH1b)
316
#define LL_RI_IOSWITCH_CH1b                RI_ASCR2_CH1b   /*!< CH1b-GR03-4 I/O analog switch control  */
317
#define LL_RI_IOSWITCH_CH2b                RI_ASCR2_CH2b   /*!< CH2b-GR03-5 I/O analog switch control  */
318
#define LL_RI_IOSWITCH_CH3b                RI_ASCR2_CH3b   /*!< CH3b-GR09-3 I/O analog switch control  */
319
#define LL_RI_IOSWITCH_CH6b                RI_ASCR2_CH6b   /*!< CH6b-GR09-4 I/O analog switch control  */
320
#define LL_RI_IOSWITCH_CH7b                RI_ASCR2_CH7b   /*!< CH7b-GR02-3 I/O analog switch control  */
321
#define LL_RI_IOSWITCH_CH8b                RI_ASCR2_CH8b   /*!< CH8b-GR02-4 I/O analog switch control  */
322
#define LL_RI_IOSWITCH_CH9b                RI_ASCR2_CH9b   /*!< CH9b-GR02-5 I/O analog switch control  */
323
#define LL_RI_IOSWITCH_CH10b               RI_ASCR2_CH10b  /*!< CH10b-GR07-5 I/O analog switch control */
324
#define LL_RI_IOSWITCH_CH11b               RI_ASCR2_CH11b  /*!< CH11b-GR07-6 I/O analog switch control */
325
#define LL_RI_IOSWITCH_CH12b               RI_ASCR2_CH12b  /*!< CH12b-GR07-7 I/O analog switch control */
326
#endif /* RI_ASCR2_CH1b */
327
#define LL_RI_IOSWITCH_GR6_3               RI_ASCR2_GR6_3  /*!< GR6-3 I/O analog switch control  */
328
#define LL_RI_IOSWITCH_GR6_4               RI_ASCR2_GR6_4  /*!< GR6-4 I/O analog switch control  */
329
#endif /* RI_ASCR2_CH0b */
330
/**
331
  * @}
332
  */
333
 
334
/** @defgroup SYSTEM_LL_EC_HSYTERESIS_PORT RI HSYTERESIS PORT
335
  * @{
336
  */
337
#define LL_RI_HSYTERESIS_PORT_A            0U         /*!< HYSTERESIS PORT A  */
338
#define LL_RI_HSYTERESIS_PORT_B            1U         /*!< HYSTERESIS PORT B  */
339
#define LL_RI_HSYTERESIS_PORT_C            2U         /*!< HYSTERESIS PORT C  */
340
#define LL_RI_HSYTERESIS_PORT_D            3U         /*!< HYSTERESIS PORT D  */
341
#if defined(GPIOE)
342
#define LL_RI_HSYTERESIS_PORT_E            4U         /*!< HYSTERESIS PORT E  */
343
#endif /* GPIOE */
344
#if defined(GPIOF)
345
#define LL_RI_HSYTERESIS_PORT_F            5U         /*!< HYSTERESIS PORT F  */
346
#endif /* GPIOF */
347
#if defined(GPIOG)
348
#define LL_RI_HSYTERESIS_PORT_G            6U         /*!< HYSTERESIS PORT G  */
349
#endif /* GPIOG */
350
/**
351
  * @}
352
  */
353
 
354
/** @defgroup SYSTEM_LL_EC_PIN RI PIN
355
  * @{
356
  */
357
#define LL_RI_PIN_0                        ((uint16_t)0x0001U)  /*!< Pin 0 selected */
358
#define LL_RI_PIN_1                        ((uint16_t)0x0002U)  /*!< Pin 1 selected */
359
#define LL_RI_PIN_2                        ((uint16_t)0x0004U)  /*!< Pin 2 selected */
360
#define LL_RI_PIN_3                        ((uint16_t)0x0008U)  /*!< Pin 3 selected */
361
#define LL_RI_PIN_4                        ((uint16_t)0x0010U)  /*!< Pin 4 selected */
362
#define LL_RI_PIN_5                        ((uint16_t)0x0020U)  /*!< Pin 5 selected */
363
#define LL_RI_PIN_6                        ((uint16_t)0x0040U)  /*!< Pin 6 selected */
364
#define LL_RI_PIN_7                        ((uint16_t)0x0080U)  /*!< Pin 7 selected */
365
#define LL_RI_PIN_8                        ((uint16_t)0x0100U)  /*!< Pin 8 selected */
366
#define LL_RI_PIN_9                        ((uint16_t)0x0200U)  /*!< Pin 9 selected */
367
#define LL_RI_PIN_10                       ((uint16_t)0x0400U)  /*!< Pin 10 selected */
368
#define LL_RI_PIN_11                       ((uint16_t)0x0800U)  /*!< Pin 11 selected */
369
#define LL_RI_PIN_12                       ((uint16_t)0x1000U)  /*!< Pin 12 selected */
370
#define LL_RI_PIN_13                       ((uint16_t)0x2000U)  /*!< Pin 13 selected */
371
#define LL_RI_PIN_14                       ((uint16_t)0x4000U)  /*!< Pin 14 selected */
372
#define LL_RI_PIN_15                       ((uint16_t)0x8000U)  /*!< Pin 15 selected */
373
#define LL_RI_PIN_ALL                      ((uint16_t)0xFFFFU)  /*!< All pins selected */
374
/**
375
  * @}
376
  */
377
 
378
#if defined(RI_ASMR1_PA)
379
/** @defgroup SYSTEM_LL_EC_PORT RI PORT
380
  * @{
381
  */
382
#define LL_RI_PORT_A                       0U         /*!< PORT A   */
383
#define LL_RI_PORT_B                       1U         /*!< PORT B   */
384
#define LL_RI_PORT_C                       2U         /*!< PORT C   */
385
#if defined(GPIOF)
386
#define LL_RI_PORT_F                       3U         /*!< PORT F   */
387
#endif /* GPIOF */
388
#if defined(GPIOG)
389
#define LL_RI_PORT_G                       4U         /*!< PORT G   */
390
#endif /* GPIOG */
391
/**
392
  * @}
393
  */
394
 
395
#endif /* RI_ASMR1_PA */
396
 
397
 
398
/** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
399
  * @{
400
  */
401
#define LL_FLASH_LATENCY_0                 0x00000000U             /*!< FLASH Zero Latency cycle */
402
#define LL_FLASH_LATENCY_1                 FLASH_ACR_LATENCY       /*!< FLASH One Latency cycle */
403
/**
404
  * @}
405
  */
406
 
407
/**
408
  * @}
409
  */
410
 
411
/* Exported macro ------------------------------------------------------------*/
412
 
413
/* Exported functions --------------------------------------------------------*/
414
/** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
415
  * @{
416
  */
417
 
418
/** @defgroup SYSTEM_LL_EF_SYSCFG SYSCFG
419
  * @{
420
  */
421
 
422
/**
423
  * @brief  Set memory mapping at address 0x00000000
424
  * @rmtoll SYSCFG_MEMRMP MEM_MODE      LL_SYSCFG_SetRemapMemory
425
  * @param  Memory This parameter can be one of the following values:
426
  *         @arg @ref LL_SYSCFG_REMAP_FLASH
427
  *         @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
428
  *         @arg @ref LL_SYSCFG_REMAP_SRAM
429
  *         @arg @ref LL_SYSCFG_REMAP_FMC (*)
430
  *
431
  *         (*) value not defined in all devices
432
  * @retval None
433
  */
434
__STATIC_INLINE void LL_SYSCFG_SetRemapMemory(uint32_t Memory)
435
{
436
  MODIFY_REG(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE, Memory);
437
}
438
 
439
/**
440
  * @brief  Get memory mapping at address 0x00000000
441
  * @rmtoll SYSCFG_MEMRMP MEM_MODE      LL_SYSCFG_GetRemapMemory
442
  * @retval Returned value can be one of the following values:
443
  *         @arg @ref LL_SYSCFG_REMAP_FLASH
444
  *         @arg @ref LL_SYSCFG_REMAP_SYSTEMFLASH
445
  *         @arg @ref LL_SYSCFG_REMAP_SRAM
446
  *         @arg @ref LL_SYSCFG_REMAP_FMC (*)
447
  *
448
  *         (*) value not defined in all devices.
449
  */
450
__STATIC_INLINE uint32_t LL_SYSCFG_GetRemapMemory(void)
451
{
452
  return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_MEM_MODE));
453
}
454
 
455
/**
456
  * @brief  Return the boot mode as configured by user.
457
  * @rmtoll SYSCFG_MEMRMP BOOT_MODE     LL_SYSCFG_GetBootMode
458
  * @retval Returned value can be one of the following values:
459
  *         @arg @ref LL_SYSCFG_BOOTMODE_FLASH
460
  *         @arg @ref LL_SYSCFG_BOOTMODE_SYSTEMFLASH
461
  *         @arg @ref LL_SYSCFG_BOOTMODE_FSMC (*)
462
  *         @arg @ref LL_SYSCFG_BOOTMODE_SRAM
463
  *
464
  *         (*) value not defined in all devices.
465
  */
466
__STATIC_INLINE uint32_t LL_SYSCFG_GetBootMode(void)
467
{
468
  return (uint32_t)(READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_BOOT_MODE));
469
}
470
 
471
/**
472
  * @brief  Enable internal pull-up on USB DP line.
473
  * @rmtoll SYSCFG_PMC   USB_PU        LL_SYSCFG_EnableUSBPullUp
474
  * @retval None
475
  */
476
__STATIC_INLINE void LL_SYSCFG_EnableUSBPullUp(void)
477
{
478
  SET_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU);
479
}
480
 
481
/**
482
  * @brief  Disable internal pull-up on USB DP line.
483
  * @rmtoll SYSCFG_PMC   USB_PU        LL_SYSCFG_DisableUSBPullUp
484
  * @retval None
485
  */
486
__STATIC_INLINE void LL_SYSCFG_DisableUSBPullUp(void)
487
{
488
  CLEAR_BIT(SYSCFG->PMC, SYSCFG_PMC_USB_PU);
489
}
490
 
491
#if defined(LCD)
492
/**
493
  * @brief  Enable decoupling capacitance connection.
494
  * @rmtoll SYSCFG_PMC   LCD_CAPA      LL_SYSCFG_EnableLCDCapacitanceConnection
495
  * @param  Pin This parameter can be a combination of the following values:
496
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB2
497
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB12
498
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB0
499
  *         @arg @ref LL_SYSCFG_LCDCAPA_PE11
500
  *         @arg @ref LL_SYSCFG_LCDCAPA_PE12
501
  * @retval None
502
  */
503
__STATIC_INLINE void LL_SYSCFG_EnableLCDCapacitanceConnection(uint32_t Pin)
504
{
505
  SET_BIT(SYSCFG->PMC, Pin);
506
}
507
 
508
/**
509
  * @brief  DIsable decoupling capacitance connection.
510
  * @rmtoll SYSCFG_PMC   LCD_CAPA      LL_SYSCFG_DisableLCDCapacitanceConnection
511
  * @param  Pin This parameter can be a combination of the following values:
512
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB2
513
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB12
514
  *         @arg @ref LL_SYSCFG_LCDCAPA_PB0
515
  *         @arg @ref LL_SYSCFG_LCDCAPA_PE11
516
  *         @arg @ref LL_SYSCFG_LCDCAPA_PE12
517
  * @retval None
518
  */
519
__STATIC_INLINE void LL_SYSCFG_DisableLCDCapacitanceConnection(uint32_t Pin)
520
{
521
  CLEAR_BIT(SYSCFG->PMC, Pin);
522
}
523
#endif /* LCD */
524
 
525
/**
526
  * @brief  Configure source input for the EXTI external interrupt.
527
  * @rmtoll SYSCFG_EXTICR1 EXTI0         LL_SYSCFG_SetEXTISource\n
528
  *         SYSCFG_EXTICR1 EXTI1         LL_SYSCFG_SetEXTISource\n
529
  *         SYSCFG_EXTICR1 EXTI2         LL_SYSCFG_SetEXTISource\n
530
  *         SYSCFG_EXTICR1 EXTI3         LL_SYSCFG_SetEXTISource\n
531
  *         SYSCFG_EXTICR1 EXTI4         LL_SYSCFG_SetEXTISource\n
532
  *         SYSCFG_EXTICR1 EXTI5         LL_SYSCFG_SetEXTISource\n
533
  *         SYSCFG_EXTICR1 EXTI6         LL_SYSCFG_SetEXTISource\n
534
  *         SYSCFG_EXTICR1 EXTI7         LL_SYSCFG_SetEXTISource\n
535
  *         SYSCFG_EXTICR1 EXTI8         LL_SYSCFG_SetEXTISource\n
536
  *         SYSCFG_EXTICR1 EXTI9         LL_SYSCFG_SetEXTISource\n
537
  *         SYSCFG_EXTICR1 EXTI10        LL_SYSCFG_SetEXTISource\n
538
  *         SYSCFG_EXTICR1 EXTI11        LL_SYSCFG_SetEXTISource\n
539
  *         SYSCFG_EXTICR1 EXTI12        LL_SYSCFG_SetEXTISource\n
540
  *         SYSCFG_EXTICR1 EXTI13        LL_SYSCFG_SetEXTISource\n
541
  *         SYSCFG_EXTICR1 EXTI14        LL_SYSCFG_SetEXTISource\n
542
  *         SYSCFG_EXTICR1 EXTI15        LL_SYSCFG_SetEXTISource\n
543
  *         SYSCFG_EXTICR2 EXTI0         LL_SYSCFG_SetEXTISource\n
544
  *         SYSCFG_EXTICR2 EXTI1         LL_SYSCFG_SetEXTISource\n
545
  *         SYSCFG_EXTICR2 EXTI2         LL_SYSCFG_SetEXTISource\n
546
  *         SYSCFG_EXTICR2 EXTI3         LL_SYSCFG_SetEXTISource\n
547
  *         SYSCFG_EXTICR2 EXTI4         LL_SYSCFG_SetEXTISource\n
548
  *         SYSCFG_EXTICR2 EXTI5         LL_SYSCFG_SetEXTISource\n
549
  *         SYSCFG_EXTICR2 EXTI6         LL_SYSCFG_SetEXTISource\n
550
  *         SYSCFG_EXTICR2 EXTI7         LL_SYSCFG_SetEXTISource\n
551
  *         SYSCFG_EXTICR2 EXTI8         LL_SYSCFG_SetEXTISource\n
552
  *         SYSCFG_EXTICR2 EXTI9         LL_SYSCFG_SetEXTISource\n
553
  *         SYSCFG_EXTICR2 EXTI10        LL_SYSCFG_SetEXTISource\n
554
  *         SYSCFG_EXTICR2 EXTI11        LL_SYSCFG_SetEXTISource\n
555
  *         SYSCFG_EXTICR2 EXTI12        LL_SYSCFG_SetEXTISource\n
556
  *         SYSCFG_EXTICR2 EXTI13        LL_SYSCFG_SetEXTISource\n
557
  *         SYSCFG_EXTICR2 EXTI14        LL_SYSCFG_SetEXTISource\n
558
  *         SYSCFG_EXTICR2 EXTI15        LL_SYSCFG_SetEXTISource\n
559
  *         SYSCFG_EXTICR3 EXTI0         LL_SYSCFG_SetEXTISource\n
560
  *         SYSCFG_EXTICR3 EXTI1         LL_SYSCFG_SetEXTISource\n
561
  *         SYSCFG_EXTICR3 EXTI2         LL_SYSCFG_SetEXTISource\n
562
  *         SYSCFG_EXTICR3 EXTI3         LL_SYSCFG_SetEXTISource\n
563
  *         SYSCFG_EXTICR3 EXTI4         LL_SYSCFG_SetEXTISource\n
564
  *         SYSCFG_EXTICR3 EXTI5         LL_SYSCFG_SetEXTISource\n
565
  *         SYSCFG_EXTICR3 EXTI6         LL_SYSCFG_SetEXTISource\n
566
  *         SYSCFG_EXTICR3 EXTI7         LL_SYSCFG_SetEXTISource\n
567
  *         SYSCFG_EXTICR3 EXTI8         LL_SYSCFG_SetEXTISource\n
568
  *         SYSCFG_EXTICR3 EXTI9         LL_SYSCFG_SetEXTISource\n
569
  *         SYSCFG_EXTICR3 EXTI10        LL_SYSCFG_SetEXTISource\n
570
  *         SYSCFG_EXTICR3 EXTI11        LL_SYSCFG_SetEXTISource\n
571
  *         SYSCFG_EXTICR3 EXTI12        LL_SYSCFG_SetEXTISource\n
572
  *         SYSCFG_EXTICR3 EXTI13        LL_SYSCFG_SetEXTISource\n
573
  *         SYSCFG_EXTICR3 EXTI14        LL_SYSCFG_SetEXTISource\n
574
  *         SYSCFG_EXTICR3 EXTI15        LL_SYSCFG_SetEXTISource\n
575
  *         SYSCFG_EXTICR4 EXTI0         LL_SYSCFG_SetEXTISource\n
576
  *         SYSCFG_EXTICR4 EXTI1         LL_SYSCFG_SetEXTISource\n
577
  *         SYSCFG_EXTICR4 EXTI2         LL_SYSCFG_SetEXTISource\n
578
  *         SYSCFG_EXTICR4 EXTI3         LL_SYSCFG_SetEXTISource\n
579
  *         SYSCFG_EXTICR4 EXTI4         LL_SYSCFG_SetEXTISource\n
580
  *         SYSCFG_EXTICR4 EXTI5         LL_SYSCFG_SetEXTISource\n
581
  *         SYSCFG_EXTICR4 EXTI6         LL_SYSCFG_SetEXTISource\n
582
  *         SYSCFG_EXTICR4 EXTI7         LL_SYSCFG_SetEXTISource\n
583
  *         SYSCFG_EXTICR4 EXTI8         LL_SYSCFG_SetEXTISource\n
584
  *         SYSCFG_EXTICR4 EXTI9         LL_SYSCFG_SetEXTISource\n
585
  *         SYSCFG_EXTICR4 EXTI10        LL_SYSCFG_SetEXTISource\n
586
  *         SYSCFG_EXTICR4 EXTI11        LL_SYSCFG_SetEXTISource\n
587
  *         SYSCFG_EXTICR4 EXTI12        LL_SYSCFG_SetEXTISource\n
588
  *         SYSCFG_EXTICR4 EXTI13        LL_SYSCFG_SetEXTISource\n
589
  *         SYSCFG_EXTICR4 EXTI14        LL_SYSCFG_SetEXTISource\n
590
  *         SYSCFG_EXTICR4 EXTI15        LL_SYSCFG_SetEXTISource
591
  * @param  Port This parameter can be one of the following values:
592
  *         @arg @ref LL_SYSCFG_EXTI_PORTA
593
  *         @arg @ref LL_SYSCFG_EXTI_PORTB
594
  *         @arg @ref LL_SYSCFG_EXTI_PORTC
595
  *         @arg @ref LL_SYSCFG_EXTI_PORTD
596
  *         @arg @ref LL_SYSCFG_EXTI_PORTE (*)
597
  *         @arg @ref LL_SYSCFG_EXTI_PORTF (*)
598
  *         @arg @ref LL_SYSCFG_EXTI_PORTG (*)
599
  *         @arg @ref LL_SYSCFG_EXTI_PORTH
600
  *
601
  *         (*) value not defined in all devices.
602
  * @param  Line This parameter can be one of the following values:
603
  *         @arg @ref LL_SYSCFG_EXTI_LINE0
604
  *         @arg @ref LL_SYSCFG_EXTI_LINE1
605
  *         @arg @ref LL_SYSCFG_EXTI_LINE2
606
  *         @arg @ref LL_SYSCFG_EXTI_LINE3
607
  *         @arg @ref LL_SYSCFG_EXTI_LINE4
608
  *         @arg @ref LL_SYSCFG_EXTI_LINE5
609
  *         @arg @ref LL_SYSCFG_EXTI_LINE6
610
  *         @arg @ref LL_SYSCFG_EXTI_LINE7
611
  *         @arg @ref LL_SYSCFG_EXTI_LINE8
612
  *         @arg @ref LL_SYSCFG_EXTI_LINE9
613
  *         @arg @ref LL_SYSCFG_EXTI_LINE10
614
  *         @arg @ref LL_SYSCFG_EXTI_LINE11
615
  *         @arg @ref LL_SYSCFG_EXTI_LINE12
616
  *         @arg @ref LL_SYSCFG_EXTI_LINE13
617
  *         @arg @ref LL_SYSCFG_EXTI_LINE14
618
  *         @arg @ref LL_SYSCFG_EXTI_LINE15
619
  * @retval None
620
  */
621
__STATIC_INLINE void LL_SYSCFG_SetEXTISource(uint32_t Port, uint32_t Line)
622
{
623
  MODIFY_REG(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16), Port << POSITION_VAL((Line >> 16)));
624
}
625
 
626
/**
627
  * @brief  Get the configured defined for specific EXTI Line
628
  * @rmtoll SYSCFG_EXTICR1 EXTI0         LL_SYSCFG_GetEXTISource\n
629
  *         SYSCFG_EXTICR1 EXTI1         LL_SYSCFG_GetEXTISource\n
630
  *         SYSCFG_EXTICR1 EXTI2         LL_SYSCFG_GetEXTISource\n
631
  *         SYSCFG_EXTICR1 EXTI3         LL_SYSCFG_GetEXTISource\n
632
  *         SYSCFG_EXTICR1 EXTI4         LL_SYSCFG_GetEXTISource\n
633
  *         SYSCFG_EXTICR1 EXTI5         LL_SYSCFG_GetEXTISource\n
634
  *         SYSCFG_EXTICR1 EXTI6         LL_SYSCFG_GetEXTISource\n
635
  *         SYSCFG_EXTICR1 EXTI7         LL_SYSCFG_GetEXTISource\n
636
  *         SYSCFG_EXTICR1 EXTI8         LL_SYSCFG_GetEXTISource\n
637
  *         SYSCFG_EXTICR1 EXTI9         LL_SYSCFG_GetEXTISource\n
638
  *         SYSCFG_EXTICR1 EXTI10        LL_SYSCFG_GetEXTISource\n
639
  *         SYSCFG_EXTICR1 EXTI11        LL_SYSCFG_GetEXTISource\n
640
  *         SYSCFG_EXTICR1 EXTI12        LL_SYSCFG_GetEXTISource\n
641
  *         SYSCFG_EXTICR1 EXTI13        LL_SYSCFG_GetEXTISource\n
642
  *         SYSCFG_EXTICR1 EXTI14        LL_SYSCFG_GetEXTISource\n
643
  *         SYSCFG_EXTICR1 EXTI15        LL_SYSCFG_GetEXTISource\n
644
  *         SYSCFG_EXTICR2 EXTI0         LL_SYSCFG_GetEXTISource\n
645
  *         SYSCFG_EXTICR2 EXTI1         LL_SYSCFG_GetEXTISource\n
646
  *         SYSCFG_EXTICR2 EXTI2         LL_SYSCFG_GetEXTISource\n
647
  *         SYSCFG_EXTICR2 EXTI3         LL_SYSCFG_GetEXTISource\n
648
  *         SYSCFG_EXTICR2 EXTI4         LL_SYSCFG_GetEXTISource\n
649
  *         SYSCFG_EXTICR2 EXTI5         LL_SYSCFG_GetEXTISource\n
650
  *         SYSCFG_EXTICR2 EXTI6         LL_SYSCFG_GetEXTISource\n
651
  *         SYSCFG_EXTICR2 EXTI7         LL_SYSCFG_GetEXTISource\n
652
  *         SYSCFG_EXTICR2 EXTI8         LL_SYSCFG_GetEXTISource\n
653
  *         SYSCFG_EXTICR2 EXTI9         LL_SYSCFG_GetEXTISource\n
654
  *         SYSCFG_EXTICR2 EXTI10        LL_SYSCFG_GetEXTISource\n
655
  *         SYSCFG_EXTICR2 EXTI11        LL_SYSCFG_GetEXTISource\n
656
  *         SYSCFG_EXTICR2 EXTI12        LL_SYSCFG_GetEXTISource\n
657
  *         SYSCFG_EXTICR2 EXTI13        LL_SYSCFG_GetEXTISource\n
658
  *         SYSCFG_EXTICR2 EXTI14        LL_SYSCFG_GetEXTISource\n
659
  *         SYSCFG_EXTICR2 EXTI15        LL_SYSCFG_GetEXTISource\n
660
  *         SYSCFG_EXTICR3 EXTI0         LL_SYSCFG_GetEXTISource\n
661
  *         SYSCFG_EXTICR3 EXTI1         LL_SYSCFG_GetEXTISource\n
662
  *         SYSCFG_EXTICR3 EXTI2         LL_SYSCFG_GetEXTISource\n
663
  *         SYSCFG_EXTICR3 EXTI3         LL_SYSCFG_GetEXTISource\n
664
  *         SYSCFG_EXTICR3 EXTI4         LL_SYSCFG_GetEXTISource\n
665
  *         SYSCFG_EXTICR3 EXTI5         LL_SYSCFG_GetEXTISource\n
666
  *         SYSCFG_EXTICR3 EXTI6         LL_SYSCFG_GetEXTISource\n
667
  *         SYSCFG_EXTICR3 EXTI7         LL_SYSCFG_GetEXTISource\n
668
  *         SYSCFG_EXTICR3 EXTI8         LL_SYSCFG_GetEXTISource\n
669
  *         SYSCFG_EXTICR3 EXTI9         LL_SYSCFG_GetEXTISource\n
670
  *         SYSCFG_EXTICR3 EXTI10        LL_SYSCFG_GetEXTISource\n
671
  *         SYSCFG_EXTICR3 EXTI11        LL_SYSCFG_GetEXTISource\n
672
  *         SYSCFG_EXTICR3 EXTI12        LL_SYSCFG_GetEXTISource\n
673
  *         SYSCFG_EXTICR3 EXTI13        LL_SYSCFG_GetEXTISource\n
674
  *         SYSCFG_EXTICR3 EXTI14        LL_SYSCFG_GetEXTISource\n
675
  *         SYSCFG_EXTICR3 EXTI15        LL_SYSCFG_GetEXTISource\n
676
  *         SYSCFG_EXTICR4 EXTI0         LL_SYSCFG_GetEXTISource\n
677
  *         SYSCFG_EXTICR4 EXTI1         LL_SYSCFG_GetEXTISource\n
678
  *         SYSCFG_EXTICR4 EXTI2         LL_SYSCFG_GetEXTISource\n
679
  *         SYSCFG_EXTICR4 EXTI3         LL_SYSCFG_GetEXTISource\n
680
  *         SYSCFG_EXTICR4 EXTI4         LL_SYSCFG_GetEXTISource\n
681
  *         SYSCFG_EXTICR4 EXTI5         LL_SYSCFG_GetEXTISource\n
682
  *         SYSCFG_EXTICR4 EXTI6         LL_SYSCFG_GetEXTISource\n
683
  *         SYSCFG_EXTICR4 EXTI7         LL_SYSCFG_GetEXTISource\n
684
  *         SYSCFG_EXTICR4 EXTI8         LL_SYSCFG_GetEXTISource\n
685
  *         SYSCFG_EXTICR4 EXTI9         LL_SYSCFG_GetEXTISource\n
686
  *         SYSCFG_EXTICR4 EXTI10        LL_SYSCFG_GetEXTISource\n
687
  *         SYSCFG_EXTICR4 EXTI11        LL_SYSCFG_GetEXTISource\n
688
  *         SYSCFG_EXTICR4 EXTI12        LL_SYSCFG_GetEXTISource\n
689
  *         SYSCFG_EXTICR4 EXTI13        LL_SYSCFG_GetEXTISource\n
690
  *         SYSCFG_EXTICR4 EXTI14        LL_SYSCFG_GetEXTISource\n
691
  *         SYSCFG_EXTICR4 EXTI15        LL_SYSCFG_GetEXTISource
692
  * @param  Line This parameter can be one of the following values:
693
  *         @arg @ref LL_SYSCFG_EXTI_LINE0
694
  *         @arg @ref LL_SYSCFG_EXTI_LINE1
695
  *         @arg @ref LL_SYSCFG_EXTI_LINE2
696
  *         @arg @ref LL_SYSCFG_EXTI_LINE3
697
  *         @arg @ref LL_SYSCFG_EXTI_LINE4
698
  *         @arg @ref LL_SYSCFG_EXTI_LINE5
699
  *         @arg @ref LL_SYSCFG_EXTI_LINE6
700
  *         @arg @ref LL_SYSCFG_EXTI_LINE7
701
  *         @arg @ref LL_SYSCFG_EXTI_LINE8
702
  *         @arg @ref LL_SYSCFG_EXTI_LINE9
703
  *         @arg @ref LL_SYSCFG_EXTI_LINE10
704
  *         @arg @ref LL_SYSCFG_EXTI_LINE11
705
  *         @arg @ref LL_SYSCFG_EXTI_LINE12
706
  *         @arg @ref LL_SYSCFG_EXTI_LINE13
707
  *         @arg @ref LL_SYSCFG_EXTI_LINE14
708
  *         @arg @ref LL_SYSCFG_EXTI_LINE15
709
  * @retval Returned value can be one of the following values:
710
  *         @arg @ref LL_SYSCFG_EXTI_PORTA
711
  *         @arg @ref LL_SYSCFG_EXTI_PORTB
712
  *         @arg @ref LL_SYSCFG_EXTI_PORTC
713
  *         @arg @ref LL_SYSCFG_EXTI_PORTD
714
  *         @arg @ref LL_SYSCFG_EXTI_PORTE (*)
715
  *         @arg @ref LL_SYSCFG_EXTI_PORTF (*)
716
  *         @arg @ref LL_SYSCFG_EXTI_PORTG (*)
717
  *         @arg @ref LL_SYSCFG_EXTI_PORTH
718
  *
719
  *         (*) value not defined in all devices.
720
  */
721
__STATIC_INLINE uint32_t LL_SYSCFG_GetEXTISource(uint32_t Line)
722
{
723
  return (uint32_t)(READ_BIT(SYSCFG->EXTICR[Line & 0x3U], (Line >> 16)) >> POSITION_VAL(Line >> 16));
724
}
725
 
726
/**
727
  * @}
728
  */
729
 
730
/** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
731
  * @{
732
  */
733
 
734
/**
735
  * @brief  Return the device identifier
736
  * @note 0x416: Cat.1 device\n
737
  *       0x429: Cat.2 device\n
738
  *       0x427: Cat.3 device\n
739
  *       0x436: Cat.4 device or Cat.3 device(1)\n
740
  *       0x437: Cat.5 device\n
741
  *
742
  *       (1) Cat.3 devices: STM32L15xxC or STM3216xxC devices with
743
  *       RPN ending with letter 'A', in WLCSP64 packages or with more then 100 pin.
744
  * @rmtoll DBGMCU_IDCODE DEV_ID        LL_DBGMCU_GetDeviceID
745
  * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
746
  */
747
__STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
748
{
749
  return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID));
750
}
751
 
752
/**
753
  * @brief  Return the device revision identifier
754
  * @note This field indicates the revision of the device.
755
          For example, it is read as Cat.1 RevA -> 0x1000, Cat.2 Rev Z -> 0x1018...
756
  * @rmtoll DBGMCU_IDCODE REV_ID        LL_DBGMCU_GetRevisionID
757
  * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
758
  */
759
__STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
760
{
761
  return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos);
762
}
763
 
764
/**
765
  * @brief  Enable the Debug Module during SLEEP mode
766
  * @rmtoll DBGMCU_CR    DBG_SLEEP     LL_DBGMCU_EnableDBGSleepMode
767
  * @retval None
768
  */
769
__STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void)
770
{
771
  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
772
}
773
 
774
/**
775
  * @brief  Disable the Debug Module during SLEEP mode
776
  * @rmtoll DBGMCU_CR    DBG_SLEEP     LL_DBGMCU_DisableDBGSleepMode
777
  * @retval None
778
  */
779
__STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void)
780
{
781
  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
782
}
783
 
784
/**
785
  * @brief  Enable the Debug Module during STOP mode
786
  * @rmtoll DBGMCU_CR    DBG_STOP      LL_DBGMCU_EnableDBGStopMode
787
  * @retval None
788
  */
789
__STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
790
{
791
  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
792
}
793
 
794
/**
795
  * @brief  Disable the Debug Module during STOP mode
796
  * @rmtoll DBGMCU_CR    DBG_STOP      LL_DBGMCU_DisableDBGStopMode
797
  * @retval None
798
  */
799
__STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
800
{
801
  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
802
}
803
 
804
/**
805
  * @brief  Enable the Debug Module during STANDBY mode
806
  * @rmtoll DBGMCU_CR    DBG_STANDBY   LL_DBGMCU_EnableDBGStandbyMode
807
  * @retval None
808
  */
809
__STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
810
{
811
  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
812
}
813
 
814
/**
815
  * @brief  Disable the Debug Module during STANDBY mode
816
  * @rmtoll DBGMCU_CR    DBG_STANDBY   LL_DBGMCU_DisableDBGStandbyMode
817
  * @retval None
818
  */
819
__STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
820
{
821
  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
822
}
823
 
824
/**
825
  * @brief  Set Trace pin assignment control
826
  * @rmtoll DBGMCU_CR    TRACE_IOEN    LL_DBGMCU_SetTracePinAssignment\n
827
  *         DBGMCU_CR    TRACE_MODE    LL_DBGMCU_SetTracePinAssignment
828
  * @param  PinAssignment This parameter can be one of the following values:
829
  *         @arg @ref LL_DBGMCU_TRACE_NONE
830
  *         @arg @ref LL_DBGMCU_TRACE_ASYNCH
831
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
832
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
833
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
834
  * @retval None
835
  */
836
__STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment)
837
{
838
  MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment);
839
}
840
 
841
/**
842
  * @brief  Get Trace pin assignment control
843
  * @rmtoll DBGMCU_CR    TRACE_IOEN    LL_DBGMCU_GetTracePinAssignment\n
844
  *         DBGMCU_CR    TRACE_MODE    LL_DBGMCU_GetTracePinAssignment
845
  * @retval Returned value can be one of the following values:
846
  *         @arg @ref LL_DBGMCU_TRACE_NONE
847
  *         @arg @ref LL_DBGMCU_TRACE_ASYNCH
848
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
849
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
850
  *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
851
  */
852
__STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void)
853
{
854
  return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE));
855
}
856
 
857
/**
858
  * @brief  Freeze APB1 peripherals (group1 peripherals)
859
  * @rmtoll APB1_FZ      DBG_TIM2_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
860
  *         APB1_FZ      DBG_TIM3_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
861
  *         APB1_FZ      DBG_TIM4_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
862
  *         APB1_FZ      DBG_TIM5_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
863
  *         APB1_FZ      DBG_TIM6_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
864
  *         APB1_FZ      DBG_TIM7_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
865
  *         APB1_FZ      DBG_RTC_STOP            LL_DBGMCU_APB1_GRP1_FreezePeriph\n
866
  *         APB1_FZ      DBG_WWDG_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
867
  *         APB1_FZ      DBG_IWDG_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
868
  *         APB1_FZ      DBG_I2C1_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_FreezePeriph\n
869
  *         APB1_FZ      DBG_I2C2_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_FreezePeriph
870
  * @param  Periphs This parameter can be a combination of the following values:
871
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
872
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
873
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
874
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
875
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
876
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
877
  *         @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*)
878
  *         @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
879
  *         @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
880
  *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
881
  *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP
882
  *         (*) value not defined in all devices.
883
  * @retval None
884
  */
885
__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
886
{
887
  SET_BIT(DBGMCU->APB1FZ, Periphs);
888
}
889
 
890
/**
891
  * @brief  Unfreeze APB1 peripherals (group1 peripherals)
892
  * @rmtoll APB1_FZ      DBG_TIM2_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
893
  *         APB1_FZ      DBG_TIM3_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
894
  *         APB1_FZ      DBG_TIM4_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
895
  *         APB1_FZ      DBG_TIM5_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
896
  *         APB1_FZ      DBG_TIM6_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
897
  *         APB1_FZ      DBG_TIM7_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
898
  *         APB1_FZ      DBG_RTC_STOP            LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
899
  *         APB1_FZ      DBG_WWDG_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
900
  *         APB1_FZ      DBG_IWDG_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
901
  *         APB1_FZ      DBG_I2C1_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
902
  *         APB1_FZ      DBG_I2C2_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_UnFreezePeriph
903
  * @param  Periphs This parameter can be a combination of the following values:
904
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
905
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
906
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
907
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP (*)
908
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
909
  *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
910
  *         @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP (*)
911
  *         @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
912
  *         @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
913
  *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
914
  *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP
915
  *         (*) value not defined in all devices.
916
  * @retval None
917
  */
918
__STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
919
{
920
  CLEAR_BIT(DBGMCU->APB1FZ, Periphs);
921
}
922
 
923
/**
924
  * @brief  Freeze APB2 peripherals
925
  * @rmtoll APB2_FZ      DBG_TIM9_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
926
  *         APB2_FZ      DBG_TIM10_STOP  LL_DBGMCU_APB2_GRP1_FreezePeriph\n
927
  *         APB2_FZ      DBG_TIM11_STOP  LL_DBGMCU_APB2_GRP1_FreezePeriph
928
  * @param  Periphs This parameter can be a combination of the following values:
929
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP
930
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP
931
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP
932
  * @retval None
933
  */
934
__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)
935
{
936
  SET_BIT(DBGMCU->APB2FZ, Periphs);
937
}
938
 
939
/**
940
  * @brief  Unfreeze APB2 peripherals
941
  * @rmtoll APB2_FZ      DBG_TIM9_STOP   LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
942
  *         APB2_FZ      DBG_TIM10_STOP  LL_DBGMCU_APB2_GRP1_UnFreezePeriph\n
943
  *         APB2_FZ      DBG_TIM11_STOP  LL_DBGMCU_APB2_GRP1_UnFreezePeriph
944
  * @param  Periphs This parameter can be a combination of the following values:
945
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP
946
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP
947
  *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP
948
  * @retval None
949
  */
950
__STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)
951
{
952
  CLEAR_BIT(DBGMCU->APB2FZ, Periphs);
953
}
954
 
955
/**
956
  * @}
957
  */
958
 
959
#if defined(COMP_CSR_VREFOUTEN)
960
/** @defgroup SYSTEM_LL_EF_VREFOUT VREFOUT
961
  * @{
962
  */
963
 
964
/**
965
  * @brief  Enable the output of internal reference voltage (VrefInt) on I/O pin.
966
  * @note   The VrefInt output can be routed to any I/O in group 3:
967
  *          - For Cat.1 and Cat.2 devices: CH8 (PB0) or CH9 (PB1).
968
  *          - For Cat.3 devices: CH8 (PB0), CH9 (PB1) or CH0b (PB2).
969
  *          - For Cat.4 and Cat.5 devices: CH8 (PB0), CH9 (PB1), CH0b (PB2),
970
  *            CH1b (PF11) or CH2b (PF12).
971
  *         Note: Comparator peripheral clock must be preliminarily enabled.
972
  *               Refer to function "LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_COMP)".
973
  *         Note: In addition with this macro, VrefInt output buffer must be
974
  *               connected to the selected I/O pin. Refer to functions
975
  *               "LL_RI_EnableSwitchControlMode()" and "LL_RI_CloseIOSwitchLinkedToADC()".
976
  * @note  VrefInt output enable: Internal reference voltage connected to I/O group 3
977
  *        VrefInt output disable: Internal reference voltage disconnected from I/O group 3
978
  * @rmtoll COMP_CSR     VREFOUTEN     LL_VREFOUT_Enable
979
  * @retval None
980
  */
981
__STATIC_INLINE void LL_VREFOUT_Enable(void)
982
{
983
  SET_BIT(COMP->CSR, COMP_CSR_VREFOUTEN);
984
}
985
 
986
/**
987
  * @brief  Disable the output of internal reference voltage (VrefInt) on I/O pin.
988
  * @rmtoll COMP_CSR     VREFOUTEN     LL_VREFOUT_Disable
989
  * @retval None
990
  */
991
__STATIC_INLINE void LL_VREFOUT_Disable(void)
992
{
993
  CLEAR_BIT(COMP->CSR, COMP_CSR_VREFOUTEN);
994
}
995
 
996
/**
997
  * @brief  Check if output of internal reference voltage (VrefInt) is connected to I/O pin.
998
  * @rmtoll COMP_CSR     VREFOUTEN     LL_VREFOUT_IsEnabled
999
  * @retval State of bit (1 or 0).
1000
  */
1001
__STATIC_INLINE uint32_t LL_VREFOUT_IsEnabled(void)
1002
{
1003
  return ((READ_BIT(COMP->CSR, COMP_CSR_VREFOUTEN) == COMP_CSR_VREFOUTEN) ? 1UL : 0UL);
1004
}
1005
 
1006
/**
1007
  * @}
1008
  */
1009
#endif /* COMP_CSR_VREFOUTEN */
1010
 
1011
/** @defgroup SYSTEM_LL_EF_RI RI
1012
  * @{
1013
  */
1014
 
1015
/**
1016
  * @brief  Configures the routing interface to map Input Capture x of TIMx to a selected I/O pin.
1017
  * @rmtoll RI_ICR       IC1OS         LL_RI_SetRemapInputCapture_TIM\n
1018
  *         RI_ICR       IC2OS         LL_RI_SetRemapInputCapture_TIM\n
1019
  *         RI_ICR       IC3OS         LL_RI_SetRemapInputCapture_TIM\n
1020
  *         RI_ICR       IC4OS         LL_RI_SetRemapInputCapture_TIM\n
1021
  *         RI_ICR       TIM           LL_RI_SetRemapInputCapture_TIM\n
1022
  *         RI_ICR       IC1           LL_RI_SetRemapInputCapture_TIM\n
1023
  *         RI_ICR       IC2           LL_RI_SetRemapInputCapture_TIM\n
1024
  *         RI_ICR       IC3           LL_RI_SetRemapInputCapture_TIM\n
1025
  *         RI_ICR       IC4           LL_RI_SetRemapInputCapture_TIM
1026
  * @param  TIM_Select This parameter can be one of the following values:
1027
  *         @arg @ref LL_RI_TIM_SELECT_NONE
1028
  *         @arg @ref LL_RI_TIM_SELECT_TIM2
1029
  *         @arg @ref LL_RI_TIM_SELECT_TIM3
1030
  *         @arg @ref LL_RI_TIM_SELECT_TIM4
1031
  * @param  InputCaptureChannel This parameter can be one of the following values:
1032
  *         @arg @ref LL_RI_INPUTCAPTURE_1
1033
  *         @arg @ref LL_RI_INPUTCAPTURE_2
1034
  *         @arg @ref LL_RI_INPUTCAPTURE_3
1035
  *         @arg @ref LL_RI_INPUTCAPTURE_4
1036
  * @param  Input This parameter can be one of the following values:
1037
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_0
1038
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_1
1039
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_2
1040
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_3
1041
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_4
1042
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_5
1043
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_6
1044
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_7
1045
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_8
1046
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_9
1047
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_10
1048
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_11
1049
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_12 (*)
1050
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_13 (*)
1051
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_14 (*)
1052
  *         @arg @ref LL_RI_INPUTCAPTUREROUTING_15 (*)
1053
  *
1054
  *         (*) value not defined in all devices.
1055
  * @retval None
1056
  */
1057
__STATIC_INLINE void LL_RI_SetRemapInputCapture_TIM(uint32_t TIM_Select, uint32_t InputCaptureChannel, uint32_t Input)
1058
{
1059
  MODIFY_REG(RI->ICR,
1060
             RI_ICR_TIM | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (InputCaptureChannel & (RI_ICR_IC4OS | RI_ICR_IC3OS | RI_ICR_IC2OS | RI_ICR_IC1OS)),
1061
             TIM_Select | (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)) | (Input << POSITION_VAL(InputCaptureChannel)));
1062
}
1063
 
1064
/**
1065
  * @brief  Disable the TIM Input capture remap (select the standard AF)
1066
  * @rmtoll RI_ICR       IC1           LL_RI_DisableRemapInputCapture_TIM\n
1067
  *         RI_ICR       IC2           LL_RI_DisableRemapInputCapture_TIM\n
1068
  *         RI_ICR       IC3           LL_RI_DisableRemapInputCapture_TIM\n
1069
  *         RI_ICR       IC4           LL_RI_DisableRemapInputCapture_TIM
1070
  * @param  InputCaptureChannel This parameter can be a combination of the following values:
1071
  *         @arg @ref LL_RI_INPUTCAPTURE_1
1072
  *         @arg @ref LL_RI_INPUTCAPTURE_2
1073
  *         @arg @ref LL_RI_INPUTCAPTURE_3
1074
  *         @arg @ref LL_RI_INPUTCAPTURE_4
1075
  * @retval None
1076
  */
1077
__STATIC_INLINE void LL_RI_DisableRemapInputCapture_TIM(uint32_t InputCaptureChannel)
1078
{
1079
  CLEAR_BIT(RI->ICR, (InputCaptureChannel & (RI_ICR_IC4 | RI_ICR_IC3 | RI_ICR_IC2 | RI_ICR_IC1)));
1080
}
1081
 
1082
/**
1083
  * @brief  Close the routing interface Input Output switches linked to ADC.
1084
  * @rmtoll RI_ASCR1     CH            LL_RI_CloseIOSwitchLinkedToADC\n
1085
  *         RI_ASCR1     VCOMP         LL_RI_CloseIOSwitchLinkedToADC
1086
  * @param  IOSwitch This parameter can be a combination of the following values:
1087
  *         @arg @ref LL_RI_IOSWITCH_CH0
1088
  *         @arg @ref LL_RI_IOSWITCH_CH1
1089
  *         @arg @ref LL_RI_IOSWITCH_CH2
1090
  *         @arg @ref LL_RI_IOSWITCH_CH3
1091
  *         @arg @ref LL_RI_IOSWITCH_CH4
1092
  *         @arg @ref LL_RI_IOSWITCH_CH5
1093
  *         @arg @ref LL_RI_IOSWITCH_CH6
1094
  *         @arg @ref LL_RI_IOSWITCH_CH7
1095
  *         @arg @ref LL_RI_IOSWITCH_CH8
1096
  *         @arg @ref LL_RI_IOSWITCH_CH9
1097
  *         @arg @ref LL_RI_IOSWITCH_CH10
1098
  *         @arg @ref LL_RI_IOSWITCH_CH11
1099
  *         @arg @ref LL_RI_IOSWITCH_CH12
1100
  *         @arg @ref LL_RI_IOSWITCH_CH13
1101
  *         @arg @ref LL_RI_IOSWITCH_CH14
1102
  *         @arg @ref LL_RI_IOSWITCH_CH15
1103
  *         @arg @ref LL_RI_IOSWITCH_CH18
1104
  *         @arg @ref LL_RI_IOSWITCH_CH19
1105
  *         @arg @ref LL_RI_IOSWITCH_CH20
1106
  *         @arg @ref LL_RI_IOSWITCH_CH21
1107
  *         @arg @ref LL_RI_IOSWITCH_CH22
1108
  *         @arg @ref LL_RI_IOSWITCH_CH23
1109
  *         @arg @ref LL_RI_IOSWITCH_CH24
1110
  *         @arg @ref LL_RI_IOSWITCH_CH25
1111
  *         @arg @ref LL_RI_IOSWITCH_VCOMP
1112
  *         @arg @ref LL_RI_IOSWITCH_CH27 (*)
1113
  *         @arg @ref LL_RI_IOSWITCH_CH28 (*)
1114
  *         @arg @ref LL_RI_IOSWITCH_CH29 (*)
1115
  *         @arg @ref LL_RI_IOSWITCH_CH30 (*)
1116
  *         @arg @ref LL_RI_IOSWITCH_CH31 (*)
1117
  *
1118
  *         (*) value not defined in all devices.
1119
  * @retval None
1120
  */
1121
__STATIC_INLINE void LL_RI_CloseIOSwitchLinkedToADC(uint32_t IOSwitch)
1122
{
1123
  SET_BIT(RI->ASCR1, IOSwitch);
1124
}
1125
 
1126
/**
1127
  * @brief  Open the routing interface Input Output switches linked to ADC.
1128
  * @rmtoll RI_ASCR1     CH            LL_RI_OpenIOSwitchLinkedToADC\n
1129
  *         RI_ASCR1     VCOMP         LL_RI_OpenIOSwitchLinkedToADC
1130
  * @param  IOSwitch This parameter can be a combination of the following values:
1131
  *         @arg @ref LL_RI_IOSWITCH_CH0
1132
  *         @arg @ref LL_RI_IOSWITCH_CH1
1133
  *         @arg @ref LL_RI_IOSWITCH_CH2
1134
  *         @arg @ref LL_RI_IOSWITCH_CH3
1135
  *         @arg @ref LL_RI_IOSWITCH_CH4
1136
  *         @arg @ref LL_RI_IOSWITCH_CH5
1137
  *         @arg @ref LL_RI_IOSWITCH_CH6
1138
  *         @arg @ref LL_RI_IOSWITCH_CH7
1139
  *         @arg @ref LL_RI_IOSWITCH_CH8
1140
  *         @arg @ref LL_RI_IOSWITCH_CH9
1141
  *         @arg @ref LL_RI_IOSWITCH_CH10
1142
  *         @arg @ref LL_RI_IOSWITCH_CH11
1143
  *         @arg @ref LL_RI_IOSWITCH_CH12
1144
  *         @arg @ref LL_RI_IOSWITCH_CH13
1145
  *         @arg @ref LL_RI_IOSWITCH_CH14
1146
  *         @arg @ref LL_RI_IOSWITCH_CH15
1147
  *         @arg @ref LL_RI_IOSWITCH_CH18
1148
  *         @arg @ref LL_RI_IOSWITCH_CH19
1149
  *         @arg @ref LL_RI_IOSWITCH_CH20
1150
  *         @arg @ref LL_RI_IOSWITCH_CH21
1151
  *         @arg @ref LL_RI_IOSWITCH_CH22
1152
  *         @arg @ref LL_RI_IOSWITCH_CH23
1153
  *         @arg @ref LL_RI_IOSWITCH_CH24
1154
  *         @arg @ref LL_RI_IOSWITCH_CH25
1155
  *         @arg @ref LL_RI_IOSWITCH_VCOMP
1156
  *         @arg @ref LL_RI_IOSWITCH_CH27 (*)
1157
  *         @arg @ref LL_RI_IOSWITCH_CH28 (*)
1158
  *         @arg @ref LL_RI_IOSWITCH_CH29 (*)
1159
  *         @arg @ref LL_RI_IOSWITCH_CH30 (*)
1160
  *         @arg @ref LL_RI_IOSWITCH_CH31 (*)
1161
  *
1162
  *         (*) value not defined in all devices.
1163
  * @retval None
1164
  */
1165
__STATIC_INLINE void LL_RI_OpenIOSwitchLinkedToADC(uint32_t IOSwitch)
1166
{
1167
  CLEAR_BIT(RI->ASCR1, IOSwitch);
1168
}
1169
 
1170
/**
1171
  * @brief  Enable the switch control mode.
1172
  * @rmtoll RI_ASCR1     SCM           LL_RI_EnableSwitchControlMode
1173
  * @retval None
1174
  */
1175
__STATIC_INLINE void LL_RI_EnableSwitchControlMode(void)
1176
{
1177
  SET_BIT(RI->ASCR1, RI_ASCR1_SCM);
1178
}
1179
 
1180
/**
1181
  * @brief  Disable the switch control mode.
1182
  * @rmtoll RI_ASCR1     SCM           LL_RI_DisableSwitchControlMode
1183
  * @retval None
1184
  */
1185
__STATIC_INLINE void LL_RI_DisableSwitchControlMode(void)
1186
{
1187
  CLEAR_BIT(RI->ASCR1, RI_ASCR1_SCM);
1188
}
1189
 
1190
/**
1191
  * @brief  Close the routing interface Input Output switches not linked to ADC.
1192
  * @rmtoll RI_ASCR2     GR10_1        LL_RI_CloseIOSwitchNotLinkedToADC\n
1193
  *         RI_ASCR2     GR10_2        LL_RI_CloseIOSwitchNotLinkedToADC\n
1194
  *         RI_ASCR2     GR10_3        LL_RI_CloseIOSwitchNotLinkedToADC\n
1195
  *         RI_ASCR2     GR10_4        LL_RI_CloseIOSwitchNotLinkedToADC\n
1196
  *         RI_ASCR2     GR6_1         LL_RI_CloseIOSwitchNotLinkedToADC\n
1197
  *         RI_ASCR2     GR6_2         LL_RI_CloseIOSwitchNotLinkedToADC\n
1198
  *         RI_ASCR2     GR5_1         LL_RI_CloseIOSwitchNotLinkedToADC\n
1199
  *         RI_ASCR2     GR5_2         LL_RI_CloseIOSwitchNotLinkedToADC\n
1200
  *         RI_ASCR2     GR5_3         LL_RI_CloseIOSwitchNotLinkedToADC\n
1201
  *         RI_ASCR2     GR4_1         LL_RI_CloseIOSwitchNotLinkedToADC\n
1202
  *         RI_ASCR2     GR4_2         LL_RI_CloseIOSwitchNotLinkedToADC\n
1203
  *         RI_ASCR2     GR4_3         LL_RI_CloseIOSwitchNotLinkedToADC\n
1204
  *         RI_ASCR2     GR4_4         LL_RI_CloseIOSwitchNotLinkedToADC\n
1205
  *         RI_ASCR2     CH0b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1206
  *         RI_ASCR2     CH1b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1207
  *         RI_ASCR2     CH2b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1208
  *         RI_ASCR2     CH3b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1209
  *         RI_ASCR2     CH6b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1210
  *         RI_ASCR2     CH7b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1211
  *         RI_ASCR2     CH8b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1212
  *         RI_ASCR2     CH9b          LL_RI_CloseIOSwitchNotLinkedToADC\n
1213
  *         RI_ASCR2     CH10b         LL_RI_CloseIOSwitchNotLinkedToADC\n
1214
  *         RI_ASCR2     CH11b         LL_RI_CloseIOSwitchNotLinkedToADC\n
1215
  *         RI_ASCR2     CH12b         LL_RI_CloseIOSwitchNotLinkedToADC\n
1216
  *         RI_ASCR2     GR6_3         LL_RI_CloseIOSwitchNotLinkedToADC\n
1217
  *         RI_ASCR2     GR6_4         LL_RI_CloseIOSwitchNotLinkedToADC
1218
  * @param  IOSwitch This parameter can be a combination of the following values:
1219
  *         @arg @ref LL_RI_IOSWITCH_GR10_1
1220
  *         @arg @ref LL_RI_IOSWITCH_GR10_2
1221
  *         @arg @ref LL_RI_IOSWITCH_GR10_3
1222
  *         @arg @ref LL_RI_IOSWITCH_GR10_4
1223
  *         @arg @ref LL_RI_IOSWITCH_GR6_1
1224
  *         @arg @ref LL_RI_IOSWITCH_GR6_2
1225
  *         @arg @ref LL_RI_IOSWITCH_GR5_1
1226
  *         @arg @ref LL_RI_IOSWITCH_GR5_2
1227
  *         @arg @ref LL_RI_IOSWITCH_GR5_3
1228
  *         @arg @ref LL_RI_IOSWITCH_GR4_1
1229
  *         @arg @ref LL_RI_IOSWITCH_GR4_2
1230
  *         @arg @ref LL_RI_IOSWITCH_GR4_3
1231
  *         @arg @ref LL_RI_IOSWITCH_CH0b (*)
1232
  *         @arg @ref LL_RI_IOSWITCH_CH1b (*)
1233
  *         @arg @ref LL_RI_IOSWITCH_CH2b (*)
1234
  *         @arg @ref LL_RI_IOSWITCH_CH3b (*)
1235
  *         @arg @ref LL_RI_IOSWITCH_CH6b (*)
1236
  *         @arg @ref LL_RI_IOSWITCH_CH7b (*)
1237
  *         @arg @ref LL_RI_IOSWITCH_CH8b (*)
1238
  *         @arg @ref LL_RI_IOSWITCH_CH9b (*)
1239
  *         @arg @ref LL_RI_IOSWITCH_CH10b (*)
1240
  *         @arg @ref LL_RI_IOSWITCH_CH11b (*)
1241
  *         @arg @ref LL_RI_IOSWITCH_CH12b (*)
1242
  *         @arg @ref LL_RI_IOSWITCH_GR6_3
1243
  *         @arg @ref LL_RI_IOSWITCH_GR6_4
1244
  *
1245
  *         (*) value not defined in all devices.
1246
  * @retval None
1247
  */
1248
__STATIC_INLINE void LL_RI_CloseIOSwitchNotLinkedToADC(uint32_t IOSwitch)
1249
{
1250
  SET_BIT(RI->ASCR2, IOSwitch);
1251
}
1252
 
1253
/**
1254
  * @brief  Open the routing interface Input Output switches not linked to ADC.
1255
  * @rmtoll RI_ASCR2     GR10_1        LL_RI_OpenIOSwitchNotLinkedToADC\n
1256
  *         RI_ASCR2     GR10_2        LL_RI_OpenIOSwitchNotLinkedToADC\n
1257
  *         RI_ASCR2     GR10_3        LL_RI_OpenIOSwitchNotLinkedToADC\n
1258
  *         RI_ASCR2     GR10_4        LL_RI_OpenIOSwitchNotLinkedToADC\n
1259
  *         RI_ASCR2     GR6_1         LL_RI_OpenIOSwitchNotLinkedToADC\n
1260
  *         RI_ASCR2     GR6_2         LL_RI_OpenIOSwitchNotLinkedToADC\n
1261
  *         RI_ASCR2     GR5_1         LL_RI_OpenIOSwitchNotLinkedToADC\n
1262
  *         RI_ASCR2     GR5_2         LL_RI_OpenIOSwitchNotLinkedToADC\n
1263
  *         RI_ASCR2     GR5_3         LL_RI_OpenIOSwitchNotLinkedToADC\n
1264
  *         RI_ASCR2     GR4_1         LL_RI_OpenIOSwitchNotLinkedToADC\n
1265
  *         RI_ASCR2     GR4_2         LL_RI_OpenIOSwitchNotLinkedToADC\n
1266
  *         RI_ASCR2     GR4_3         LL_RI_OpenIOSwitchNotLinkedToADC\n
1267
  *         RI_ASCR2     GR4_4         LL_RI_OpenIOSwitchNotLinkedToADC\n
1268
  *         RI_ASCR2     CH0b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1269
  *         RI_ASCR2     CH1b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1270
  *         RI_ASCR2     CH2b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1271
  *         RI_ASCR2     CH3b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1272
  *         RI_ASCR2     CH6b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1273
  *         RI_ASCR2     CH7b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1274
  *         RI_ASCR2     CH8b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1275
  *         RI_ASCR2     CH9b          LL_RI_OpenIOSwitchNotLinkedToADC\n
1276
  *         RI_ASCR2     CH10b         LL_RI_OpenIOSwitchNotLinkedToADC\n
1277
  *         RI_ASCR2     CH11b         LL_RI_OpenIOSwitchNotLinkedToADC\n
1278
  *         RI_ASCR2     CH12b         LL_RI_OpenIOSwitchNotLinkedToADC\n
1279
  *         RI_ASCR2     GR6_3         LL_RI_OpenIOSwitchNotLinkedToADC\n
1280
  *         RI_ASCR2     GR6_4         LL_RI_OpenIOSwitchNotLinkedToADC
1281
  * @param  IOSwitch This parameter can be a combination of the following values:
1282
  *         @arg @ref LL_RI_IOSWITCH_GR10_1
1283
  *         @arg @ref LL_RI_IOSWITCH_GR10_2
1284
  *         @arg @ref LL_RI_IOSWITCH_GR10_3
1285
  *         @arg @ref LL_RI_IOSWITCH_GR10_4
1286
  *         @arg @ref LL_RI_IOSWITCH_GR6_1
1287
  *         @arg @ref LL_RI_IOSWITCH_GR6_2
1288
  *         @arg @ref LL_RI_IOSWITCH_GR5_1
1289
  *         @arg @ref LL_RI_IOSWITCH_GR5_2
1290
  *         @arg @ref LL_RI_IOSWITCH_GR5_3
1291
  *         @arg @ref LL_RI_IOSWITCH_GR4_1
1292
  *         @arg @ref LL_RI_IOSWITCH_GR4_2
1293
  *         @arg @ref LL_RI_IOSWITCH_GR4_3
1294
  *         @arg @ref LL_RI_IOSWITCH_CH0b (*)
1295
  *         @arg @ref LL_RI_IOSWITCH_CH1b (*)
1296
  *         @arg @ref LL_RI_IOSWITCH_CH2b (*)
1297
  *         @arg @ref LL_RI_IOSWITCH_CH3b (*)
1298
  *         @arg @ref LL_RI_IOSWITCH_CH6b (*)
1299
  *         @arg @ref LL_RI_IOSWITCH_CH7b (*)
1300
  *         @arg @ref LL_RI_IOSWITCH_CH8b (*)
1301
  *         @arg @ref LL_RI_IOSWITCH_CH9b (*)
1302
  *         @arg @ref LL_RI_IOSWITCH_CH10b (*)
1303
  *         @arg @ref LL_RI_IOSWITCH_CH11b (*)
1304
  *         @arg @ref LL_RI_IOSWITCH_CH12b (*)
1305
  *         @arg @ref LL_RI_IOSWITCH_GR6_3
1306
  *         @arg @ref LL_RI_IOSWITCH_GR6_4
1307
  *
1308
  *         (*) value not defined in all devices.
1309
  * @retval None
1310
  */
1311
__STATIC_INLINE void LL_RI_OpenIOSwitchNotLinkedToADC(uint32_t IOSwitch)
1312
{
1313
  CLEAR_BIT(RI->ASCR2, IOSwitch);
1314
}
1315
 
1316
/**
1317
  * @brief  Enable Hysteresis of the input schmitt triger of the port X
1318
  * @rmtoll RI_HYSCR1    PA            LL_RI_EnableHysteresis\n
1319
  *         RI_HYSCR1    PB            LL_RI_EnableHysteresis\n
1320
  *         RI_HYSCR1    PC            LL_RI_EnableHysteresis\n
1321
  *         RI_HYSCR1    PD            LL_RI_EnableHysteresis\n
1322
  *         RI_HYSCR1    PE            LL_RI_EnableHysteresis\n
1323
  *         RI_HYSCR1    PF            LL_RI_EnableHysteresis\n
1324
  *         RI_HYSCR1    PG            LL_RI_EnableHysteresis\n
1325
  *         RI_HYSCR2    PA            LL_RI_EnableHysteresis\n
1326
  *         RI_HYSCR2    PB            LL_RI_EnableHysteresis\n
1327
  *         RI_HYSCR2    PC            LL_RI_EnableHysteresis\n
1328
  *         RI_HYSCR2    PD            LL_RI_EnableHysteresis\n
1329
  *         RI_HYSCR2    PE            LL_RI_EnableHysteresis\n
1330
  *         RI_HYSCR2    PF            LL_RI_EnableHysteresis\n
1331
  *         RI_HYSCR2    PG            LL_RI_EnableHysteresis\n
1332
  *         RI_HYSCR3    PA            LL_RI_EnableHysteresis\n
1333
  *         RI_HYSCR3    PB            LL_RI_EnableHysteresis\n
1334
  *         RI_HYSCR3    PC            LL_RI_EnableHysteresis\n
1335
  *         RI_HYSCR3    PD            LL_RI_EnableHysteresis\n
1336
  *         RI_HYSCR3    PE            LL_RI_EnableHysteresis\n
1337
  *         RI_HYSCR3    PF            LL_RI_EnableHysteresis\n
1338
  *         RI_HYSCR3    PG            LL_RI_EnableHysteresis\n
1339
  *         RI_HYSCR4    PA            LL_RI_EnableHysteresis\n
1340
  *         RI_HYSCR4    PB            LL_RI_EnableHysteresis\n
1341
  *         RI_HYSCR4    PC            LL_RI_EnableHysteresis\n
1342
  *         RI_HYSCR4    PD            LL_RI_EnableHysteresis\n
1343
  *         RI_HYSCR4    PE            LL_RI_EnableHysteresis\n
1344
  *         RI_HYSCR4    PF            LL_RI_EnableHysteresis\n
1345
  *         RI_HYSCR4    PG            LL_RI_EnableHysteresis
1346
  * @param  Port This parameter can be one of the following values:
1347
  *         @arg @ref LL_RI_HSYTERESIS_PORT_A
1348
  *         @arg @ref LL_RI_HSYTERESIS_PORT_B
1349
  *         @arg @ref LL_RI_HSYTERESIS_PORT_C
1350
  *         @arg @ref LL_RI_HSYTERESIS_PORT_D
1351
  *         @arg @ref LL_RI_HSYTERESIS_PORT_E (*)
1352
  *         @arg @ref LL_RI_HSYTERESIS_PORT_F (*)
1353
  *         @arg @ref LL_RI_HSYTERESIS_PORT_G (*)
1354
  *
1355
  *         (*) value not defined in all devices.
1356
  * @param  Pin This parameter can be a combination of the following values:
1357
  *         @arg @ref LL_RI_PIN_0
1358
  *         @arg @ref LL_RI_PIN_1
1359
  *         @arg @ref LL_RI_PIN_2
1360
  *         @arg @ref LL_RI_PIN_3
1361
  *         @arg @ref LL_RI_PIN_4
1362
  *         @arg @ref LL_RI_PIN_5
1363
  *         @arg @ref LL_RI_PIN_6
1364
  *         @arg @ref LL_RI_PIN_7
1365
  *         @arg @ref LL_RI_PIN_8
1366
  *         @arg @ref LL_RI_PIN_9
1367
  *         @arg @ref LL_RI_PIN_10
1368
  *         @arg @ref LL_RI_PIN_11
1369
  *         @arg @ref LL_RI_PIN_12
1370
  *         @arg @ref LL_RI_PIN_13
1371
  *         @arg @ref LL_RI_PIN_14
1372
  *         @arg @ref LL_RI_PIN_15
1373
  *         @arg @ref LL_RI_PIN_ALL
1374
  * @retval None
1375
  */
1376
__STATIC_INLINE void LL_RI_EnableHysteresis(uint32_t Port, uint32_t Pin)
1377
{
1378
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + (Port >> 1U));
1379
  CLEAR_BIT(*reg, Pin << (16U * (Port & 1U)));
1380
}
1381
 
1382
/**
1383
  * @brief  Disable Hysteresis of the input schmitt triger of the port X
1384
  * @rmtoll RI_HYSCR1    PA            LL_RI_DisableHysteresis\n
1385
  *         RI_HYSCR1    PB            LL_RI_DisableHysteresis\n
1386
  *         RI_HYSCR1    PC            LL_RI_DisableHysteresis\n
1387
  *         RI_HYSCR1    PD            LL_RI_DisableHysteresis\n
1388
  *         RI_HYSCR1    PE            LL_RI_DisableHysteresis\n
1389
  *         RI_HYSCR1    PF            LL_RI_DisableHysteresis\n
1390
  *         RI_HYSCR1    PG            LL_RI_DisableHysteresis\n
1391
  *         RI_HYSCR2    PA            LL_RI_DisableHysteresis\n
1392
  *         RI_HYSCR2    PB            LL_RI_DisableHysteresis\n
1393
  *         RI_HYSCR2    PC            LL_RI_DisableHysteresis\n
1394
  *         RI_HYSCR2    PD            LL_RI_DisableHysteresis\n
1395
  *         RI_HYSCR2    PE            LL_RI_DisableHysteresis\n
1396
  *         RI_HYSCR2    PF            LL_RI_DisableHysteresis\n
1397
  *         RI_HYSCR2    PG            LL_RI_DisableHysteresis\n
1398
  *         RI_HYSCR3    PA            LL_RI_DisableHysteresis\n
1399
  *         RI_HYSCR3    PB            LL_RI_DisableHysteresis\n
1400
  *         RI_HYSCR3    PC            LL_RI_DisableHysteresis\n
1401
  *         RI_HYSCR3    PD            LL_RI_DisableHysteresis\n
1402
  *         RI_HYSCR3    PE            LL_RI_DisableHysteresis\n
1403
  *         RI_HYSCR3    PF            LL_RI_DisableHysteresis\n
1404
  *         RI_HYSCR3    PG            LL_RI_DisableHysteresis\n
1405
  *         RI_HYSCR4    PA            LL_RI_DisableHysteresis\n
1406
  *         RI_HYSCR4    PB            LL_RI_DisableHysteresis\n
1407
  *         RI_HYSCR4    PC            LL_RI_DisableHysteresis\n
1408
  *         RI_HYSCR4    PD            LL_RI_DisableHysteresis\n
1409
  *         RI_HYSCR4    PE            LL_RI_DisableHysteresis\n
1410
  *         RI_HYSCR4    PF            LL_RI_DisableHysteresis\n
1411
  *         RI_HYSCR4    PG            LL_RI_DisableHysteresis
1412
  * @param  Port This parameter can be one of the following values:
1413
  *         @arg @ref LL_RI_HSYTERESIS_PORT_A
1414
  *         @arg @ref LL_RI_HSYTERESIS_PORT_B
1415
  *         @arg @ref LL_RI_HSYTERESIS_PORT_C
1416
  *         @arg @ref LL_RI_HSYTERESIS_PORT_D
1417
  *         @arg @ref LL_RI_HSYTERESIS_PORT_E (*)
1418
  *         @arg @ref LL_RI_HSYTERESIS_PORT_F (*)
1419
  *         @arg @ref LL_RI_HSYTERESIS_PORT_G (*)
1420
  *
1421
  *         (*) value not defined in all devices.
1422
  * @param  Pin This parameter can be a combination of the following values:
1423
  *         @arg @ref LL_RI_PIN_0
1424
  *         @arg @ref LL_RI_PIN_1
1425
  *         @arg @ref LL_RI_PIN_2
1426
  *         @arg @ref LL_RI_PIN_3
1427
  *         @arg @ref LL_RI_PIN_4
1428
  *         @arg @ref LL_RI_PIN_5
1429
  *         @arg @ref LL_RI_PIN_6
1430
  *         @arg @ref LL_RI_PIN_7
1431
  *         @arg @ref LL_RI_PIN_8
1432
  *         @arg @ref LL_RI_PIN_9
1433
  *         @arg @ref LL_RI_PIN_10
1434
  *         @arg @ref LL_RI_PIN_11
1435
  *         @arg @ref LL_RI_PIN_12
1436
  *         @arg @ref LL_RI_PIN_13
1437
  *         @arg @ref LL_RI_PIN_14
1438
  *         @arg @ref LL_RI_PIN_15
1439
  *         @arg @ref LL_RI_PIN_ALL
1440
  * @retval None
1441
  */
1442
__STATIC_INLINE void LL_RI_DisableHysteresis(uint32_t Port, uint32_t Pin)
1443
{
1444
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->HYSCR1) + ((Port >> 1U) << 2U));
1445
  SET_BIT(*reg, Pin << (16U * (Port & 1U)));
1446
}
1447
 
1448
#if defined(RI_ASMR1_PA)
1449
/**
1450
  * @brief  Control analog switches of port X through the ADC interface or RI_ASCRx registers.
1451
  * @rmtoll RI_ASMR1     PA            LL_RI_ControlSwitchByADC\n
1452
  *         RI_ASMR1     PB            LL_RI_ControlSwitchByADC\n
1453
  *         RI_ASMR1     PC            LL_RI_ControlSwitchByADC\n
1454
  *         RI_ASMR1     PF            LL_RI_ControlSwitchByADC\n
1455
  *         RI_ASMR1     PG            LL_RI_ControlSwitchByADC\n
1456
  *         RI_ASMR2     PA            LL_RI_ControlSwitchByADC\n
1457
  *         RI_ASMR2     PB            LL_RI_ControlSwitchByADC\n
1458
  *         RI_ASMR2     PC            LL_RI_ControlSwitchByADC\n
1459
  *         RI_ASMR2     PF            LL_RI_ControlSwitchByADC\n
1460
  *         RI_ASMR2     PG            LL_RI_ControlSwitchByADC\n
1461
  *         RI_ASMR3     PA            LL_RI_ControlSwitchByADC\n
1462
  *         RI_ASMR3     PB            LL_RI_ControlSwitchByADC\n
1463
  *         RI_ASMR3     PC            LL_RI_ControlSwitchByADC\n
1464
  *         RI_ASMR3     PF            LL_RI_ControlSwitchByADC\n
1465
  *         RI_ASMR3     PG            LL_RI_ControlSwitchByADC\n
1466
  *         RI_ASMR4     PA            LL_RI_ControlSwitchByADC\n
1467
  *         RI_ASMR4     PB            LL_RI_ControlSwitchByADC\n
1468
  *         RI_ASMR4     PC            LL_RI_ControlSwitchByADC\n
1469
  *         RI_ASMR4     PF            LL_RI_ControlSwitchByADC\n
1470
  *         RI_ASMR4     PG            LL_RI_ControlSwitchByADC\n
1471
  *         RI_ASMR5     PA            LL_RI_ControlSwitchByADC\n
1472
  *         RI_ASMR5     PB            LL_RI_ControlSwitchByADC\n
1473
  *         RI_ASMR5     PC            LL_RI_ControlSwitchByADC\n
1474
  *         RI_ASMR5     PF            LL_RI_ControlSwitchByADC\n
1475
  *         RI_ASMR5     PG            LL_RI_ControlSwitchByADC
1476
  * @param  Port This parameter can be one of the following values:
1477
  *         @arg @ref LL_RI_PORT_A
1478
  *         @arg @ref LL_RI_PORT_B
1479
  *         @arg @ref LL_RI_PORT_C
1480
  *         @arg @ref LL_RI_PORT_F (*)
1481
  *         @arg @ref LL_RI_PORT_G (*)
1482
  *
1483
  *         (*) value not defined in all devices.
1484
  * @param  Pin This parameter can be a combination of the following values:
1485
  *         @arg @ref LL_RI_PIN_0
1486
  *         @arg @ref LL_RI_PIN_1
1487
  *         @arg @ref LL_RI_PIN_2
1488
  *         @arg @ref LL_RI_PIN_3
1489
  *         @arg @ref LL_RI_PIN_4
1490
  *         @arg @ref LL_RI_PIN_5
1491
  *         @arg @ref LL_RI_PIN_6
1492
  *         @arg @ref LL_RI_PIN_7
1493
  *         @arg @ref LL_RI_PIN_8
1494
  *         @arg @ref LL_RI_PIN_9
1495
  *         @arg @ref LL_RI_PIN_10
1496
  *         @arg @ref LL_RI_PIN_11
1497
  *         @arg @ref LL_RI_PIN_12
1498
  *         @arg @ref LL_RI_PIN_13
1499
  *         @arg @ref LL_RI_PIN_14
1500
  *         @arg @ref LL_RI_PIN_15
1501
  *         @arg @ref LL_RI_PIN_ALL
1502
  * @retval None
1503
  */
1504
__STATIC_INLINE void LL_RI_ControlSwitchByADC(uint32_t Port, uint32_t Pin)
1505
{
1506
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2));
1507
  CLEAR_BIT(*reg, Pin);
1508
}
1509
#endif /* RI_ASMR1_PA */
1510
 
1511
#if defined(RI_ASMR1_PA)
1512
/**
1513
  * @brief  Control analog switches of port X by the timer OC.
1514
  * @rmtoll RI_ASMR1     PA            LL_RI_ControlSwitchByTIM\n
1515
  *         RI_ASMR1     PB            LL_RI_ControlSwitchByTIM\n
1516
  *         RI_ASMR1     PC            LL_RI_ControlSwitchByTIM\n
1517
  *         RI_ASMR1     PF            LL_RI_ControlSwitchByTIM\n
1518
  *         RI_ASMR1     PG            LL_RI_ControlSwitchByTIM\n
1519
  *         RI_ASMR2     PA            LL_RI_ControlSwitchByTIM\n
1520
  *         RI_ASMR2     PB            LL_RI_ControlSwitchByTIM\n
1521
  *         RI_ASMR2     PC            LL_RI_ControlSwitchByTIM\n
1522
  *         RI_ASMR2     PF            LL_RI_ControlSwitchByTIM\n
1523
  *         RI_ASMR2     PG            LL_RI_ControlSwitchByTIM\n
1524
  *         RI_ASMR3     PA            LL_RI_ControlSwitchByTIM\n
1525
  *         RI_ASMR3     PB            LL_RI_ControlSwitchByTIM\n
1526
  *         RI_ASMR3     PC            LL_RI_ControlSwitchByTIM\n
1527
  *         RI_ASMR3     PF            LL_RI_ControlSwitchByTIM\n
1528
  *         RI_ASMR3     PG            LL_RI_ControlSwitchByTIM\n
1529
  *         RI_ASMR4     PA            LL_RI_ControlSwitchByTIM\n
1530
  *         RI_ASMR4     PB            LL_RI_ControlSwitchByTIM\n
1531
  *         RI_ASMR4     PC            LL_RI_ControlSwitchByTIM\n
1532
  *         RI_ASMR4     PF            LL_RI_ControlSwitchByTIM\n
1533
  *         RI_ASMR4     PG            LL_RI_ControlSwitchByTIM\n
1534
  *         RI_ASMR5     PA            LL_RI_ControlSwitchByTIM\n
1535
  *         RI_ASMR5     PB            LL_RI_ControlSwitchByTIM\n
1536
  *         RI_ASMR5     PC            LL_RI_ControlSwitchByTIM\n
1537
  *         RI_ASMR5     PF            LL_RI_ControlSwitchByTIM\n
1538
  *         RI_ASMR5     PG            LL_RI_ControlSwitchByTIM
1539
  * @param  Port This parameter can be one of the following values:
1540
  *         @arg @ref LL_RI_PORT_A
1541
  *         @arg @ref LL_RI_PORT_B
1542
  *         @arg @ref LL_RI_PORT_C
1543
  *         @arg @ref LL_RI_PORT_F (*)
1544
  *         @arg @ref LL_RI_PORT_G (*)
1545
  *
1546
  *         (*) value not defined in all devices.
1547
  * @param  Pin This parameter can be a combination of the following values:
1548
  *         @arg @ref LL_RI_PIN_0
1549
  *         @arg @ref LL_RI_PIN_1
1550
  *         @arg @ref LL_RI_PIN_2
1551
  *         @arg @ref LL_RI_PIN_3
1552
  *         @arg @ref LL_RI_PIN_4
1553
  *         @arg @ref LL_RI_PIN_5
1554
  *         @arg @ref LL_RI_PIN_6
1555
  *         @arg @ref LL_RI_PIN_7
1556
  *         @arg @ref LL_RI_PIN_8
1557
  *         @arg @ref LL_RI_PIN_9
1558
  *         @arg @ref LL_RI_PIN_10
1559
  *         @arg @ref LL_RI_PIN_11
1560
  *         @arg @ref LL_RI_PIN_12
1561
  *         @arg @ref LL_RI_PIN_13
1562
  *         @arg @ref LL_RI_PIN_14
1563
  *         @arg @ref LL_RI_PIN_15
1564
  *         @arg @ref LL_RI_PIN_ALL
1565
  * @retval None
1566
  */
1567
__STATIC_INLINE void LL_RI_ControlSwitchByTIM(uint32_t Port, uint32_t Pin)
1568
{
1569
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->ASMR1) + ((Port * 3U) << 2));
1570
  SET_BIT(*reg, Pin);
1571
}
1572
#endif /* RI_ASMR1_PA */
1573
 
1574
#if defined(RI_CMR1_PA)
1575
/**
1576
  * @brief  Mask the input of port X during the capacitive sensing acquisition.
1577
  * @rmtoll RI_CMR1      PA            LL_RI_MaskChannelDuringAcquisition\n
1578
  *         RI_CMR1      PB            LL_RI_MaskChannelDuringAcquisition\n
1579
  *         RI_CMR1      PC            LL_RI_MaskChannelDuringAcquisition\n
1580
  *         RI_CMR1      PF            LL_RI_MaskChannelDuringAcquisition\n
1581
  *         RI_CMR1      PG            LL_RI_MaskChannelDuringAcquisition\n
1582
  *         RI_CMR2      PA            LL_RI_MaskChannelDuringAcquisition\n
1583
  *         RI_CMR2      PB            LL_RI_MaskChannelDuringAcquisition\n
1584
  *         RI_CMR2      PC            LL_RI_MaskChannelDuringAcquisition\n
1585
  *         RI_CMR2      PF            LL_RI_MaskChannelDuringAcquisition\n
1586
  *         RI_CMR2      PG            LL_RI_MaskChannelDuringAcquisition\n
1587
  *         RI_CMR3      PA            LL_RI_MaskChannelDuringAcquisition\n
1588
  *         RI_CMR3      PB            LL_RI_MaskChannelDuringAcquisition\n
1589
  *         RI_CMR3      PC            LL_RI_MaskChannelDuringAcquisition\n
1590
  *         RI_CMR3      PF            LL_RI_MaskChannelDuringAcquisition\n
1591
  *         RI_CMR3      PG            LL_RI_MaskChannelDuringAcquisition\n
1592
  *         RI_CMR4      PA            LL_RI_MaskChannelDuringAcquisition\n
1593
  *         RI_CMR4      PB            LL_RI_MaskChannelDuringAcquisition\n
1594
  *         RI_CMR4      PC            LL_RI_MaskChannelDuringAcquisition\n
1595
  *         RI_CMR4      PF            LL_RI_MaskChannelDuringAcquisition\n
1596
  *         RI_CMR4      PG            LL_RI_MaskChannelDuringAcquisition\n
1597
  *         RI_CMR5      PA            LL_RI_MaskChannelDuringAcquisition\n
1598
  *         RI_CMR5      PB            LL_RI_MaskChannelDuringAcquisition\n
1599
  *         RI_CMR5      PC            LL_RI_MaskChannelDuringAcquisition\n
1600
  *         RI_CMR5      PF            LL_RI_MaskChannelDuringAcquisition\n
1601
  *         RI_CMR5      PG            LL_RI_MaskChannelDuringAcquisition
1602
  * @param  Port This parameter can be one of the following values:
1603
  *         @arg @ref LL_RI_PORT_A
1604
  *         @arg @ref LL_RI_PORT_B
1605
  *         @arg @ref LL_RI_PORT_C
1606
  *         @arg @ref LL_RI_PORT_F (*)
1607
  *         @arg @ref LL_RI_PORT_G (*)
1608
  *
1609
  *         (*) value not defined in all devices.
1610
  * @param  Pin This parameter can be a combination of the following values:
1611
  *         @arg @ref LL_RI_PIN_0
1612
  *         @arg @ref LL_RI_PIN_1
1613
  *         @arg @ref LL_RI_PIN_2
1614
  *         @arg @ref LL_RI_PIN_3
1615
  *         @arg @ref LL_RI_PIN_4
1616
  *         @arg @ref LL_RI_PIN_5
1617
  *         @arg @ref LL_RI_PIN_6
1618
  *         @arg @ref LL_RI_PIN_7
1619
  *         @arg @ref LL_RI_PIN_8
1620
  *         @arg @ref LL_RI_PIN_9
1621
  *         @arg @ref LL_RI_PIN_10
1622
  *         @arg @ref LL_RI_PIN_11
1623
  *         @arg @ref LL_RI_PIN_12
1624
  *         @arg @ref LL_RI_PIN_13
1625
  *         @arg @ref LL_RI_PIN_14
1626
  *         @arg @ref LL_RI_PIN_15
1627
  *         @arg @ref LL_RI_PIN_ALL
1628
  * @retval None
1629
  */
1630
__STATIC_INLINE void LL_RI_MaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin)
1631
{
1632
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2));
1633
  CLEAR_BIT(*reg, Pin);
1634
}
1635
#endif /* RI_CMR1_PA */
1636
 
1637
#if defined(RI_CMR1_PA)
1638
/**
1639
  * @brief  Unmask the input of port X during the capacitive sensing acquisition.
1640
  * @rmtoll RI_CMR1      PA            LL_RI_UnmaskChannelDuringAcquisition\n
1641
  *         RI_CMR1      PB            LL_RI_UnmaskChannelDuringAcquisition\n
1642
  *         RI_CMR1      PC            LL_RI_UnmaskChannelDuringAcquisition\n
1643
  *         RI_CMR1      PF            LL_RI_UnmaskChannelDuringAcquisition\n
1644
  *         RI_CMR1      PG            LL_RI_UnmaskChannelDuringAcquisition\n
1645
  *         RI_CMR2      PA            LL_RI_UnmaskChannelDuringAcquisition\n
1646
  *         RI_CMR2      PB            LL_RI_UnmaskChannelDuringAcquisition\n
1647
  *         RI_CMR2      PC            LL_RI_UnmaskChannelDuringAcquisition\n
1648
  *         RI_CMR2      PF            LL_RI_UnmaskChannelDuringAcquisition\n
1649
  *         RI_CMR2      PG            LL_RI_UnmaskChannelDuringAcquisition\n
1650
  *         RI_CMR3      PA            LL_RI_UnmaskChannelDuringAcquisition\n
1651
  *         RI_CMR3      PB            LL_RI_UnmaskChannelDuringAcquisition\n
1652
  *         RI_CMR3      PC            LL_RI_UnmaskChannelDuringAcquisition\n
1653
  *         RI_CMR3      PF            LL_RI_UnmaskChannelDuringAcquisition\n
1654
  *         RI_CMR3      PG            LL_RI_UnmaskChannelDuringAcquisition\n
1655
  *         RI_CMR4      PA            LL_RI_UnmaskChannelDuringAcquisition\n
1656
  *         RI_CMR4      PB            LL_RI_UnmaskChannelDuringAcquisition\n
1657
  *         RI_CMR4      PC            LL_RI_UnmaskChannelDuringAcquisition\n
1658
  *         RI_CMR4      PF            LL_RI_UnmaskChannelDuringAcquisition\n
1659
  *         RI_CMR4      PG            LL_RI_UnmaskChannelDuringAcquisition\n
1660
  *         RI_CMR5      PA            LL_RI_UnmaskChannelDuringAcquisition\n
1661
  *         RI_CMR5      PB            LL_RI_UnmaskChannelDuringAcquisition\n
1662
  *         RI_CMR5      PC            LL_RI_UnmaskChannelDuringAcquisition\n
1663
  *         RI_CMR5      PF            LL_RI_UnmaskChannelDuringAcquisition\n
1664
  *         RI_CMR5      PG            LL_RI_UnmaskChannelDuringAcquisition
1665
  * @param  Port This parameter can be one of the following values:
1666
  *         @arg @ref LL_RI_PORT_A
1667
  *         @arg @ref LL_RI_PORT_B
1668
  *         @arg @ref LL_RI_PORT_C
1669
  *         @arg @ref LL_RI_PORT_F (*)
1670
  *         @arg @ref LL_RI_PORT_G (*)
1671
  *
1672
  *         (*) value not defined in all devices.
1673
  * @param  Pin This parameter can be a combination of the following values:
1674
  *         @arg @ref LL_RI_PIN_0
1675
  *         @arg @ref LL_RI_PIN_1
1676
  *         @arg @ref LL_RI_PIN_2
1677
  *         @arg @ref LL_RI_PIN_3
1678
  *         @arg @ref LL_RI_PIN_4
1679
  *         @arg @ref LL_RI_PIN_5
1680
  *         @arg @ref LL_RI_PIN_6
1681
  *         @arg @ref LL_RI_PIN_7
1682
  *         @arg @ref LL_RI_PIN_8
1683
  *         @arg @ref LL_RI_PIN_9
1684
  *         @arg @ref LL_RI_PIN_10
1685
  *         @arg @ref LL_RI_PIN_11
1686
  *         @arg @ref LL_RI_PIN_12
1687
  *         @arg @ref LL_RI_PIN_13
1688
  *         @arg @ref LL_RI_PIN_14
1689
  *         @arg @ref LL_RI_PIN_15
1690
  *         @arg @ref LL_RI_PIN_ALL
1691
  * @retval None
1692
  */
1693
__STATIC_INLINE void LL_RI_UnmaskChannelDuringAcquisition(uint32_t Port, uint32_t Pin)
1694
{
1695
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CMR1) + ((Port * 3U) << 2));
1696
  SET_BIT(*reg, Pin);
1697
}
1698
#endif /* RI_CMR1_PA */
1699
 
1700
#if defined(RI_CICR1_PA)
1701
/**
1702
  * @brief  Identify channel for timer input capture
1703
  * @rmtoll RI_CICR1     PA            LL_RI_IdentifyChannelIO\n
1704
  *         RI_CICR1     PB            LL_RI_IdentifyChannelIO\n
1705
  *         RI_CICR1     PC            LL_RI_IdentifyChannelIO\n
1706
  *         RI_CICR1     PF            LL_RI_IdentifyChannelIO\n
1707
  *         RI_CICR1     PG            LL_RI_IdentifyChannelIO\n
1708
  *         RI_CICR2     PA            LL_RI_IdentifyChannelIO\n
1709
  *         RI_CICR2     PB            LL_RI_IdentifyChannelIO\n
1710
  *         RI_CICR2     PC            LL_RI_IdentifyChannelIO\n
1711
  *         RI_CICR2     PF            LL_RI_IdentifyChannelIO\n
1712
  *         RI_CICR2     PG            LL_RI_IdentifyChannelIO\n
1713
  *         RI_CICR3     PA            LL_RI_IdentifyChannelIO\n
1714
  *         RI_CICR3     PB            LL_RI_IdentifyChannelIO\n
1715
  *         RI_CICR3     PC            LL_RI_IdentifyChannelIO\n
1716
  *         RI_CICR3     PF            LL_RI_IdentifyChannelIO\n
1717
  *         RI_CICR3     PG            LL_RI_IdentifyChannelIO\n
1718
  *         RI_CICR4     PA            LL_RI_IdentifyChannelIO\n
1719
  *         RI_CICR4     PB            LL_RI_IdentifyChannelIO\n
1720
  *         RI_CICR4     PC            LL_RI_IdentifyChannelIO\n
1721
  *         RI_CICR4     PF            LL_RI_IdentifyChannelIO\n
1722
  *         RI_CICR4     PG            LL_RI_IdentifyChannelIO\n
1723
  *         RI_CICR5     PA            LL_RI_IdentifyChannelIO\n
1724
  *         RI_CICR5     PB            LL_RI_IdentifyChannelIO\n
1725
  *         RI_CICR5     PC            LL_RI_IdentifyChannelIO\n
1726
  *         RI_CICR5     PF            LL_RI_IdentifyChannelIO\n
1727
  *         RI_CICR5     PG            LL_RI_IdentifyChannelIO
1728
  * @param  Port This parameter can be one of the following values:
1729
  *         @arg @ref LL_RI_PORT_A
1730
  *         @arg @ref LL_RI_PORT_B
1731
  *         @arg @ref LL_RI_PORT_C
1732
  *         @arg @ref LL_RI_PORT_F (*)
1733
  *         @arg @ref LL_RI_PORT_G (*)
1734
  *
1735
  *         (*) value not defined in all devices.
1736
  * @param  Pin This parameter can be a combination of the following values:
1737
  *         @arg @ref LL_RI_PIN_0
1738
  *         @arg @ref LL_RI_PIN_1
1739
  *         @arg @ref LL_RI_PIN_2
1740
  *         @arg @ref LL_RI_PIN_3
1741
  *         @arg @ref LL_RI_PIN_4
1742
  *         @arg @ref LL_RI_PIN_5
1743
  *         @arg @ref LL_RI_PIN_6
1744
  *         @arg @ref LL_RI_PIN_7
1745
  *         @arg @ref LL_RI_PIN_8
1746
  *         @arg @ref LL_RI_PIN_9
1747
  *         @arg @ref LL_RI_PIN_10
1748
  *         @arg @ref LL_RI_PIN_11
1749
  *         @arg @ref LL_RI_PIN_12
1750
  *         @arg @ref LL_RI_PIN_13
1751
  *         @arg @ref LL_RI_PIN_14
1752
  *         @arg @ref LL_RI_PIN_15
1753
  *         @arg @ref LL_RI_PIN_ALL
1754
  * @retval None
1755
  */
1756
__STATIC_INLINE void LL_RI_IdentifyChannelIO(uint32_t Port, uint32_t Pin)
1757
{
1758
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2));
1759
  CLEAR_BIT(*reg, Pin);
1760
}
1761
#endif /* RI_CICR1_PA */
1762
 
1763
#if defined(RI_CICR1_PA)
1764
/**
1765
  * @brief  Identify sampling capacitor for timer input capture
1766
  * @rmtoll RI_CICR1     PA            LL_RI_IdentifySamplingCapacitorIO\n
1767
  *         RI_CICR1     PB            LL_RI_IdentifySamplingCapacitorIO\n
1768
  *         RI_CICR1     PC            LL_RI_IdentifySamplingCapacitorIO\n
1769
  *         RI_CICR1     PF            LL_RI_IdentifySamplingCapacitorIO\n
1770
  *         RI_CICR1     PG            LL_RI_IdentifySamplingCapacitorIO\n
1771
  *         RI_CICR2     PA            LL_RI_IdentifySamplingCapacitorIO\n
1772
  *         RI_CICR2     PB            LL_RI_IdentifySamplingCapacitorIO\n
1773
  *         RI_CICR2     PC            LL_RI_IdentifySamplingCapacitorIO\n
1774
  *         RI_CICR2     PF            LL_RI_IdentifySamplingCapacitorIO\n
1775
  *         RI_CICR2     PG            LL_RI_IdentifySamplingCapacitorIO\n
1776
  *         RI_CICR3     PA            LL_RI_IdentifySamplingCapacitorIO\n
1777
  *         RI_CICR3     PB            LL_RI_IdentifySamplingCapacitorIO\n
1778
  *         RI_CICR3     PC            LL_RI_IdentifySamplingCapacitorIO\n
1779
  *         RI_CICR3     PF            LL_RI_IdentifySamplingCapacitorIO\n
1780
  *         RI_CICR3     PG            LL_RI_IdentifySamplingCapacitorIO\n
1781
  *         RI_CICR4     PA            LL_RI_IdentifySamplingCapacitorIO\n
1782
  *         RI_CICR4     PB            LL_RI_IdentifySamplingCapacitorIO\n
1783
  *         RI_CICR4     PC            LL_RI_IdentifySamplingCapacitorIO\n
1784
  *         RI_CICR4     PF            LL_RI_IdentifySamplingCapacitorIO\n
1785
  *         RI_CICR4     PG            LL_RI_IdentifySamplingCapacitorIO\n
1786
  *         RI_CICR5     PA            LL_RI_IdentifySamplingCapacitorIO\n
1787
  *         RI_CICR5     PB            LL_RI_IdentifySamplingCapacitorIO\n
1788
  *         RI_CICR5     PC            LL_RI_IdentifySamplingCapacitorIO\n
1789
  *         RI_CICR5     PF            LL_RI_IdentifySamplingCapacitorIO\n
1790
  *         RI_CICR5     PG            LL_RI_IdentifySamplingCapacitorIO
1791
  * @param  Port This parameter can be one of the following values:
1792
  *         @arg @ref LL_RI_PORT_A
1793
  *         @arg @ref LL_RI_PORT_B
1794
  *         @arg @ref LL_RI_PORT_C
1795
  *         @arg @ref LL_RI_PORT_F (*)
1796
  *         @arg @ref LL_RI_PORT_G (*)
1797
  *
1798
  *         (*) value not defined in all devices.
1799
  * @param  Pin This parameter can be a combination of the following values:
1800
  *         @arg @ref LL_RI_PIN_0
1801
  *         @arg @ref LL_RI_PIN_1
1802
  *         @arg @ref LL_RI_PIN_2
1803
  *         @arg @ref LL_RI_PIN_3
1804
  *         @arg @ref LL_RI_PIN_4
1805
  *         @arg @ref LL_RI_PIN_5
1806
  *         @arg @ref LL_RI_PIN_6
1807
  *         @arg @ref LL_RI_PIN_7
1808
  *         @arg @ref LL_RI_PIN_8
1809
  *         @arg @ref LL_RI_PIN_9
1810
  *         @arg @ref LL_RI_PIN_10
1811
  *         @arg @ref LL_RI_PIN_11
1812
  *         @arg @ref LL_RI_PIN_12
1813
  *         @arg @ref LL_RI_PIN_13
1814
  *         @arg @ref LL_RI_PIN_14
1815
  *         @arg @ref LL_RI_PIN_15
1816
  *         @arg @ref LL_RI_PIN_ALL
1817
  * @retval None
1818
  */
1819
__STATIC_INLINE void LL_RI_IdentifySamplingCapacitorIO(uint32_t Port, uint32_t Pin)
1820
{
1821
  __IO uint32_t *reg = (__IO uint32_t *)(uint32_t)((uint32_t)(&RI->CICR1) + ((Port * 3U) << 2));
1822
  SET_BIT(*reg, Pin);
1823
}
1824
#endif /* RI_CICR1_PA */
1825
 
1826
/**
1827
  * @}
1828
  */
1829
 
1830
/** @defgroup SYSTEM_LL_EF_FLASH FLASH
1831
  * @{
1832
  */
1833
 
1834
/**
1835
  * @brief  Set FLASH Latency
1836
  * @note   Latetency can be modified only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
1837
  * @rmtoll FLASH_ACR    LATENCY       LL_FLASH_SetLatency
1838
  * @param  Latency This parameter can be one of the following values:
1839
  *         @arg @ref LL_FLASH_LATENCY_0
1840
  *         @arg @ref LL_FLASH_LATENCY_1
1841
  * @retval None
1842
  */
1843
__STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
1844
{
1845
  MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
1846
}
1847
 
1848
/**
1849
  * @brief  Get FLASH Latency
1850
  * @rmtoll FLASH_ACR    LATENCY       LL_FLASH_GetLatency
1851
  * @retval Returned value can be one of the following values:
1852
  *         @arg @ref LL_FLASH_LATENCY_0
1853
  *         @arg @ref LL_FLASH_LATENCY_1
1854
  */
1855
__STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
1856
{
1857
  return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
1858
}
1859
 
1860
/**
1861
  * @brief  Enable Prefetch
1862
  * @note   Prefetch can be enabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
1863
  * @rmtoll FLASH_ACR    PRFTEN        LL_FLASH_EnablePrefetch
1864
  * @retval None
1865
  */
1866
__STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
1867
{
1868
  SET_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
1869
}
1870
 
1871
/**
1872
  * @brief  Disable Prefetch
1873
  * @note   Prefetch can be disabled only when ACC64 is set. (through function @ref LL_FLASH_Enable64bitAccess)
1874
  * @rmtoll FLASH_ACR    PRFTEN        LL_FLASH_DisablePrefetch
1875
  * @retval None
1876
  */
1877
__STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
1878
{
1879
  CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTEN);
1880
}
1881
 
1882
/**
1883
  * @brief  Check if Prefetch buffer is enabled
1884
  * @rmtoll FLASH_ACR    PRFTEN        LL_FLASH_IsPrefetchEnabled
1885
  * @retval State of bit (1 or 0).
1886
  */
1887
__STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
1888
{
1889
  return ((READ_BIT(FLASH->ACR, FLASH_ACR_PRFTEN) == FLASH_ACR_PRFTEN) ? 1UL : 0UL);
1890
}
1891
 
1892
/**
1893
  * @brief  Enable 64-bit access
1894
  * @rmtoll FLASH_ACR    ACC64         LL_FLASH_Enable64bitAccess
1895
  * @retval None
1896
  */
1897
__STATIC_INLINE void LL_FLASH_Enable64bitAccess(void)
1898
{
1899
  SET_BIT(FLASH->ACR, FLASH_ACR_ACC64);
1900
}
1901
 
1902
/**
1903
  * @brief  Disable 64-bit access
1904
  * @rmtoll FLASH_ACR    ACC64         LL_FLASH_Disable64bitAccess
1905
  * @retval None
1906
  */
1907
__STATIC_INLINE void LL_FLASH_Disable64bitAccess(void)
1908
{
1909
  CLEAR_BIT(FLASH->ACR, FLASH_ACR_ACC64);
1910
}
1911
 
1912
/**
1913
  * @brief  Check if 64-bit access is enabled
1914
  * @rmtoll FLASH_ACR    ACC64         LL_FLASH_Is64bitAccessEnabled
1915
  * @retval State of bit (1 or 0).
1916
  */
1917
__STATIC_INLINE uint32_t LL_FLASH_Is64bitAccessEnabled(void)
1918
{
1919
  return ((READ_BIT(FLASH->ACR, FLASH_ACR_ACC64) == FLASH_ACR_ACC64) ? 1UL : 0UL);
1920
}
1921
 
1922
 
1923
/**
1924
  * @brief  Enable Flash Power-down mode during run mode or Low-power run mode
1925
  * @note Flash memory can be put in power-down mode only when the code is executed
1926
  *       from RAM
1927
  * @note Flash must not be accessed when power down is enabled
1928
  * @note Flash must not be put in power-down while a program or an erase operation
1929
  *       is on-going
1930
  * @rmtoll FLASH_ACR    RUN_PD        LL_FLASH_EnableRunPowerDown\n
1931
  *         FLASH_PDKEYR PDKEY1        LL_FLASH_EnableRunPowerDown\n
1932
  *         FLASH_PDKEYR PDKEY2        LL_FLASH_EnableRunPowerDown
1933
  * @retval None
1934
  */
1935
__STATIC_INLINE void LL_FLASH_EnableRunPowerDown(void)
1936
{
1937
  /* Following values must be written consecutively to unlock the RUN_PD bit in
1938
     FLASH_ACR */
1939
  WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1);
1940
  WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2);
1941
  SET_BIT(FLASH->ACR, FLASH_ACR_RUN_PD);
1942
}
1943
 
1944
/**
1945
  * @brief  Disable Flash Power-down mode during run mode or Low-power run mode
1946
  * @rmtoll FLASH_ACR    RUN_PD        LL_FLASH_DisableRunPowerDown\n
1947
  *         FLASH_PDKEYR PDKEY1        LL_FLASH_DisableRunPowerDown\n
1948
  *         FLASH_PDKEYR PDKEY2        LL_FLASH_DisableRunPowerDown
1949
  * @retval None
1950
  */
1951
__STATIC_INLINE void LL_FLASH_DisableRunPowerDown(void)
1952
{
1953
  /* Following values must be written consecutively to unlock the RUN_PD bit in
1954
     FLASH_ACR */
1955
  WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY1);
1956
  WRITE_REG(FLASH->PDKEYR, FLASH_PDKEY2);
1957
  CLEAR_BIT(FLASH->ACR, FLASH_ACR_RUN_PD);
1958
}
1959
 
1960
/**
1961
  * @brief  Enable Flash Power-down mode during Sleep or Low-power sleep mode
1962
  * @note Flash must not be put in power-down while a program or an erase operation
1963
  *       is on-going
1964
  * @rmtoll FLASH_ACR    SLEEP_PD      LL_FLASH_EnableSleepPowerDown
1965
  * @retval None
1966
  */
1967
__STATIC_INLINE void LL_FLASH_EnableSleepPowerDown(void)
1968
{
1969
  SET_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD);
1970
}
1971
 
1972
/**
1973
  * @brief  Disable Flash Power-down mode during Sleep or Low-power sleep mode
1974
  * @rmtoll FLASH_ACR    SLEEP_PD      LL_FLASH_DisableSleepPowerDown
1975
  * @retval None
1976
  */
1977
__STATIC_INLINE void LL_FLASH_DisableSleepPowerDown(void)
1978
{
1979
  CLEAR_BIT(FLASH->ACR, FLASH_ACR_SLEEP_PD);
1980
}
1981
 
1982
/**
1983
  * @}
1984
  */
1985
 
1986
/**
1987
  * @}
1988
  */
1989
 
1990
/**
1991
  * @}
1992
  */
1993
 
1994
#endif /* defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined(RI) */
1995
 
1996
/**
1997
  * @}
1998
  */
1999
 
2000
#ifdef __cplusplus
2001
}
2002
#endif
2003
 
2004
#endif /* __STM32L1xx_LL_SYSTEM_H */
2005
 
2006
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/