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>© 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