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