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