1 /**
2   ******************************************************************************
3   * @file    stm32l0xx_ll_exti.h
4   * @author  MCD Application Team
5   * @brief   Header file of EXTI LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2016 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef __STM32L0xx_LL_EXTI_H
21 #define __STM32L0xx_LL_EXTI_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32l0xx.h"
29 
30 /** @addtogroup STM32L0xx_LL_Driver
31   * @{
32   */
33 
34 #if defined (EXTI)
35 
36 /** @defgroup EXTI_LL EXTI
37   * @{
38   */
39 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /* Private constants ---------------------------------------------------------*/
43 /* Private Macros ------------------------------------------------------------*/
44 #if defined(USE_FULL_LL_DRIVER)
45 /** @defgroup EXTI_LL_Private_Macros EXTI Private Macros
46   * @{
47   */
48 /**
49   * @}
50   */
51 #endif /*USE_FULL_LL_DRIVER*/
52 /* Exported types ------------------------------------------------------------*/
53 #if defined(USE_FULL_LL_DRIVER)
54 /** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure
55   * @{
56   */
57 typedef struct
58 {
59 
60   uint32_t Line_0_31;           /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31
61                                      This parameter can be any combination of @ref EXTI_LL_EC_LINE */
62 
63   FunctionalState LineCommand;  /*!< Specifies the new state of the selected EXTI lines.
64                                      This parameter can be set either to ENABLE or DISABLE */
65 
66   uint8_t Mode;                 /*!< Specifies the mode for the EXTI lines.
67                                      This parameter can be a value of @ref EXTI_LL_EC_MODE. */
68 
69   uint8_t Trigger;              /*!< Specifies the trigger signal active edge for the EXTI lines.
70                                      This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
71 } LL_EXTI_InitTypeDef;
72 
73 /**
74   * @}
75   */
76 #endif /*USE_FULL_LL_DRIVER*/
77 
78 /* Exported constants --------------------------------------------------------*/
79 /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
80   * @{
81   */
82 
83 /** @defgroup EXTI_LL_EC_LINE LINE
84   * @{
85   */
86 #define LL_EXTI_LINE_0                 EXTI_IMR_IM0           /*!< Extended line 0 */
87 #define LL_EXTI_LINE_1                 EXTI_IMR_IM1           /*!< Extended line 1 */
88 #define LL_EXTI_LINE_2                 EXTI_IMR_IM2           /*!< Extended line 2 */
89 #define LL_EXTI_LINE_3                 EXTI_IMR_IM3           /*!< Extended line 3 */
90 #define LL_EXTI_LINE_4                 EXTI_IMR_IM4           /*!< Extended line 4 */
91 #define LL_EXTI_LINE_5                 EXTI_IMR_IM5           /*!< Extended line 5 */
92 #define LL_EXTI_LINE_6                 EXTI_IMR_IM6           /*!< Extended line 6 */
93 #define LL_EXTI_LINE_7                 EXTI_IMR_IM7           /*!< Extended line 7 */
94 #define LL_EXTI_LINE_8                 EXTI_IMR_IM8           /*!< Extended line 8 */
95 #define LL_EXTI_LINE_9                 EXTI_IMR_IM9           /*!< Extended line 9 */
96 #define LL_EXTI_LINE_10                EXTI_IMR_IM10          /*!< Extended line 10 */
97 #define LL_EXTI_LINE_11                EXTI_IMR_IM11          /*!< Extended line 11 */
98 #define LL_EXTI_LINE_12                EXTI_IMR_IM12          /*!< Extended line 12 */
99 #define LL_EXTI_LINE_13                EXTI_IMR_IM13          /*!< Extended line 13 */
100 #define LL_EXTI_LINE_14                EXTI_IMR_IM14          /*!< Extended line 14 */
101 #define LL_EXTI_LINE_15                EXTI_IMR_IM15          /*!< Extended line 15 */
102 #if defined(EXTI_IMR_IM16)
103 #define LL_EXTI_LINE_16                EXTI_IMR_IM16          /*!< Extended line 16 */
104 #endif
105 #define LL_EXTI_LINE_17                EXTI_IMR_IM17          /*!< Extended line 17 */
106 #if defined(EXTI_IMR_IM18)
107 #define LL_EXTI_LINE_18                EXTI_IMR_IM18          /*!< Extended line 18 */
108 #endif
109 #define LL_EXTI_LINE_19                EXTI_IMR_IM19          /*!< Extended line 19 */
110 #if defined(EXTI_IMR_IM20)
111 #define LL_EXTI_LINE_20                EXTI_IMR_IM20          /*!< Extended line 20 */
112 #endif
113 #if defined(EXTI_IMR_IM21)
114 #define LL_EXTI_LINE_21                EXTI_IMR_IM21          /*!< Extended line 21 */
115 #endif
116 #if defined(EXTI_IMR_IM22)
117 #define LL_EXTI_LINE_22                EXTI_IMR_IM22          /*!< Extended line 22 */
118 #endif
119 #define LL_EXTI_LINE_23                EXTI_IMR_IM23          /*!< Extended line 23 */
120 #if defined(EXTI_IMR_IM24)
121 #define LL_EXTI_LINE_24                EXTI_IMR_IM24          /*!< Extended line 24 */
122 #endif
123 #if defined(EXTI_IMR_IM25)
124 #define LL_EXTI_LINE_25                EXTI_IMR_IM25          /*!< Extended line 25 */
125 #endif
126 #if defined(EXTI_IMR_IM26)
127 #define LL_EXTI_LINE_26                EXTI_IMR_IM26          /*!< Extended line 26 */
128 #endif
129 #if defined(EXTI_IMR_IM27)
130 #define LL_EXTI_LINE_27                EXTI_IMR_IM27          /*!< Extended line 27 */
131 #endif
132 #if defined(EXTI_IMR_IM28)
133 #define LL_EXTI_LINE_28                EXTI_IMR_IM28          /*!< Extended line 28 */
134 #endif
135 #if defined(EXTI_IMR_IM29)
136 #define LL_EXTI_LINE_29                EXTI_IMR_IM29          /*!< Extended line 29 */
137 #endif
138 #if defined(EXTI_IMR_IM30)
139 #define LL_EXTI_LINE_30                EXTI_IMR_IM30          /*!< Extended line 30 */
140 #endif
141 #if defined(EXTI_IMR_IM31)
142 #define LL_EXTI_LINE_31                EXTI_IMR_IM31          /*!< Extended line 31 */
143 #endif
144 #define LL_EXTI_LINE_ALL_0_31          EXTI_IMR_IM            /*!< All Extended line not reserved*/
145 
146 
147 #define LL_EXTI_LINE_ALL               (0xFFFFFFFFU)          /*!< All Extended line */
148 
149 #if defined(USE_FULL_LL_DRIVER)
150 #define LL_EXTI_LINE_NONE              (0x00000000U)          /*!< None Extended line */
151 #endif /*USE_FULL_LL_DRIVER*/
152 
153 /**
154   * @}
155   */
156 #if defined(USE_FULL_LL_DRIVER)
157 
158 /** @defgroup EXTI_LL_EC_MODE Mode
159   * @{
160   */
161 #define LL_EXTI_MODE_IT                 (0x00U) /*!< Interrupt Mode */
162 #define LL_EXTI_MODE_EVENT              (0x01U) /*!< Event Mode */
163 #define LL_EXTI_MODE_IT_EVENT           (0x02U) /*!< Interrupt & Event Mode */
164 /**
165   * @}
166   */
167 
168 /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
169   * @{
170   */
171 #define LL_EXTI_TRIGGER_NONE            (0x00U) /*!< No Trigger Mode */
172 #define LL_EXTI_TRIGGER_RISING          (0x01U) /*!< Trigger Rising Mode */
173 #define LL_EXTI_TRIGGER_FALLING         (0x02U) /*!< Trigger Falling Mode */
174 #define LL_EXTI_TRIGGER_RISING_FALLING  (0x03U) /*!< Trigger Rising & Falling Mode */
175 
176 /**
177   * @}
178   */
179 
180 
181 #endif /*USE_FULL_LL_DRIVER*/
182 
183 
184 /**
185   * @}
186   */
187 
188 /* Exported macro ------------------------------------------------------------*/
189 /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
190   * @{
191   */
192 
193 /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
194   * @{
195   */
196 
197 /**
198   * @brief  Write a value in EXTI register
199   * @param  __REG__ Register to be written
200   * @param  __VALUE__ Value to be written in the register
201   * @retval None
202   */
203 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
204 
205 /**
206   * @brief  Read a value in EXTI register
207   * @param  __REG__ Register to be read
208   * @retval Register value
209   */
210 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
211 /**
212   * @}
213   */
214 
215 
216 /**
217   * @}
218   */
219 
220 
221 
222 /* Exported functions --------------------------------------------------------*/
223 /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
224  * @{
225  */
226 /** @defgroup EXTI_LL_EF_IT_Management IT_Management
227   * @{
228   */
229 
230 /**
231   * @brief  Enable ExtiLine Interrupt request for Lines in range 0 to 31
232   * @note The reset value for the direct or internal lines (see RM)
233   *       is set to 1 in order to enable the interrupt by default.
234   *       Bits are set automatically at Power on.
235   * @rmtoll IMR         IMx           LL_EXTI_EnableIT_0_31
236   * @param  ExtiLine This parameter can be one of the following values:
237   *         @arg @ref LL_EXTI_LINE_0
238   *         @arg @ref LL_EXTI_LINE_1
239   *         @arg @ref LL_EXTI_LINE_2
240   *         @arg @ref LL_EXTI_LINE_3
241   *         @arg @ref LL_EXTI_LINE_4
242   *         @arg @ref LL_EXTI_LINE_5
243   *         @arg @ref LL_EXTI_LINE_6
244   *         @arg @ref LL_EXTI_LINE_7
245   *         @arg @ref LL_EXTI_LINE_8
246   *         @arg @ref LL_EXTI_LINE_9
247   *         @arg @ref LL_EXTI_LINE_10
248   *         @arg @ref LL_EXTI_LINE_11
249   *         @arg @ref LL_EXTI_LINE_12
250   *         @arg @ref LL_EXTI_LINE_13
251   *         @arg @ref LL_EXTI_LINE_14
252   *         @arg @ref LL_EXTI_LINE_15
253   *         @arg @ref LL_EXTI_LINE_16
254   *         @arg @ref LL_EXTI_LINE_17
255   *         @arg @ref LL_EXTI_LINE_18
256   *         @arg @ref LL_EXTI_LINE_19
257   *         @arg @ref LL_EXTI_LINE_20
258   *         @arg @ref LL_EXTI_LINE_21
259   *         @arg @ref LL_EXTI_LINE_22
260   *         @arg @ref LL_EXTI_LINE_23
261   *         @arg @ref LL_EXTI_LINE_24
262   *         @arg @ref LL_EXTI_LINE_25
263   *         @arg @ref LL_EXTI_LINE_26
264   *         @arg @ref LL_EXTI_LINE_27
265   *         @arg @ref LL_EXTI_LINE_28
266   *         @arg @ref LL_EXTI_LINE_29
267   *         @arg @ref LL_EXTI_LINE_30
268   *         @arg @ref LL_EXTI_LINE_31
269   *         @arg @ref LL_EXTI_LINE_ALL_0_31
270   * @note   Please check each device line mapping for EXTI Line availability
271   * @retval None
272   */
LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)273 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
274 {
275   SET_BIT(EXTI->IMR, ExtiLine);
276 }
277 
278 /**
279   * @brief  Disable ExtiLine Interrupt request for Lines in range 0 to 31
280   * @note The reset value for the direct or internal lines (see RM)
281   *       is set to 1 in order to enable the interrupt by default.
282   *       Bits are set automatically at Power on.
283   * @rmtoll IMR         IMx           LL_EXTI_DisableIT_0_31
284   * @param  ExtiLine This parameter can be one of the following values:
285   *         @arg @ref LL_EXTI_LINE_0
286   *         @arg @ref LL_EXTI_LINE_1
287   *         @arg @ref LL_EXTI_LINE_2
288   *         @arg @ref LL_EXTI_LINE_3
289   *         @arg @ref LL_EXTI_LINE_4
290   *         @arg @ref LL_EXTI_LINE_5
291   *         @arg @ref LL_EXTI_LINE_6
292   *         @arg @ref LL_EXTI_LINE_7
293   *         @arg @ref LL_EXTI_LINE_8
294   *         @arg @ref LL_EXTI_LINE_9
295   *         @arg @ref LL_EXTI_LINE_10
296   *         @arg @ref LL_EXTI_LINE_11
297   *         @arg @ref LL_EXTI_LINE_12
298   *         @arg @ref LL_EXTI_LINE_13
299   *         @arg @ref LL_EXTI_LINE_14
300   *         @arg @ref LL_EXTI_LINE_15
301   *         @arg @ref LL_EXTI_LINE_16
302   *         @arg @ref LL_EXTI_LINE_17
303   *         @arg @ref LL_EXTI_LINE_18
304   *         @arg @ref LL_EXTI_LINE_19
305   *         @arg @ref LL_EXTI_LINE_20
306   *         @arg @ref LL_EXTI_LINE_21
307   *         @arg @ref LL_EXTI_LINE_22
308   *         @arg @ref LL_EXTI_LINE_23
309   *         @arg @ref LL_EXTI_LINE_24
310   *         @arg @ref LL_EXTI_LINE_25
311   *         @arg @ref LL_EXTI_LINE_26
312   *         @arg @ref LL_EXTI_LINE_27
313   *         @arg @ref LL_EXTI_LINE_28
314   *         @arg @ref LL_EXTI_LINE_29
315   *         @arg @ref LL_EXTI_LINE_30
316   *         @arg @ref LL_EXTI_LINE_31
317   *         @arg @ref LL_EXTI_LINE_ALL_0_31
318   * @note   Please check each device line mapping for EXTI Line availability
319   * @retval None
320   */
LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)321 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
322 {
323   CLEAR_BIT(EXTI->IMR, ExtiLine);
324 }
325 
326 
327 /**
328   * @brief  Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
329   * @note The reset value for the direct or internal lines (see RM)
330   *       is set to 1 in order to enable the interrupt by default.
331   *       Bits are set automatically at Power on.
332   * @rmtoll IMR         IMx           LL_EXTI_IsEnabledIT_0_31
333   * @param  ExtiLine This parameter can be one of the following values:
334   *         @arg @ref LL_EXTI_LINE_0
335   *         @arg @ref LL_EXTI_LINE_1
336   *         @arg @ref LL_EXTI_LINE_2
337   *         @arg @ref LL_EXTI_LINE_3
338   *         @arg @ref LL_EXTI_LINE_4
339   *         @arg @ref LL_EXTI_LINE_5
340   *         @arg @ref LL_EXTI_LINE_6
341   *         @arg @ref LL_EXTI_LINE_7
342   *         @arg @ref LL_EXTI_LINE_8
343   *         @arg @ref LL_EXTI_LINE_9
344   *         @arg @ref LL_EXTI_LINE_10
345   *         @arg @ref LL_EXTI_LINE_11
346   *         @arg @ref LL_EXTI_LINE_12
347   *         @arg @ref LL_EXTI_LINE_13
348   *         @arg @ref LL_EXTI_LINE_14
349   *         @arg @ref LL_EXTI_LINE_15
350   *         @arg @ref LL_EXTI_LINE_16
351   *         @arg @ref LL_EXTI_LINE_17
352   *         @arg @ref LL_EXTI_LINE_18
353   *         @arg @ref LL_EXTI_LINE_19
354   *         @arg @ref LL_EXTI_LINE_20
355   *         @arg @ref LL_EXTI_LINE_21
356   *         @arg @ref LL_EXTI_LINE_22
357   *         @arg @ref LL_EXTI_LINE_23
358   *         @arg @ref LL_EXTI_LINE_24
359   *         @arg @ref LL_EXTI_LINE_25
360   *         @arg @ref LL_EXTI_LINE_26
361   *         @arg @ref LL_EXTI_LINE_27
362   *         @arg @ref LL_EXTI_LINE_28
363   *         @arg @ref LL_EXTI_LINE_29
364   *         @arg @ref LL_EXTI_LINE_30
365   *         @arg @ref LL_EXTI_LINE_31
366   *         @arg @ref LL_EXTI_LINE_ALL_0_31
367   * @note   Please check each device line mapping for EXTI Line availability
368   * @retval State of bit (1 or 0).
369   */
LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)370 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
371 {
372   return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
373 }
374 
375 
376 /**
377   * @}
378   */
379 
380 /** @defgroup EXTI_LL_EF_Event_Management Event_Management
381   * @{
382   */
383 
384 /**
385   * @brief  Enable ExtiLine Event request for Lines in range 0 to 31
386   * @rmtoll EMR         EMx           LL_EXTI_EnableEvent_0_31
387   * @param  ExtiLine This parameter can be one of the following values:
388   *         @arg @ref LL_EXTI_LINE_0
389   *         @arg @ref LL_EXTI_LINE_1
390   *         @arg @ref LL_EXTI_LINE_2
391   *         @arg @ref LL_EXTI_LINE_3
392   *         @arg @ref LL_EXTI_LINE_4
393   *         @arg @ref LL_EXTI_LINE_5
394   *         @arg @ref LL_EXTI_LINE_6
395   *         @arg @ref LL_EXTI_LINE_7
396   *         @arg @ref LL_EXTI_LINE_8
397   *         @arg @ref LL_EXTI_LINE_9
398   *         @arg @ref LL_EXTI_LINE_10
399   *         @arg @ref LL_EXTI_LINE_11
400   *         @arg @ref LL_EXTI_LINE_12
401   *         @arg @ref LL_EXTI_LINE_13
402   *         @arg @ref LL_EXTI_LINE_14
403   *         @arg @ref LL_EXTI_LINE_15
404   *         @arg @ref LL_EXTI_LINE_16
405   *         @arg @ref LL_EXTI_LINE_17
406   *         @arg @ref LL_EXTI_LINE_18
407   *         @arg @ref LL_EXTI_LINE_19
408   *         @arg @ref LL_EXTI_LINE_20
409   *         @arg @ref LL_EXTI_LINE_21
410   *         @arg @ref LL_EXTI_LINE_22
411   *         @arg @ref LL_EXTI_LINE_23
412   *         @arg @ref LL_EXTI_LINE_24
413   *         @arg @ref LL_EXTI_LINE_25
414   *         @arg @ref LL_EXTI_LINE_26
415   *         @arg @ref LL_EXTI_LINE_27
416   *         @arg @ref LL_EXTI_LINE_28
417   *         @arg @ref LL_EXTI_LINE_29
418   *         @arg @ref LL_EXTI_LINE_30
419   *         @arg @ref LL_EXTI_LINE_31
420   *         @arg @ref LL_EXTI_LINE_ALL_0_31
421   * @note   Please check each device line mapping for EXTI Line availability
422   * @retval None
423   */
LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)424 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
425 {
426   SET_BIT(EXTI->EMR, ExtiLine);
427 
428 }
429 
430 
431 /**
432   * @brief  Disable ExtiLine Event request for Lines in range 0 to 31
433   * @rmtoll EMR         EMx           LL_EXTI_DisableEvent_0_31
434   * @param  ExtiLine This parameter can be one of the following values:
435   *         @arg @ref LL_EXTI_LINE_0
436   *         @arg @ref LL_EXTI_LINE_1
437   *         @arg @ref LL_EXTI_LINE_2
438   *         @arg @ref LL_EXTI_LINE_3
439   *         @arg @ref LL_EXTI_LINE_4
440   *         @arg @ref LL_EXTI_LINE_5
441   *         @arg @ref LL_EXTI_LINE_6
442   *         @arg @ref LL_EXTI_LINE_7
443   *         @arg @ref LL_EXTI_LINE_8
444   *         @arg @ref LL_EXTI_LINE_9
445   *         @arg @ref LL_EXTI_LINE_10
446   *         @arg @ref LL_EXTI_LINE_11
447   *         @arg @ref LL_EXTI_LINE_12
448   *         @arg @ref LL_EXTI_LINE_13
449   *         @arg @ref LL_EXTI_LINE_14
450   *         @arg @ref LL_EXTI_LINE_15
451   *         @arg @ref LL_EXTI_LINE_16
452   *         @arg @ref LL_EXTI_LINE_17
453   *         @arg @ref LL_EXTI_LINE_18
454   *         @arg @ref LL_EXTI_LINE_19
455   *         @arg @ref LL_EXTI_LINE_20
456   *         @arg @ref LL_EXTI_LINE_21
457   *         @arg @ref LL_EXTI_LINE_22
458   *         @arg @ref LL_EXTI_LINE_23
459   *         @arg @ref LL_EXTI_LINE_24
460   *         @arg @ref LL_EXTI_LINE_25
461   *         @arg @ref LL_EXTI_LINE_26
462   *         @arg @ref LL_EXTI_LINE_27
463   *         @arg @ref LL_EXTI_LINE_28
464   *         @arg @ref LL_EXTI_LINE_29
465   *         @arg @ref LL_EXTI_LINE_30
466   *         @arg @ref LL_EXTI_LINE_31
467   *         @arg @ref LL_EXTI_LINE_ALL_0_31
468   * @note   Please check each device line mapping for EXTI Line availability
469   * @retval None
470   */
LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)471 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
472 {
473   CLEAR_BIT(EXTI->EMR, ExtiLine);
474 }
475 
476 
477 /**
478   * @brief  Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
479   * @rmtoll EMR         EMx           LL_EXTI_IsEnabledEvent_0_31
480   * @param  ExtiLine This parameter can be one of the following values:
481   *         @arg @ref LL_EXTI_LINE_0
482   *         @arg @ref LL_EXTI_LINE_1
483   *         @arg @ref LL_EXTI_LINE_2
484   *         @arg @ref LL_EXTI_LINE_3
485   *         @arg @ref LL_EXTI_LINE_4
486   *         @arg @ref LL_EXTI_LINE_5
487   *         @arg @ref LL_EXTI_LINE_6
488   *         @arg @ref LL_EXTI_LINE_7
489   *         @arg @ref LL_EXTI_LINE_8
490   *         @arg @ref LL_EXTI_LINE_9
491   *         @arg @ref LL_EXTI_LINE_10
492   *         @arg @ref LL_EXTI_LINE_11
493   *         @arg @ref LL_EXTI_LINE_12
494   *         @arg @ref LL_EXTI_LINE_13
495   *         @arg @ref LL_EXTI_LINE_14
496   *         @arg @ref LL_EXTI_LINE_15
497   *         @arg @ref LL_EXTI_LINE_16
498   *         @arg @ref LL_EXTI_LINE_17
499   *         @arg @ref LL_EXTI_LINE_18
500   *         @arg @ref LL_EXTI_LINE_19
501   *         @arg @ref LL_EXTI_LINE_20
502   *         @arg @ref LL_EXTI_LINE_21
503   *         @arg @ref LL_EXTI_LINE_22
504   *         @arg @ref LL_EXTI_LINE_23
505   *         @arg @ref LL_EXTI_LINE_24
506   *         @arg @ref LL_EXTI_LINE_25
507   *         @arg @ref LL_EXTI_LINE_26
508   *         @arg @ref LL_EXTI_LINE_27
509   *         @arg @ref LL_EXTI_LINE_28
510   *         @arg @ref LL_EXTI_LINE_29
511   *         @arg @ref LL_EXTI_LINE_30
512   *         @arg @ref LL_EXTI_LINE_31
513   *         @arg @ref LL_EXTI_LINE_ALL_0_31
514   * @note   Please check each device line mapping for EXTI Line availability
515   * @retval State of bit (1 or 0).
516   */
LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)517 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
518 {
519   return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
520 
521 }
522 
523 
524 /**
525   * @}
526   */
527 
528 /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
529   * @{
530   */
531 
532 /**
533   * @brief  Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
534   * @note The configurable wakeup lines are edge-triggered. No glitch must be
535   *       generated on these lines. If a rising edge on a configurable interrupt
536   *       line occurs during a write operation in the EXTI_RTSR register, the
537   *       pending bit is not set.
538   *       Rising and falling edge triggers can be set for
539   *       the same interrupt line. In this case, both generate a trigger
540   *       condition.
541   * @rmtoll RTSR        RTx           LL_EXTI_EnableRisingTrig_0_31
542   * @param  ExtiLine This parameter can be a combination of the following values:
543   *         @arg @ref LL_EXTI_LINE_0
544   *         @arg @ref LL_EXTI_LINE_1
545   *         @arg @ref LL_EXTI_LINE_2
546   *         @arg @ref LL_EXTI_LINE_3
547   *         @arg @ref LL_EXTI_LINE_4
548   *         @arg @ref LL_EXTI_LINE_5
549   *         @arg @ref LL_EXTI_LINE_6
550   *         @arg @ref LL_EXTI_LINE_7
551   *         @arg @ref LL_EXTI_LINE_8
552   *         @arg @ref LL_EXTI_LINE_9
553   *         @arg @ref LL_EXTI_LINE_10
554   *         @arg @ref LL_EXTI_LINE_11
555   *         @arg @ref LL_EXTI_LINE_12
556   *         @arg @ref LL_EXTI_LINE_13
557   *         @arg @ref LL_EXTI_LINE_14
558   *         @arg @ref LL_EXTI_LINE_15
559   *         @arg @ref LL_EXTI_LINE_16
560   *         @arg @ref LL_EXTI_LINE_18
561   *         @arg @ref LL_EXTI_LINE_19
562   *         @arg @ref LL_EXTI_LINE_20
563   *         @arg @ref LL_EXTI_LINE_21
564   *         @arg @ref LL_EXTI_LINE_22
565   *         @arg @ref LL_EXTI_LINE_29
566   *         @arg @ref LL_EXTI_LINE_30
567   *         @arg @ref LL_EXTI_LINE_31
568   * @note   Please check each device line mapping for EXTI Line availability
569   * @retval None
570   */
LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)571 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
572 {
573   SET_BIT(EXTI->RTSR, ExtiLine);
574 
575 }
576 
577 
578 /**
579   * @brief  Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
580   * @note The configurable wakeup lines are edge-triggered. No glitch must be
581   *       generated on these lines. If a rising edge on a configurable interrupt
582   *       line occurs during a write operation in the EXTI_RTSR register, the
583   *       pending bit is not set.
584   *       Rising and falling edge triggers can be set for
585   *       the same interrupt line. In this case, both generate a trigger
586   *       condition.
587   * @rmtoll RTSR        RTx           LL_EXTI_DisableRisingTrig_0_31
588   * @param  ExtiLine This parameter can be a combination of the following values:
589   *         @arg @ref LL_EXTI_LINE_0
590   *         @arg @ref LL_EXTI_LINE_1
591   *         @arg @ref LL_EXTI_LINE_2
592   *         @arg @ref LL_EXTI_LINE_3
593   *         @arg @ref LL_EXTI_LINE_4
594   *         @arg @ref LL_EXTI_LINE_5
595   *         @arg @ref LL_EXTI_LINE_6
596   *         @arg @ref LL_EXTI_LINE_7
597   *         @arg @ref LL_EXTI_LINE_8
598   *         @arg @ref LL_EXTI_LINE_9
599   *         @arg @ref LL_EXTI_LINE_10
600   *         @arg @ref LL_EXTI_LINE_11
601   *         @arg @ref LL_EXTI_LINE_12
602   *         @arg @ref LL_EXTI_LINE_13
603   *         @arg @ref LL_EXTI_LINE_14
604   *         @arg @ref LL_EXTI_LINE_15
605   *         @arg @ref LL_EXTI_LINE_16
606   *         @arg @ref LL_EXTI_LINE_18
607   *         @arg @ref LL_EXTI_LINE_19
608   *         @arg @ref LL_EXTI_LINE_20
609   *         @arg @ref LL_EXTI_LINE_21
610   *         @arg @ref LL_EXTI_LINE_22
611   *         @arg @ref LL_EXTI_LINE_29
612   *         @arg @ref LL_EXTI_LINE_30
613   *         @arg @ref LL_EXTI_LINE_31
614   * @note   Please check each device line mapping for EXTI Line availability
615   * @retval None
616   */
LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)617 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
618 {
619   CLEAR_BIT(EXTI->RTSR, ExtiLine);
620 
621 }
622 
623 
624 /**
625   * @brief  Check if rising edge trigger is enabled for Lines in range 0 to 31
626   * @rmtoll RTSR        RTx           LL_EXTI_IsEnabledRisingTrig_0_31
627   * @param  ExtiLine This parameter can be a combination of the following values:
628   *         @arg @ref LL_EXTI_LINE_0
629   *         @arg @ref LL_EXTI_LINE_1
630   *         @arg @ref LL_EXTI_LINE_2
631   *         @arg @ref LL_EXTI_LINE_3
632   *         @arg @ref LL_EXTI_LINE_4
633   *         @arg @ref LL_EXTI_LINE_5
634   *         @arg @ref LL_EXTI_LINE_6
635   *         @arg @ref LL_EXTI_LINE_7
636   *         @arg @ref LL_EXTI_LINE_8
637   *         @arg @ref LL_EXTI_LINE_9
638   *         @arg @ref LL_EXTI_LINE_10
639   *         @arg @ref LL_EXTI_LINE_11
640   *         @arg @ref LL_EXTI_LINE_12
641   *         @arg @ref LL_EXTI_LINE_13
642   *         @arg @ref LL_EXTI_LINE_14
643   *         @arg @ref LL_EXTI_LINE_15
644   *         @arg @ref LL_EXTI_LINE_16
645   *         @arg @ref LL_EXTI_LINE_18
646   *         @arg @ref LL_EXTI_LINE_19
647   *         @arg @ref LL_EXTI_LINE_20
648   *         @arg @ref LL_EXTI_LINE_21
649   *         @arg @ref LL_EXTI_LINE_22
650   *         @arg @ref LL_EXTI_LINE_29
651   *         @arg @ref LL_EXTI_LINE_30
652   *         @arg @ref LL_EXTI_LINE_31
653   * @note   Please check each device line mapping for EXTI Line availability
654   * @retval State of bit (1 or 0).
655   */
LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)656 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
657 {
658   return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
659 }
660 
661 
662 /**
663   * @}
664   */
665 
666 /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
667   * @{
668   */
669 
670 /**
671   * @brief  Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
672   * @note The configurable wakeup lines are edge-triggered. No glitch must be
673   *       generated on these lines. If a falling edge on a configurable interrupt
674   *       line occurs during a write operation in the EXTI_FTSR register, the
675   *       pending bit is not set.
676   *       Rising and falling edge triggers can be set for
677   *       the same interrupt line. In this case, both generate a trigger
678   *       condition.
679   * @rmtoll FTSR        FTx           LL_EXTI_EnableFallingTrig_0_31
680   * @param  ExtiLine This parameter can be a combination of the following values:
681   *         @arg @ref LL_EXTI_LINE_0
682   *         @arg @ref LL_EXTI_LINE_1
683   *         @arg @ref LL_EXTI_LINE_2
684   *         @arg @ref LL_EXTI_LINE_3
685   *         @arg @ref LL_EXTI_LINE_4
686   *         @arg @ref LL_EXTI_LINE_5
687   *         @arg @ref LL_EXTI_LINE_6
688   *         @arg @ref LL_EXTI_LINE_7
689   *         @arg @ref LL_EXTI_LINE_8
690   *         @arg @ref LL_EXTI_LINE_9
691   *         @arg @ref LL_EXTI_LINE_10
692   *         @arg @ref LL_EXTI_LINE_11
693   *         @arg @ref LL_EXTI_LINE_12
694   *         @arg @ref LL_EXTI_LINE_13
695   *         @arg @ref LL_EXTI_LINE_14
696   *         @arg @ref LL_EXTI_LINE_15
697   *         @arg @ref LL_EXTI_LINE_16
698   *         @arg @ref LL_EXTI_LINE_18
699   *         @arg @ref LL_EXTI_LINE_19
700   *         @arg @ref LL_EXTI_LINE_20
701   *         @arg @ref LL_EXTI_LINE_21
702   *         @arg @ref LL_EXTI_LINE_22
703   *         @arg @ref LL_EXTI_LINE_29
704   *         @arg @ref LL_EXTI_LINE_30
705   *         @arg @ref LL_EXTI_LINE_31
706   * @note   Please check each device line mapping for EXTI Line availability
707   * @retval None
708   */
LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)709 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
710 {
711   SET_BIT(EXTI->FTSR, ExtiLine);
712 }
713 
714 
715 /**
716   * @brief  Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
717   * @note The configurable wakeup lines are edge-triggered. No glitch must be
718   *       generated on these lines. If a Falling edge on a configurable interrupt
719   *       line occurs during a write operation in the EXTI_FTSR register, the
720   *       pending bit is not set.
721   *       Rising and falling edge triggers can be set for the same interrupt line.
722   *       In this case, both generate a trigger condition.
723   * @rmtoll FTSR        FTx           LL_EXTI_DisableFallingTrig_0_31
724   * @param  ExtiLine This parameter can be a combination of the following values:
725   *         @arg @ref LL_EXTI_LINE_0
726   *         @arg @ref LL_EXTI_LINE_1
727   *         @arg @ref LL_EXTI_LINE_2
728   *         @arg @ref LL_EXTI_LINE_3
729   *         @arg @ref LL_EXTI_LINE_4
730   *         @arg @ref LL_EXTI_LINE_5
731   *         @arg @ref LL_EXTI_LINE_6
732   *         @arg @ref LL_EXTI_LINE_7
733   *         @arg @ref LL_EXTI_LINE_8
734   *         @arg @ref LL_EXTI_LINE_9
735   *         @arg @ref LL_EXTI_LINE_10
736   *         @arg @ref LL_EXTI_LINE_11
737   *         @arg @ref LL_EXTI_LINE_12
738   *         @arg @ref LL_EXTI_LINE_13
739   *         @arg @ref LL_EXTI_LINE_14
740   *         @arg @ref LL_EXTI_LINE_15
741   *         @arg @ref LL_EXTI_LINE_16
742   *         @arg @ref LL_EXTI_LINE_18
743   *         @arg @ref LL_EXTI_LINE_19
744   *         @arg @ref LL_EXTI_LINE_20
745   *         @arg @ref LL_EXTI_LINE_21
746   *         @arg @ref LL_EXTI_LINE_22
747   *         @arg @ref LL_EXTI_LINE_29
748   *         @arg @ref LL_EXTI_LINE_30
749   *         @arg @ref LL_EXTI_LINE_31
750   * @note   Please check each device line mapping for EXTI Line availability
751   * @retval None
752   */
LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)753 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
754 {
755   CLEAR_BIT(EXTI->FTSR, ExtiLine);
756 }
757 
758 
759 /**
760   * @brief  Check if falling edge trigger is enabled for Lines in range 0 to 31
761   * @rmtoll FTSR        FTx           LL_EXTI_IsEnabledFallingTrig_0_31
762   * @param  ExtiLine This parameter can be a combination of the following values:
763   *         @arg @ref LL_EXTI_LINE_0
764   *         @arg @ref LL_EXTI_LINE_1
765   *         @arg @ref LL_EXTI_LINE_2
766   *         @arg @ref LL_EXTI_LINE_3
767   *         @arg @ref LL_EXTI_LINE_4
768   *         @arg @ref LL_EXTI_LINE_5
769   *         @arg @ref LL_EXTI_LINE_6
770   *         @arg @ref LL_EXTI_LINE_7
771   *         @arg @ref LL_EXTI_LINE_8
772   *         @arg @ref LL_EXTI_LINE_9
773   *         @arg @ref LL_EXTI_LINE_10
774   *         @arg @ref LL_EXTI_LINE_11
775   *         @arg @ref LL_EXTI_LINE_12
776   *         @arg @ref LL_EXTI_LINE_13
777   *         @arg @ref LL_EXTI_LINE_14
778   *         @arg @ref LL_EXTI_LINE_15
779   *         @arg @ref LL_EXTI_LINE_16
780   *         @arg @ref LL_EXTI_LINE_18
781   *         @arg @ref LL_EXTI_LINE_19
782   *         @arg @ref LL_EXTI_LINE_20
783   *         @arg @ref LL_EXTI_LINE_21
784   *         @arg @ref LL_EXTI_LINE_22
785   *         @arg @ref LL_EXTI_LINE_29
786   *         @arg @ref LL_EXTI_LINE_30
787   *         @arg @ref LL_EXTI_LINE_31
788   * @note   Please check each device line mapping for EXTI Line availability
789   * @retval State of bit (1 or 0).
790   */
LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)791 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
792 {
793   return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
794 }
795 
796 
797 /**
798   * @}
799   */
800 
801 /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
802   * @{
803   */
804 
805 /**
806   * @brief  Generate a software Interrupt Event for Lines in range 0 to 31
807   * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
808   *       this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
809   *       resulting in an interrupt request generation.
810   *       This bit is cleared by clearing the corresponding bit in the EXTI_PR
811   *       register (by writing a 1 into the bit)
812   * @rmtoll SWIER       SWIx          LL_EXTI_GenerateSWI_0_31
813   * @param  ExtiLine This parameter can be a combination of the following values:
814   *         @arg @ref LL_EXTI_LINE_0
815   *         @arg @ref LL_EXTI_LINE_1
816   *         @arg @ref LL_EXTI_LINE_2
817   *         @arg @ref LL_EXTI_LINE_3
818   *         @arg @ref LL_EXTI_LINE_4
819   *         @arg @ref LL_EXTI_LINE_5
820   *         @arg @ref LL_EXTI_LINE_6
821   *         @arg @ref LL_EXTI_LINE_7
822   *         @arg @ref LL_EXTI_LINE_8
823   *         @arg @ref LL_EXTI_LINE_9
824   *         @arg @ref LL_EXTI_LINE_10
825   *         @arg @ref LL_EXTI_LINE_11
826   *         @arg @ref LL_EXTI_LINE_12
827   *         @arg @ref LL_EXTI_LINE_13
828   *         @arg @ref LL_EXTI_LINE_14
829   *         @arg @ref LL_EXTI_LINE_15
830   *         @arg @ref LL_EXTI_LINE_16
831   *         @arg @ref LL_EXTI_LINE_18
832   *         @arg @ref LL_EXTI_LINE_19
833   *         @arg @ref LL_EXTI_LINE_20
834   *         @arg @ref LL_EXTI_LINE_21
835   *         @arg @ref LL_EXTI_LINE_22
836   *         @arg @ref LL_EXTI_LINE_29
837   *         @arg @ref LL_EXTI_LINE_30
838   *         @arg @ref LL_EXTI_LINE_31
839   * @note   Please check each device line mapping for EXTI Line availability
840   * @retval None
841   */
LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)842 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
843 {
844   SET_BIT(EXTI->SWIER, ExtiLine);
845 }
846 
847 
848 /**
849   * @}
850   */
851 
852 /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
853   * @{
854   */
855 
856 /**
857   * @brief  Check if the ExtLine Flag is set or not for Lines in range 0 to 31
858   * @note This bit is set when the selected edge event arrives on the interrupt
859   *       line. This bit is cleared by writing a 1 to the bit.
860   * @rmtoll PR          PIFx           LL_EXTI_IsActiveFlag_0_31
861   * @param  ExtiLine This parameter can be a combination of the following values:
862   *         @arg @ref LL_EXTI_LINE_0
863   *         @arg @ref LL_EXTI_LINE_1
864   *         @arg @ref LL_EXTI_LINE_2
865   *         @arg @ref LL_EXTI_LINE_3
866   *         @arg @ref LL_EXTI_LINE_4
867   *         @arg @ref LL_EXTI_LINE_5
868   *         @arg @ref LL_EXTI_LINE_6
869   *         @arg @ref LL_EXTI_LINE_7
870   *         @arg @ref LL_EXTI_LINE_8
871   *         @arg @ref LL_EXTI_LINE_9
872   *         @arg @ref LL_EXTI_LINE_10
873   *         @arg @ref LL_EXTI_LINE_11
874   *         @arg @ref LL_EXTI_LINE_12
875   *         @arg @ref LL_EXTI_LINE_13
876   *         @arg @ref LL_EXTI_LINE_14
877   *         @arg @ref LL_EXTI_LINE_15
878   *         @arg @ref LL_EXTI_LINE_16
879   *         @arg @ref LL_EXTI_LINE_18
880   *         @arg @ref LL_EXTI_LINE_19
881   *         @arg @ref LL_EXTI_LINE_20
882   *         @arg @ref LL_EXTI_LINE_21
883   *         @arg @ref LL_EXTI_LINE_22
884   *         @arg @ref LL_EXTI_LINE_29
885   *         @arg @ref LL_EXTI_LINE_30
886   *         @arg @ref LL_EXTI_LINE_31
887   * @note   Please check each device line mapping for EXTI Line availability
888   * @retval State of bit (1 or 0).
889   */
LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)890 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
891 {
892   return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
893 }
894 
895 
896 /**
897   * @brief  Read ExtLine Combination Flag for Lines in range 0 to 31
898   * @note This bit is set when the selected edge event arrives on the interrupt
899   *       line. This bit is cleared by writing a 1 to the bit.
900   * @rmtoll PR          PIFx           LL_EXTI_ReadFlag_0_31
901   * @param  ExtiLine This parameter can be a combination of the following values:
902   *         @arg @ref LL_EXTI_LINE_0
903   *         @arg @ref LL_EXTI_LINE_1
904   *         @arg @ref LL_EXTI_LINE_2
905   *         @arg @ref LL_EXTI_LINE_3
906   *         @arg @ref LL_EXTI_LINE_4
907   *         @arg @ref LL_EXTI_LINE_5
908   *         @arg @ref LL_EXTI_LINE_6
909   *         @arg @ref LL_EXTI_LINE_7
910   *         @arg @ref LL_EXTI_LINE_8
911   *         @arg @ref LL_EXTI_LINE_9
912   *         @arg @ref LL_EXTI_LINE_10
913   *         @arg @ref LL_EXTI_LINE_11
914   *         @arg @ref LL_EXTI_LINE_12
915   *         @arg @ref LL_EXTI_LINE_13
916   *         @arg @ref LL_EXTI_LINE_14
917   *         @arg @ref LL_EXTI_LINE_15
918   *         @arg @ref LL_EXTI_LINE_16
919   *         @arg @ref LL_EXTI_LINE_18
920   *         @arg @ref LL_EXTI_LINE_19
921   *         @arg @ref LL_EXTI_LINE_20
922   *         @arg @ref LL_EXTI_LINE_21
923   *         @arg @ref LL_EXTI_LINE_22
924   *         @arg @ref LL_EXTI_LINE_29
925   *         @arg @ref LL_EXTI_LINE_30
926   *         @arg @ref LL_EXTI_LINE_31
927   * @note   Please check each device line mapping for EXTI Line availability
928   * @retval @note This bit is set when the selected edge event arrives on the interrupt
929   */
LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)930 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
931 {
932   return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
933 }
934 
935 
936 /**
937   * @brief  Clear ExtLine Flags  for Lines in range 0 to 31
938   * @note This bit is set when the selected edge event arrives on the interrupt
939   *       line. This bit is cleared by writing a 1 to the bit.
940   * @rmtoll PR          PIFx           LL_EXTI_ClearFlag_0_31
941   * @param  ExtiLine This parameter can be a combination of the following values:
942   *         @arg @ref LL_EXTI_LINE_0
943   *         @arg @ref LL_EXTI_LINE_1
944   *         @arg @ref LL_EXTI_LINE_2
945   *         @arg @ref LL_EXTI_LINE_3
946   *         @arg @ref LL_EXTI_LINE_4
947   *         @arg @ref LL_EXTI_LINE_5
948   *         @arg @ref LL_EXTI_LINE_6
949   *         @arg @ref LL_EXTI_LINE_7
950   *         @arg @ref LL_EXTI_LINE_8
951   *         @arg @ref LL_EXTI_LINE_9
952   *         @arg @ref LL_EXTI_LINE_10
953   *         @arg @ref LL_EXTI_LINE_11
954   *         @arg @ref LL_EXTI_LINE_12
955   *         @arg @ref LL_EXTI_LINE_13
956   *         @arg @ref LL_EXTI_LINE_14
957   *         @arg @ref LL_EXTI_LINE_15
958   *         @arg @ref LL_EXTI_LINE_16
959   *         @arg @ref LL_EXTI_LINE_18
960   *         @arg @ref LL_EXTI_LINE_19
961   *         @arg @ref LL_EXTI_LINE_20
962   *         @arg @ref LL_EXTI_LINE_21
963   *         @arg @ref LL_EXTI_LINE_22
964   *         @arg @ref LL_EXTI_LINE_29
965   *         @arg @ref LL_EXTI_LINE_30
966   *         @arg @ref LL_EXTI_LINE_31
967   * @note   Please check each device line mapping for EXTI Line availability
968   * @retval None
969   */
LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)970 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
971 {
972   WRITE_REG(EXTI->PR, ExtiLine);
973 }
974 
975 
976 /**
977   * @}
978   */
979 
980 #if defined(USE_FULL_LL_DRIVER)
981 /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
982   * @{
983   */
984 
985 uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
986 uint32_t LL_EXTI_DeInit(void);
987 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
988 
989 
990 /**
991   * @}
992   */
993 #endif /* USE_FULL_LL_DRIVER */
994 
995 /**
996   * @}
997   */
998 
999 /**
1000   * @}
1001   */
1002 
1003 #endif /* EXTI */
1004 
1005 /**
1006   * @}
1007   */
1008 
1009 #ifdef __cplusplus
1010 }
1011 #endif
1012 
1013 #endif /* __STM32L0xx_LL_EXTI_H */
1014 
1015