1 /**
2 ******************************************************************************
3 * @file stm32h7xx_ll_exti.h
4 * @author MCD Application Team
5 * @brief Header file of EXTI LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2017 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 __STM32H7xx_LL_EXTI_H
21 #define __STM32H7xx_LL_EXTI_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32h7xx.h"
29
30 /** @addtogroup STM32H7xx_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 uint32_t Line_32_63; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 32 to 63
64 This parameter can be any combination of @ref EXTI_LL_EC_LINE */
65
66 uint32_t Line_64_95; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 64 to 95
67 This parameter can be any combination of @ref EXTI_LL_EC_LINE */
68
69 FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines.
70 This parameter can be set either to ENABLE or DISABLE */
71
72 uint8_t Mode; /*!< Specifies the mode for the EXTI lines.
73 This parameter can be a value of @ref EXTI_LL_EC_MODE. */
74
75 uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.
76 This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
77 } LL_EXTI_InitTypeDef;
78
79 /**
80 * @}
81 */
82 #endif /*USE_FULL_LL_DRIVER*/
83
84 /* Exported constants --------------------------------------------------------*/
85 /** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
86 * @{
87 */
88
89 /** @defgroup EXTI_LL_EC_LINE LINE
90 * @{
91 */
92 #define LL_EXTI_LINE_0 EXTI_IMR1_IM0 /*!< Extended line 0 */
93 #define LL_EXTI_LINE_1 EXTI_IMR1_IM1 /*!< Extended line 1 */
94 #define LL_EXTI_LINE_2 EXTI_IMR1_IM2 /*!< Extended line 2 */
95 #define LL_EXTI_LINE_3 EXTI_IMR1_IM3 /*!< Extended line 3 */
96 #define LL_EXTI_LINE_4 EXTI_IMR1_IM4 /*!< Extended line 4 */
97 #define LL_EXTI_LINE_5 EXTI_IMR1_IM5 /*!< Extended line 5 */
98 #define LL_EXTI_LINE_6 EXTI_IMR1_IM6 /*!< Extended line 6 */
99 #define LL_EXTI_LINE_7 EXTI_IMR1_IM7 /*!< Extended line 7 */
100 #define LL_EXTI_LINE_8 EXTI_IMR1_IM8 /*!< Extended line 8 */
101 #define LL_EXTI_LINE_9 EXTI_IMR1_IM9 /*!< Extended line 9 */
102 #define LL_EXTI_LINE_10 EXTI_IMR1_IM10 /*!< Extended line 10 */
103 #define LL_EXTI_LINE_11 EXTI_IMR1_IM11 /*!< Extended line 11 */
104 #define LL_EXTI_LINE_12 EXTI_IMR1_IM12 /*!< Extended line 12 */
105 #define LL_EXTI_LINE_13 EXTI_IMR1_IM13 /*!< Extended line 13 */
106 #define LL_EXTI_LINE_14 EXTI_IMR1_IM14 /*!< Extended line 14 */
107 #define LL_EXTI_LINE_15 EXTI_IMR1_IM15 /*!< Extended line 15 */
108 #define LL_EXTI_LINE_16 EXTI_IMR1_IM16 /*!< Extended line 16 */
109 #define LL_EXTI_LINE_17 EXTI_IMR1_IM17 /*!< Extended line 17 */
110 #define LL_EXTI_LINE_18 EXTI_IMR1_IM18 /*!< Extended line 18 */
111 #define LL_EXTI_LINE_19 EXTI_IMR1_IM19 /*!< Extended line 19 */
112 #define LL_EXTI_LINE_20 EXTI_IMR1_IM20 /*!< Extended line 20 */
113 #define LL_EXTI_LINE_21 EXTI_IMR1_IM21 /*!< Extended line 21 */
114 #define LL_EXTI_LINE_22 EXTI_IMR1_IM22 /*!< Extended line 22 */
115 #define LL_EXTI_LINE_23 EXTI_IMR1_IM23 /*!< Extended line 23 */
116 #define LL_EXTI_LINE_24 EXTI_IMR1_IM24 /*!< Extended line 24 */
117 #define LL_EXTI_LINE_25 EXTI_IMR1_IM25 /*!< Extended line 25 */
118 #define LL_EXTI_LINE_26 EXTI_IMR1_IM26 /*!< Extended line 26 */
119 #define LL_EXTI_LINE_27 EXTI_IMR1_IM27 /*!< Extended line 27 */
120 #define LL_EXTI_LINE_28 EXTI_IMR1_IM28 /*!< Extended line 28 */
121 #define LL_EXTI_LINE_29 EXTI_IMR1_IM29 /*!< Extended line 29 */
122 #define LL_EXTI_LINE_30 EXTI_IMR1_IM30 /*!< Extended line 30 */
123 #define LL_EXTI_LINE_31 EXTI_IMR1_IM31 /*!< Extended line 31 */
124 #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM /*!< All Extended line not reserved*/
125
126 #define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */
127 #define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */
128 #define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */
129 #define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */
130 #define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */
131 #define LL_EXTI_LINE_37 EXTI_IMR2_IM37 /*!< Extended line 37 */
132 #define LL_EXTI_LINE_38 EXTI_IMR2_IM38 /*!< Extended line 38 */
133 #define LL_EXTI_LINE_39 EXTI_IMR2_IM39 /*!< Extended line 39 */
134 #define LL_EXTI_LINE_40 EXTI_IMR2_IM40 /*!< Extended line 40 */
135 #define LL_EXTI_LINE_41 EXTI_IMR2_IM41 /*!< Extended line 41 */
136 #define LL_EXTI_LINE_42 EXTI_IMR2_IM42 /*!< Extended line 42 */
137 #define LL_EXTI_LINE_43 EXTI_IMR2_IM43 /*!< Extended line 43 */
138 #if defined(USB2_OTG_FS)
139 #define LL_EXTI_LINE_44 EXTI_IMR2_IM44 /*!< Extended line 44 */
140 #endif /* USB2_OTG_FS */
141 #if defined(DSI)
142 #define LL_EXTI_LINE_46 EXTI_IMR2_IM46 /*!< Extended line 46 */
143 #endif /* DSI */
144 #define LL_EXTI_LINE_47 EXTI_IMR2_IM47 /*!< Extended line 47 */
145 #define LL_EXTI_LINE_48 EXTI_IMR2_IM48 /*!< Extended line 48 */
146 #define LL_EXTI_LINE_49 EXTI_IMR2_IM49 /*!< Extended line 49 */
147 #define LL_EXTI_LINE_50 EXTI_IMR2_IM50 /*!< Extended line 50 */
148 #define LL_EXTI_LINE_51 EXTI_IMR2_IM51 /*!< Extended line 51 */
149 #define LL_EXTI_LINE_52 EXTI_IMR2_IM52 /*!< Extended line 52 */
150 #define LL_EXTI_LINE_53 EXTI_IMR2_IM53 /*!< Extended line 53 */
151 #define LL_EXTI_LINE_54 EXTI_IMR2_IM54 /*!< Extended line 54 */
152 #define LL_EXTI_LINE_55 EXTI_IMR2_IM55 /*!< Extended line 55 */
153 #define LL_EXTI_LINE_56 EXTI_IMR2_IM56 /*!< Extended line 56 */
154 #if defined(EXTI_IMR2_IM57)
155 #define LL_EXTI_LINE_57 EXTI_IMR2_IM57 /*!< Extended line 57 */
156 #endif /*EXTI_IMR2_IM57*/
157 #define LL_EXTI_LINE_58 EXTI_IMR2_IM58 /*!< Extended line 58 */
158 #if defined(EXTI_IMR2_IM59)
159 #define LL_EXTI_LINE_59 EXTI_IMR2_IM59 /*!< Extended line 59 */
160 #endif /*EXTI_IMR2_IM59*/
161 #define LL_EXTI_LINE_60 EXTI_IMR2_IM60 /*!< Extended line 60 */
162 #define LL_EXTI_LINE_61 EXTI_IMR2_IM61 /*!< Extended line 61 */
163 #define LL_EXTI_LINE_62 EXTI_IMR2_IM62 /*!< Extended line 62 */
164 #define LL_EXTI_LINE_63 EXTI_IMR2_IM63 /*!< Extended line 63 */
165 #define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/
166
167 #define LL_EXTI_LINE_64 EXTI_IMR3_IM64 /*!< Extended line 64 */
168 #define LL_EXTI_LINE_65 EXTI_IMR3_IM65 /*!< Extended line 65 */
169 #define LL_EXTI_LINE_66 EXTI_IMR3_IM66 /*!< Extended line 66 */
170 #define LL_EXTI_LINE_67 EXTI_IMR3_IM67 /*!< Extended line 67 */
171 #define LL_EXTI_LINE_68 EXTI_IMR3_IM68 /*!< Extended line 68 */
172 #define LL_EXTI_LINE_69 EXTI_IMR3_IM69 /*!< Extended line 69 */
173 #define LL_EXTI_LINE_70 EXTI_IMR3_IM70 /*!< Extended line 70 */
174 #define LL_EXTI_LINE_71 EXTI_IMR3_IM71 /*!< Extended line 71 */
175 #define LL_EXTI_LINE_72 EXTI_IMR3_IM72 /*!< Extended line 72 */
176 #define LL_EXTI_LINE_73 EXTI_IMR3_IM73 /*!< Extended line 73 */
177 #define LL_EXTI_LINE_74 EXTI_IMR3_IM74 /*!< Extended line 74 */
178 #if defined(ADC3)
179 #define LL_EXTI_LINE_75 EXTI_IMR3_IM75 /*!< Extended line 75 */
180 #endif /* ADC3 */
181 #if defined(SAI4)
182 #define LL_EXTI_LINE_76 EXTI_IMR3_IM76 /*!< Extended line 76 */
183 #endif /* SAI4 */
184 #if defined(DUAL_CORE)
185 #define LL_EXTI_LINE_77 EXTI_IMR3_IM77 /*!< Extended line 77 */
186 #define LL_EXTI_LINE_78 EXTI_IMR3_IM78 /*!< Extended line 78 */
187 #define LL_EXTI_LINE_79 EXTI_IMR3_IM79 /*!< Extended line 79 */
188 #define LL_EXTI_LINE_80 EXTI_IMR3_IM80 /*!< Extended line 80 */
189 #define LL_EXTI_LINE_82 EXTI_IMR3_IM82 /*!< Extended line 82 */
190 #define LL_EXTI_LINE_84 EXTI_IMR3_IM84 /*!< Extended line 84 */
191 #endif /* DUAL_CORE */
192 #define LL_EXTI_LINE_85 EXTI_IMR3_IM85 /*!< Extended line 85 */
193 #if defined(ETH)
194 #define LL_EXTI_LINE_86 EXTI_IMR3_IM86 /*!< Extended line 86 */
195 #endif /* ETH */
196 #define LL_EXTI_LINE_87 EXTI_IMR3_IM87 /*!< Extended line 87 */
197 #if defined(DTS)
198 #define LL_EXTI_LINE_88 EXTI_IMR3_IM88 /*!< Extended line 88 */
199 #endif /* DTS */
200 #if defined(EXTI_IMR3_IM89)
201 #define LL_EXTI_LINE_89 EXTI_IMR3_IM89 /*!< Extended line 89 */
202 #endif /* EXTI_IMR3_IM89 */
203 #if defined(EXTI_IMR3_IM90)
204 #define LL_EXTI_LINE_90 EXTI_IMR3_IM90 /*!< Extended line 90 */
205 #endif /* EXTI_IMR3_IM90 */
206 #if defined(I2C5)
207 #define LL_EXTI_LINE_91 EXTI_IMR3_IM91 /*!< Extended line 91 */
208 #endif /* I2C5 */
209 #define LL_EXTI_LINE_ALL_64_95 EXTI_IMR3_IM /*!< All Extended line not reserved*/
210
211
212 #define LL_EXTI_LINE_ALL (0xFFFFFFFFU) /*!< All Extended line */
213
214 #if defined(USE_FULL_LL_DRIVER)
215 #define LL_EXTI_LINE_NONE (0x00000000U) /*!< None Extended line */
216 #endif /*USE_FULL_LL_DRIVER*/
217
218 /**
219 * @}
220 */
221 #if defined(USE_FULL_LL_DRIVER)
222
223 /** @defgroup EXTI_LL_EC_MODE Mode
224 * @{
225 */
226 #define LL_EXTI_MODE_IT ((uint8_t)0x01U) /*!< Cortex-M7 Interrupt Mode */
227 #define LL_EXTI_MODE_EVENT ((uint8_t)0x02U) /*!< Cortex-M7 Event Mode */
228 #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x03U) /*!< Cortex-M7 Interrupt & Event Mode */
229
230 #if defined(DUAL_CORE)
231 #define LL_EXTI_MODE_C1_IT LL_EXTI_MODE_IT /*!< Cortex-M7 Interrupt Mode */
232 #define LL_EXTI_MODE_C1_EVENT LL_EXTI_MODE_EVENT /*!< Cortex-M7 Event Mode */
233 #define LL_EXTI_MODE_C1_IT_EVENT LL_EXTI_MODE_IT_EVENT /*!< Cortex-M7 Interrupt & Event Mode */
234
235 #define LL_EXTI_MODE_C2_IT ((uint8_t)0x10U) /*!< Cortex-M4 Interrupt Mode */
236 #define LL_EXTI_MODE_C2_EVENT ((uint8_t)0x20U) /*!< Cortex-M4 Event Mode */
237 #define LL_EXTI_MODE_C2_IT_EVENT ((uint8_t)0x30U) /*!< Cortex-M4 Interrupt & Event Mode */
238 #endif /* DUAL_CORE */
239
240 /**
241 * @}
242 */
243
244 /** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
245 * @{
246 */
247 #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */
248 #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */
249 #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */
250 #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
251
252 /**
253 * @}
254 */
255
256 /** @defgroup EXTI_LL_D3_PEND_CLR D3 Pend Clear Source
257 * @{
258 */
259 #define LL_EXTI_D3_PEND_CLR_DMACH6 ((uint8_t)0x00U) /*!< DMA ch6 event selected as D3 domain pendclear source */
260 #define LL_EXTI_D3_PEND_CLR_DMACH7 ((uint8_t)0x01U) /*!< DMA ch7 event selected as D3 domain pendclear source */
261 #if defined (LPTIM4)
262 #define LL_EXTI_D3_PEND_CLR_LPTIM4 ((uint8_t)0x02U) /*!< LPTIM4 out selected as D3 domain pendclear source */
263 #else
264 #define LL_EXTI_D3_PEND_CLR_LPTIM2 ((uint8_t)0x02U) /*!< LPTIM2 out selected as D3 domain pendclear source */
265 #endif /*LPTIM4*/
266 #if defined (LPTIM5)
267 #define LL_EXTI_D3_PEND_CLR_LPTIM5 ((uint8_t)0x03U) /*!< LPTIM5 out selected as D3 domain pendclear source */
268 #else
269 #define LL_EXTI_D3_PEND_CLR_LPTIM3 ((uint8_t)0x02U) /*!< LPTIM3 out selected as D3 domain pendclear source */
270 #endif /*LPTIM5*/
271 /**
272 * @}
273 */
274
275
276 #endif /*USE_FULL_LL_DRIVER*/
277
278
279 /**
280 * @}
281 */
282
283 /* Exported macro ------------------------------------------------------------*/
284 /** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
285 * @{
286 */
287
288 /** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
289 * @{
290 */
291
292 /**
293 * @brief Write a value in EXTI register
294 * @param __REG__ Register to be written
295 * @param __VALUE__ Value to be written in the register
296 * @retval None
297 */
298 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
299
300 /**
301 * @brief Read a value in EXTI register
302 * @param __REG__ Register to be read
303 * @retval Register value
304 */
305 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
306
307 /**
308 * @}
309 */
310
311
312 /**
313 * @}
314 */
315
316
317
318 /* Exported functions --------------------------------------------------------*/
319 /** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
320 * @{
321 */
322 /** @defgroup EXTI_LL_EF_IT_Management IT_Management
323 * @{
324 */
325
326 /**
327 * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31
328 * @rmtoll IMR1 IMx LL_EXTI_EnableIT_0_31
329 * @param ExtiLine This parameter can be one of the following values:
330 * @arg @ref LL_EXTI_LINE_0
331 * @arg @ref LL_EXTI_LINE_1
332 * @arg @ref LL_EXTI_LINE_2
333 * @arg @ref LL_EXTI_LINE_3
334 * @arg @ref LL_EXTI_LINE_4
335 * @arg @ref LL_EXTI_LINE_5
336 * @arg @ref LL_EXTI_LINE_6
337 * @arg @ref LL_EXTI_LINE_7
338 * @arg @ref LL_EXTI_LINE_8
339 * @arg @ref LL_EXTI_LINE_9
340 * @arg @ref LL_EXTI_LINE_10
341 * @arg @ref LL_EXTI_LINE_11
342 * @arg @ref LL_EXTI_LINE_12
343 * @arg @ref LL_EXTI_LINE_13
344 * @arg @ref LL_EXTI_LINE_14
345 * @arg @ref LL_EXTI_LINE_15
346 * @arg @ref LL_EXTI_LINE_16
347 * @arg @ref LL_EXTI_LINE_17
348 * @arg @ref LL_EXTI_LINE_18
349 * @arg @ref LL_EXTI_LINE_19
350 * @arg @ref LL_EXTI_LINE_20
351 * @arg @ref LL_EXTI_LINE_21
352 * @arg @ref LL_EXTI_LINE_22
353 * @arg @ref LL_EXTI_LINE_23
354 * @arg @ref LL_EXTI_LINE_24
355 * @arg @ref LL_EXTI_LINE_25
356 * @arg @ref LL_EXTI_LINE_26
357 * @arg @ref LL_EXTI_LINE_27
358 * @arg @ref LL_EXTI_LINE_28
359 * @arg @ref LL_EXTI_LINE_29
360 * @arg @ref LL_EXTI_LINE_30
361 * @arg @ref LL_EXTI_LINE_31
362 * @arg @ref LL_EXTI_LINE_ALL_0_31
363 * @retval None
364 */
LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)365 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
366 {
367 SET_BIT(EXTI->IMR1, ExtiLine);
368 }
369
370 /**
371 * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63
372 * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63
373 * @param ExtiLine This parameter can be one of the following values:
374 * @arg @ref LL_EXTI_LINE_32
375 * @arg @ref LL_EXTI_LINE_33
376 * @arg @ref LL_EXTI_LINE_34
377 * @arg @ref LL_EXTI_LINE_35
378 * @arg @ref LL_EXTI_LINE_36
379 * @arg @ref LL_EXTI_LINE_37
380 * @arg @ref LL_EXTI_LINE_38
381 * @arg @ref LL_EXTI_LINE_39
382 * @arg @ref LL_EXTI_LINE_40
383 * @arg @ref LL_EXTI_LINE_41
384 * @arg @ref LL_EXTI_LINE_42
385 * @arg @ref LL_EXTI_LINE_43
386 * @arg @ref LL_EXTI_LINE_44 (*)
387 * @arg @ref LL_EXTI_LINE_46 (*)
388 * @arg @ref LL_EXTI_LINE_47
389 * @arg @ref LL_EXTI_LINE_48
390 * @arg @ref LL_EXTI_LINE_49
391 * @arg @ref LL_EXTI_LINE_50
392 * @arg @ref LL_EXTI_LINE_51
393 * @arg @ref LL_EXTI_LINE_52
394 * @arg @ref LL_EXTI_LINE_53
395 * @arg @ref LL_EXTI_LINE_54
396 * @arg @ref LL_EXTI_LINE_55
397 * @arg @ref LL_EXTI_LINE_56
398 * @arg @ref LL_EXTI_LINE_57 (*)
399 * @arg @ref LL_EXTI_LINE_58
400 * @arg @ref LL_EXTI_LINE_59 (*)
401 * @arg @ref LL_EXTI_LINE_60
402 * @arg @ref LL_EXTI_LINE_61
403 * @arg @ref LL_EXTI_LINE_62
404 * @arg @ref LL_EXTI_LINE_63
405 * @arg @ref LL_EXTI_LINE_ALL_32_63
406 *
407 * (*) value not defined in all devices.
408 * @retval None
409 */
LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)410 __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
411 {
412 SET_BIT(EXTI->IMR2, ExtiLine);
413 }
414
415
416 /**
417 * @brief Enable ExtiLine Interrupt request for Lines in range 64 to 95
418 * @rmtoll IMR3 IMx LL_EXTI_EnableIT_64_95
419 * @param ExtiLine This parameter can be one of the following values:
420 * @arg @ref LL_EXTI_LINE_64
421 * @arg @ref LL_EXTI_LINE_65
422 * @arg @ref LL_EXTI_LINE_66
423 * @arg @ref LL_EXTI_LINE_67
424 * @arg @ref LL_EXTI_LINE_68
425 * @arg @ref LL_EXTI_LINE_69
426 * @arg @ref LL_EXTI_LINE_70
427 * @arg @ref LL_EXTI_LINE_71
428 * @arg @ref LL_EXTI_LINE_72
429 * @arg @ref LL_EXTI_LINE_73
430 * @arg @ref LL_EXTI_LINE_74
431 * @arg @ref LL_EXTI_LINE_75 (*)
432 * @arg @ref LL_EXTI_LINE_76 (*)
433 * @arg @ref LL_EXTI_LINE_77 (**)
434 * @arg @ref LL_EXTI_LINE_78 (**)
435 * @arg @ref LL_EXTI_LINE_79 (**)
436 * @arg @ref LL_EXTI_LINE_80 (**)
437 * @arg @ref LL_EXTI_LINE_82 (**)
438 * @arg @ref LL_EXTI_LINE_84 (**)
439 * @arg @ref LL_EXTI_LINE_85
440 * @arg @ref LL_EXTI_LINE_86 (*)
441 * @arg @ref LL_EXTI_LINE_87
442 * @arg @ref LL_EXTI_LINE_88 (*)
443 * @arg @ref LL_EXTI_LINE_89 (*)
444 * @arg @ref LL_EXTI_LINE_90 (*)
445 * @arg @ref LL_EXTI_LINE_91 (*)
446 * @arg @ref LL_EXTI_LINE_ALL_64_95
447 *
448 * (*) value not defined in all devices.
449 * (**) value only defined in dual core devices.
450 * @retval None
451 */
LL_EXTI_EnableIT_64_95(uint32_t ExtiLine)452 __STATIC_INLINE void LL_EXTI_EnableIT_64_95(uint32_t ExtiLine)
453 {
454 SET_BIT(EXTI->IMR3, ExtiLine);
455 }
456
457
458 /**
459 * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31
460 * @rmtoll IMR1 IMx LL_EXTI_DisableIT_0_31
461 * @param ExtiLine This parameter can be one of the following values:
462 * @arg @ref LL_EXTI_LINE_0
463 * @arg @ref LL_EXTI_LINE_1
464 * @arg @ref LL_EXTI_LINE_2
465 * @arg @ref LL_EXTI_LINE_3
466 * @arg @ref LL_EXTI_LINE_4
467 * @arg @ref LL_EXTI_LINE_5
468 * @arg @ref LL_EXTI_LINE_6
469 * @arg @ref LL_EXTI_LINE_7
470 * @arg @ref LL_EXTI_LINE_8
471 * @arg @ref LL_EXTI_LINE_9
472 * @arg @ref LL_EXTI_LINE_10
473 * @arg @ref LL_EXTI_LINE_11
474 * @arg @ref LL_EXTI_LINE_12
475 * @arg @ref LL_EXTI_LINE_13
476 * @arg @ref LL_EXTI_LINE_14
477 * @arg @ref LL_EXTI_LINE_15
478 * @arg @ref LL_EXTI_LINE_16
479 * @arg @ref LL_EXTI_LINE_17
480 * @arg @ref LL_EXTI_LINE_18
481 * @arg @ref LL_EXTI_LINE_19
482 * @arg @ref LL_EXTI_LINE_20
483 * @arg @ref LL_EXTI_LINE_21
484 * @arg @ref LL_EXTI_LINE_22
485 * @arg @ref LL_EXTI_LINE_23
486 * @arg @ref LL_EXTI_LINE_24
487 * @arg @ref LL_EXTI_LINE_25
488 * @arg @ref LL_EXTI_LINE_26
489 * @arg @ref LL_EXTI_LINE_27
490 * @arg @ref LL_EXTI_LINE_28
491 * @arg @ref LL_EXTI_LINE_29
492 * @arg @ref LL_EXTI_LINE_30
493 * @arg @ref LL_EXTI_LINE_31
494 * @arg @ref LL_EXTI_LINE_ALL_0_31
495 * @retval None
496 */
LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)497 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
498 {
499 CLEAR_BIT(EXTI->IMR1, ExtiLine);
500 }
501
502
503 /**
504 * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63
505 * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63
506 * @param ExtiLine This parameter can be one of the following values:
507 * @arg @ref LL_EXTI_LINE_32
508 * @arg @ref LL_EXTI_LINE_33
509 * @arg @ref LL_EXTI_LINE_34
510 * @arg @ref LL_EXTI_LINE_35
511 * @arg @ref LL_EXTI_LINE_36
512 * @arg @ref LL_EXTI_LINE_37
513 * @arg @ref LL_EXTI_LINE_38
514 * @arg @ref LL_EXTI_LINE_39
515 * @arg @ref LL_EXTI_LINE_40
516 * @arg @ref LL_EXTI_LINE_41
517 * @arg @ref LL_EXTI_LINE_42
518 * @arg @ref LL_EXTI_LINE_43
519 * @arg @ref LL_EXTI_LINE_44 (*)
520 * @arg @ref LL_EXTI_LINE_46 (*)
521 * @arg @ref LL_EXTI_LINE_47
522 * @arg @ref LL_EXTI_LINE_48
523 * @arg @ref LL_EXTI_LINE_49
524 * @arg @ref LL_EXTI_LINE_50
525 * @arg @ref LL_EXTI_LINE_51
526 * @arg @ref LL_EXTI_LINE_52
527 * @arg @ref LL_EXTI_LINE_53
528 * @arg @ref LL_EXTI_LINE_54
529 * @arg @ref LL_EXTI_LINE_55
530 * @arg @ref LL_EXTI_LINE_56
531 * @arg @ref LL_EXTI_LINE_57 (*)
532 * @arg @ref LL_EXTI_LINE_58
533 * @arg @ref LL_EXTI_LINE_59 (*)
534 * @arg @ref LL_EXTI_LINE_60
535 * @arg @ref LL_EXTI_LINE_61
536 * @arg @ref LL_EXTI_LINE_62
537 * @arg @ref LL_EXTI_LINE_63
538 * @arg @ref LL_EXTI_LINE_ALL_32_63
539 *
540 * (*) value not defined in all devices.
541 * @retval None
542 */
LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)543 __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
544 {
545 CLEAR_BIT(EXTI->IMR2, ExtiLine);
546 }
547
548 /**
549 * @brief Disable ExtiLine Interrupt request for Lines in range 64 to 95
550 * @rmtoll IMR3 IMx LL_EXTI_DisableIT_64_95
551 * @param ExtiLine This parameter can be one of the following values:
552 * @arg @ref LL_EXTI_LINE_64
553 * @arg @ref LL_EXTI_LINE_65
554 * @arg @ref LL_EXTI_LINE_66
555 * @arg @ref LL_EXTI_LINE_67
556 * @arg @ref LL_EXTI_LINE_68
557 * @arg @ref LL_EXTI_LINE_69
558 * @arg @ref LL_EXTI_LINE_70
559 * @arg @ref LL_EXTI_LINE_71
560 * @arg @ref LL_EXTI_LINE_72
561 * @arg @ref LL_EXTI_LINE_73
562 * @arg @ref LL_EXTI_LINE_74
563 * @arg @ref LL_EXTI_LINE_75 (*)
564 * @arg @ref LL_EXTI_LINE_76 (*)
565 * @arg @ref LL_EXTI_LINE_77 (**)
566 * @arg @ref LL_EXTI_LINE_78 (**)
567 * @arg @ref LL_EXTI_LINE_79 (**)
568 * @arg @ref LL_EXTI_LINE_80 (**)
569 * @arg @ref LL_EXTI_LINE_82 (**)
570 * @arg @ref LL_EXTI_LINE_84 (**)
571 * @arg @ref LL_EXTI_LINE_85
572 * @arg @ref LL_EXTI_LINE_86 (*)
573 * @arg @ref LL_EXTI_LINE_87
574 * @arg @ref LL_EXTI_LINE_88 (*)
575 * @arg @ref LL_EXTI_LINE_89 (*)
576 * @arg @ref LL_EXTI_LINE_90 (*)
577 * @arg @ref LL_EXTI_LINE_91 (*)
578 * @arg @ref LL_EXTI_LINE_ALL_64_95
579 *
580 * (*) value not defined in all devices.
581 * (**) value only defined in dual core devices.
582 * @retval None
583 */
LL_EXTI_DisableIT_64_95(uint32_t ExtiLine)584 __STATIC_INLINE void LL_EXTI_DisableIT_64_95(uint32_t ExtiLine)
585 {
586 CLEAR_BIT(EXTI->IMR3, ExtiLine);
587 }
588
589
590 /**
591 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
592 * @rmtoll IMR1 IMx LL_EXTI_IsEnabledIT_0_31
593 * @param ExtiLine This parameter can be one of the following values:
594 * @arg @ref LL_EXTI_LINE_0
595 * @arg @ref LL_EXTI_LINE_1
596 * @arg @ref LL_EXTI_LINE_2
597 * @arg @ref LL_EXTI_LINE_3
598 * @arg @ref LL_EXTI_LINE_4
599 * @arg @ref LL_EXTI_LINE_5
600 * @arg @ref LL_EXTI_LINE_6
601 * @arg @ref LL_EXTI_LINE_7
602 * @arg @ref LL_EXTI_LINE_8
603 * @arg @ref LL_EXTI_LINE_9
604 * @arg @ref LL_EXTI_LINE_10
605 * @arg @ref LL_EXTI_LINE_11
606 * @arg @ref LL_EXTI_LINE_12
607 * @arg @ref LL_EXTI_LINE_13
608 * @arg @ref LL_EXTI_LINE_14
609 * @arg @ref LL_EXTI_LINE_15
610 * @arg @ref LL_EXTI_LINE_16
611 * @arg @ref LL_EXTI_LINE_17
612 * @arg @ref LL_EXTI_LINE_18
613 * @arg @ref LL_EXTI_LINE_19
614 * @arg @ref LL_EXTI_LINE_20
615 * @arg @ref LL_EXTI_LINE_21
616 * @arg @ref LL_EXTI_LINE_22
617 * @arg @ref LL_EXTI_LINE_23
618 * @arg @ref LL_EXTI_LINE_24
619 * @arg @ref LL_EXTI_LINE_25
620 * @arg @ref LL_EXTI_LINE_26
621 * @arg @ref LL_EXTI_LINE_27
622 * @arg @ref LL_EXTI_LINE_28
623 * @arg @ref LL_EXTI_LINE_29
624 * @arg @ref LL_EXTI_LINE_30
625 * @arg @ref LL_EXTI_LINE_31
626 * @arg @ref LL_EXTI_LINE_ALL_0_31
627 * @retval State of bit (1 or 0).
628 */
LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)629 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
630 {
631 return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
632 }
633
634
635 /**
636 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63
637 * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63
638 * @param ExtiLine This parameter can be one of the following values:
639 * @arg @ref LL_EXTI_LINE_32
640 * @arg @ref LL_EXTI_LINE_33
641 * @arg @ref LL_EXTI_LINE_34
642 * @arg @ref LL_EXTI_LINE_35
643 * @arg @ref LL_EXTI_LINE_36
644 * @arg @ref LL_EXTI_LINE_37
645 * @arg @ref LL_EXTI_LINE_38
646 * @arg @ref LL_EXTI_LINE_39
647 * @arg @ref LL_EXTI_LINE_40
648 * @arg @ref LL_EXTI_LINE_41
649 * @arg @ref LL_EXTI_LINE_42
650 * @arg @ref LL_EXTI_LINE_43
651 * @arg @ref LL_EXTI_LINE_44 (*)
652 * @arg @ref LL_EXTI_LINE_46 (*)
653 * @arg @ref LL_EXTI_LINE_47
654 * @arg @ref LL_EXTI_LINE_48
655 * @arg @ref LL_EXTI_LINE_49
656 * @arg @ref LL_EXTI_LINE_50
657 * @arg @ref LL_EXTI_LINE_51
658 * @arg @ref LL_EXTI_LINE_52
659 * @arg @ref LL_EXTI_LINE_53
660 * @arg @ref LL_EXTI_LINE_54
661 * @arg @ref LL_EXTI_LINE_55
662 * @arg @ref LL_EXTI_LINE_56
663 * @arg @ref LL_EXTI_LINE_57 (*)
664 * @arg @ref LL_EXTI_LINE_58
665 * @arg @ref LL_EXTI_LINE_59 (*)
666 * @arg @ref LL_EXTI_LINE_60
667 * @arg @ref LL_EXTI_LINE_61
668 * @arg @ref LL_EXTI_LINE_62
669 * @arg @ref LL_EXTI_LINE_63
670 * @arg @ref LL_EXTI_LINE_ALL_32_63
671 *
672 * (*) value not defined in all devices.
673 * @retval State of bit (1 or 0).
674 */
LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)675 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
676 {
677 return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
678 }
679
680
681 /**
682 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 64 to 95
683 * @rmtoll IMR3 IMx LL_EXTI_IsEnabledIT_64_95
684 * @param ExtiLine This parameter can be one of the following values:
685 * @arg @ref LL_EXTI_LINE_64
686 * @arg @ref LL_EXTI_LINE_65
687 * @arg @ref LL_EXTI_LINE_66
688 * @arg @ref LL_EXTI_LINE_67
689 * @arg @ref LL_EXTI_LINE_68
690 * @arg @ref LL_EXTI_LINE_69
691 * @arg @ref LL_EXTI_LINE_70
692 * @arg @ref LL_EXTI_LINE_71
693 * @arg @ref LL_EXTI_LINE_72
694 * @arg @ref LL_EXTI_LINE_73
695 * @arg @ref LL_EXTI_LINE_74
696 * @arg @ref LL_EXTI_LINE_75 (*)
697 * @arg @ref LL_EXTI_LINE_76 (*)
698 * @arg @ref LL_EXTI_LINE_77 (**)
699 * @arg @ref LL_EXTI_LINE_78 (**)
700 * @arg @ref LL_EXTI_LINE_79 (**)
701 * @arg @ref LL_EXTI_LINE_80 (**)
702 * @arg @ref LL_EXTI_LINE_82 (**)
703 * @arg @ref LL_EXTI_LINE_84 (**)
704 * @arg @ref LL_EXTI_LINE_85
705 * @arg @ref LL_EXTI_LINE_86 (*)
706 * @arg @ref LL_EXTI_LINE_87
707 * @arg @ref LL_EXTI_LINE_88 (*)
708 * @arg @ref LL_EXTI_LINE_89 (*)
709 * @arg @ref LL_EXTI_LINE_90 (*)
710 * @arg @ref LL_EXTI_LINE_91 (*)
711 * @arg @ref LL_EXTI_LINE_ALL_64_95
712 *
713 * (*) value not defined in all devices.
714 * (**) value only defined in dual core devices.
715 * @retval State of bit (1 or 0).
716 */
LL_EXTI_IsEnabledIT_64_95(uint32_t ExtiLine)717 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_64_95(uint32_t ExtiLine)
718 {
719 return ((READ_BIT(EXTI->IMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
720 }
721
722 #if defined(DUAL_CORE)
723 /**
724 * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31 for cpu2
725 * @rmtoll C2IMR1 IMx LL_C2_EXTI_EnableIT_0_31
726 * @param ExtiLine This parameter can be one of the following values:
727 * @arg @ref LL_EXTI_LINE_0
728 * @arg @ref LL_EXTI_LINE_1
729 * @arg @ref LL_EXTI_LINE_2
730 * @arg @ref LL_EXTI_LINE_3
731 * @arg @ref LL_EXTI_LINE_4
732 * @arg @ref LL_EXTI_LINE_5
733 * @arg @ref LL_EXTI_LINE_6
734 * @arg @ref LL_EXTI_LINE_7
735 * @arg @ref LL_EXTI_LINE_8
736 * @arg @ref LL_EXTI_LINE_9
737 * @arg @ref LL_EXTI_LINE_10
738 * @arg @ref LL_EXTI_LINE_11
739 * @arg @ref LL_EXTI_LINE_12
740 * @arg @ref LL_EXTI_LINE_13
741 * @arg @ref LL_EXTI_LINE_14
742 * @arg @ref LL_EXTI_LINE_15
743 * @arg @ref LL_EXTI_LINE_16
744 * @arg @ref LL_EXTI_LINE_17
745 * @arg @ref LL_EXTI_LINE_18
746 * @arg @ref LL_EXTI_LINE_19
747 * @arg @ref LL_EXTI_LINE_20
748 * @arg @ref LL_EXTI_LINE_21
749 * @arg @ref LL_EXTI_LINE_22
750 * @arg @ref LL_EXTI_LINE_23
751 * @arg @ref LL_EXTI_LINE_24
752 * @arg @ref LL_EXTI_LINE_25
753 * @arg @ref LL_EXTI_LINE_26
754 * @arg @ref LL_EXTI_LINE_27
755 * @arg @ref LL_EXTI_LINE_28
756 * @arg @ref LL_EXTI_LINE_29
757 * @arg @ref LL_EXTI_LINE_30
758 * @arg @ref LL_EXTI_LINE_31
759 * @arg @ref LL_EXTI_LINE_ALL_0_31
760 * @retval None
761 */
LL_C2_EXTI_EnableIT_0_31(uint32_t ExtiLine)762 __STATIC_INLINE void LL_C2_EXTI_EnableIT_0_31(uint32_t ExtiLine)
763 {
764 SET_BIT(EXTI->C2IMR1, ExtiLine);
765 }
766
767
768 /**
769 * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63 for cpu2
770 * @rmtoll C2IMR2 IMx LL_C2_EXTI_EnableIT_32_63
771 * @param ExtiLine This parameter can be one of the following values:
772 * @arg @ref LL_EXTI_LINE_32
773 * @arg @ref LL_EXTI_LINE_33
774 * @arg @ref LL_EXTI_LINE_34
775 * @arg @ref LL_EXTI_LINE_35
776 * @arg @ref LL_EXTI_LINE_36
777 * @arg @ref LL_EXTI_LINE_37
778 * @arg @ref LL_EXTI_LINE_38
779 * @arg @ref LL_EXTI_LINE_39
780 * @arg @ref LL_EXTI_LINE_40
781 * @arg @ref LL_EXTI_LINE_41
782 * @arg @ref LL_EXTI_LINE_42
783 * @arg @ref LL_EXTI_LINE_43
784 * @arg @ref LL_EXTI_LINE_44
785 * @arg @ref LL_EXTI_LINE_46
786 * @arg @ref LL_EXTI_LINE_47
787 * @arg @ref LL_EXTI_LINE_48
788 * @arg @ref LL_EXTI_LINE_49
789 * @arg @ref LL_EXTI_LINE_50
790 * @arg @ref LL_EXTI_LINE_51
791 * @arg @ref LL_EXTI_LINE_52
792 * @arg @ref LL_EXTI_LINE_53
793 * @arg @ref LL_EXTI_LINE_54
794 * @arg @ref LL_EXTI_LINE_55
795 * @arg @ref LL_EXTI_LINE_56
796 * @arg @ref LL_EXTI_LINE_57
797 * @arg @ref LL_EXTI_LINE_58
798 * @arg @ref LL_EXTI_LINE_59
799 * @arg @ref LL_EXTI_LINE_60
800 * @arg @ref LL_EXTI_LINE_61
801 * @arg @ref LL_EXTI_LINE_62
802 * @arg @ref LL_EXTI_LINE_63
803 * @arg @ref LL_EXTI_LINE_ALL_32_63
804 * @retval None
805 */
LL_C2_EXTI_EnableIT_32_63(uint32_t ExtiLine)806 __STATIC_INLINE void LL_C2_EXTI_EnableIT_32_63(uint32_t ExtiLine)
807 {
808 SET_BIT(EXTI->C2IMR2, ExtiLine);
809 }
810
811
812 /**
813 * @brief Enable ExtiLine Interrupt request for Lines in range 64 to 95
814 * @rmtoll C2IMR3 IMx LL_C2_EXTI_EnableIT_64_95
815 * @param ExtiLine This parameter can be one of the following values:
816 * @arg @ref LL_EXTI_LINE_64
817 * @arg @ref LL_EXTI_LINE_65
818 * @arg @ref LL_EXTI_LINE_66
819 * @arg @ref LL_EXTI_LINE_67
820 * @arg @ref LL_EXTI_LINE_68
821 * @arg @ref LL_EXTI_LINE_69
822 * @arg @ref LL_EXTI_LINE_70
823 * @arg @ref LL_EXTI_LINE_71
824 * @arg @ref LL_EXTI_LINE_72
825 * @arg @ref LL_EXTI_LINE_73
826 * @arg @ref LL_EXTI_LINE_74
827 * @arg @ref LL_EXTI_LINE_75
828 * @arg @ref LL_EXTI_LINE_76
829 * @arg @ref LL_EXTI_LINE_77
830 * @arg @ref LL_EXTI_LINE_78
831 * @arg @ref LL_EXTI_LINE_79
832 * @arg @ref LL_EXTI_LINE_80
833 * @arg @ref LL_EXTI_LINE_82
834 * @arg @ref LL_EXTI_LINE_84
835 * @arg @ref LL_EXTI_LINE_85
836 * @arg @ref LL_EXTI_LINE_86
837 * @arg @ref LL_EXTI_LINE_87
838 * @arg @ref LL_EXTI_LINE_ALL_64_95
839 * @retval None
840 */
LL_C2_EXTI_EnableIT_64_95(uint32_t ExtiLine)841 __STATIC_INLINE void LL_C2_EXTI_EnableIT_64_95(uint32_t ExtiLine)
842 {
843 SET_BIT(EXTI->C2IMR3, ExtiLine);
844 }
845
846
847 /**
848 * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31 for cpu2
849 * @rmtoll C2IMR1 IMx LL_C2_EXTI_DisableIT_0_31
850 * @param ExtiLine This parameter can be one of the following values:
851 * @arg @ref LL_EXTI_LINE_0
852 * @arg @ref LL_EXTI_LINE_1
853 * @arg @ref LL_EXTI_LINE_2
854 * @arg @ref LL_EXTI_LINE_3
855 * @arg @ref LL_EXTI_LINE_4
856 * @arg @ref LL_EXTI_LINE_5
857 * @arg @ref LL_EXTI_LINE_6
858 * @arg @ref LL_EXTI_LINE_7
859 * @arg @ref LL_EXTI_LINE_8
860 * @arg @ref LL_EXTI_LINE_9
861 * @arg @ref LL_EXTI_LINE_10
862 * @arg @ref LL_EXTI_LINE_11
863 * @arg @ref LL_EXTI_LINE_12
864 * @arg @ref LL_EXTI_LINE_13
865 * @arg @ref LL_EXTI_LINE_14
866 * @arg @ref LL_EXTI_LINE_15
867 * @arg @ref LL_EXTI_LINE_16
868 * @arg @ref LL_EXTI_LINE_17
869 * @arg @ref LL_EXTI_LINE_18
870 * @arg @ref LL_EXTI_LINE_19
871 * @arg @ref LL_EXTI_LINE_20
872 * @arg @ref LL_EXTI_LINE_21
873 * @arg @ref LL_EXTI_LINE_22
874 * @arg @ref LL_EXTI_LINE_23
875 * @arg @ref LL_EXTI_LINE_24
876 * @arg @ref LL_EXTI_LINE_25
877 * @arg @ref LL_EXTI_LINE_26
878 * @arg @ref LL_EXTI_LINE_27
879 * @arg @ref LL_EXTI_LINE_28
880 * @arg @ref LL_EXTI_LINE_29
881 * @arg @ref LL_EXTI_LINE_30
882 * @arg @ref LL_EXTI_LINE_31
883 * @arg @ref LL_EXTI_LINE_ALL_0_31
884 * @retval None
885 */
LL_C2_EXTI_DisableIT_0_31(uint32_t ExtiLine)886 __STATIC_INLINE void LL_C2_EXTI_DisableIT_0_31(uint32_t ExtiLine)
887 {
888 CLEAR_BIT(EXTI->C2IMR1, ExtiLine);
889 }
890
891
892
893 /**
894 * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63 for cpu2
895 * @rmtoll C2IMR2 IMx LL_C2_EXTI_DisableIT_32_63
896 * @param ExtiLine This parameter can be one of the following values:
897 * @arg @ref LL_EXTI_LINE_32
898 * @arg @ref LL_EXTI_LINE_33
899 * @arg @ref LL_EXTI_LINE_34
900 * @arg @ref LL_EXTI_LINE_35
901 * @arg @ref LL_EXTI_LINE_36
902 * @arg @ref LL_EXTI_LINE_37
903 * @arg @ref LL_EXTI_LINE_38
904 * @arg @ref LL_EXTI_LINE_39
905 * @arg @ref LL_EXTI_LINE_40
906 * @arg @ref LL_EXTI_LINE_41
907 * @arg @ref LL_EXTI_LINE_42
908 * @arg @ref LL_EXTI_LINE_43
909 * @arg @ref LL_EXTI_LINE_44
910 * @arg @ref LL_EXTI_LINE_46
911 * @arg @ref LL_EXTI_LINE_47
912 * @arg @ref LL_EXTI_LINE_48
913 * @arg @ref LL_EXTI_LINE_49
914 * @arg @ref LL_EXTI_LINE_50
915 * @arg @ref LL_EXTI_LINE_51
916 * @arg @ref LL_EXTI_LINE_52
917 * @arg @ref LL_EXTI_LINE_53
918 * @arg @ref LL_EXTI_LINE_54
919 * @arg @ref LL_EXTI_LINE_55
920 * @arg @ref LL_EXTI_LINE_56
921 * @arg @ref LL_EXTI_LINE_57
922 * @arg @ref LL_EXTI_LINE_58
923 * @arg @ref LL_EXTI_LINE_59
924 * @arg @ref LL_EXTI_LINE_60
925 * @arg @ref LL_EXTI_LINE_61
926 * @arg @ref LL_EXTI_LINE_62
927 * @arg @ref LL_EXTI_LINE_63
928 * @arg @ref LL_EXTI_LINE_ALL_32_63
929 * @retval None
930 */
LL_C2_EXTI_DisableIT_32_63(uint32_t ExtiLine)931 __STATIC_INLINE void LL_C2_EXTI_DisableIT_32_63(uint32_t ExtiLine)
932 {
933 CLEAR_BIT(EXTI->C2IMR2, ExtiLine);
934 }
935
936
937 /**
938 * @brief Disable ExtiLine Interrupt request for Lines in range 64 to 95 for cpu2
939 * @rmtoll C2IMR3 IMx LL_C2_EXTI_DisableIT_64_95
940 * @param ExtiLine This parameter can be one of the following values:
941 * @arg @ref LL_EXTI_LINE_64
942 * @arg @ref LL_EXTI_LINE_65
943 * @arg @ref LL_EXTI_LINE_66
944 * @arg @ref LL_EXTI_LINE_67
945 * @arg @ref LL_EXTI_LINE_68
946 * @arg @ref LL_EXTI_LINE_69
947 * @arg @ref LL_EXTI_LINE_70
948 * @arg @ref LL_EXTI_LINE_71
949 * @arg @ref LL_EXTI_LINE_72
950 * @arg @ref LL_EXTI_LINE_73
951 * @arg @ref LL_EXTI_LINE_74
952 * @arg @ref LL_EXTI_LINE_75
953 * @arg @ref LL_EXTI_LINE_76
954 * @arg @ref LL_EXTI_LINE_77
955 * @arg @ref LL_EXTI_LINE_78
956 * @arg @ref LL_EXTI_LINE_79
957 * @arg @ref LL_EXTI_LINE_80
958 * @arg @ref LL_EXTI_LINE_82
959 * @arg @ref LL_EXTI_LINE_84
960 * @arg @ref LL_EXTI_LINE_85
961 * @arg @ref LL_EXTI_LINE_86
962 * @arg @ref LL_EXTI_LINE_87
963 * @arg @ref LL_EXTI_LINE_ALL_64_95
964 * @retval None
965 */
LL_C2_EXTI_DisableIT_64_95(uint32_t ExtiLine)966 __STATIC_INLINE void LL_C2_EXTI_DisableIT_64_95(uint32_t ExtiLine)
967 {
968 CLEAR_BIT(EXTI->C2IMR3, ExtiLine);
969 }
970
971
972 /**
973 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31 for cpu2
974 * @rmtoll C2IMR1 IMx LL_C2_EXTI_IsEnabledIT_0_31
975 * @param ExtiLine This parameter can be one of the following values:
976 * @arg @ref LL_EXTI_LINE_0
977 * @arg @ref LL_EXTI_LINE_1
978 * @arg @ref LL_EXTI_LINE_2
979 * @arg @ref LL_EXTI_LINE_3
980 * @arg @ref LL_EXTI_LINE_4
981 * @arg @ref LL_EXTI_LINE_5
982 * @arg @ref LL_EXTI_LINE_6
983 * @arg @ref LL_EXTI_LINE_7
984 * @arg @ref LL_EXTI_LINE_8
985 * @arg @ref LL_EXTI_LINE_9
986 * @arg @ref LL_EXTI_LINE_10
987 * @arg @ref LL_EXTI_LINE_11
988 * @arg @ref LL_EXTI_LINE_12
989 * @arg @ref LL_EXTI_LINE_13
990 * @arg @ref LL_EXTI_LINE_14
991 * @arg @ref LL_EXTI_LINE_15
992 * @arg @ref LL_EXTI_LINE_16
993 * @arg @ref LL_EXTI_LINE_17
994 * @arg @ref LL_EXTI_LINE_18
995 * @arg @ref LL_EXTI_LINE_19
996 * @arg @ref LL_EXTI_LINE_20
997 * @arg @ref LL_EXTI_LINE_21
998 * @arg @ref LL_EXTI_LINE_22
999 * @arg @ref LL_EXTI_LINE_23
1000 * @arg @ref LL_EXTI_LINE_24
1001 * @arg @ref LL_EXTI_LINE_25
1002 * @arg @ref LL_EXTI_LINE_26
1003 * @arg @ref LL_EXTI_LINE_27
1004 * @arg @ref LL_EXTI_LINE_28
1005 * @arg @ref LL_EXTI_LINE_29
1006 * @arg @ref LL_EXTI_LINE_30
1007 * @arg @ref LL_EXTI_LINE_31
1008 * @arg @ref LL_EXTI_LINE_ALL_0_31
1009 * @retval State of bit (1 or 0).
1010 */
LL_C2_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)1011 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
1012 {
1013 return ((READ_BIT(EXTI->C2IMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1014 }
1015
1016
1017 /**
1018 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63 for cpu2
1019 * @rmtoll C2IMR2 IMx LL_C2_EXTI_IsEnabledIT_32_63
1020 * @param ExtiLine This parameter can be one of the following values:
1021 * @arg @ref LL_EXTI_LINE_32
1022 * @arg @ref LL_EXTI_LINE_33
1023 * @arg @ref LL_EXTI_LINE_34
1024 * @arg @ref LL_EXTI_LINE_35
1025 * @arg @ref LL_EXTI_LINE_36
1026 * @arg @ref LL_EXTI_LINE_37
1027 * @arg @ref LL_EXTI_LINE_38
1028 * @arg @ref LL_EXTI_LINE_39
1029 * @arg @ref LL_EXTI_LINE_40
1030 * @arg @ref LL_EXTI_LINE_41
1031 * @arg @ref LL_EXTI_LINE_42
1032 * @arg @ref LL_EXTI_LINE_43
1033 * @arg @ref LL_EXTI_LINE_44
1034 * @arg @ref LL_EXTI_LINE_46
1035 * @arg @ref LL_EXTI_LINE_47
1036 * @arg @ref LL_EXTI_LINE_48
1037 * @arg @ref LL_EXTI_LINE_49
1038 * @arg @ref LL_EXTI_LINE_50
1039 * @arg @ref LL_EXTI_LINE_51
1040 * @arg @ref LL_EXTI_LINE_52
1041 * @arg @ref LL_EXTI_LINE_53
1042 * @arg @ref LL_EXTI_LINE_54
1043 * @arg @ref LL_EXTI_LINE_55
1044 * @arg @ref LL_EXTI_LINE_56
1045 * @arg @ref LL_EXTI_LINE_57
1046 * @arg @ref LL_EXTI_LINE_58
1047 * @arg @ref LL_EXTI_LINE_59
1048 * @arg @ref LL_EXTI_LINE_60
1049 * @arg @ref LL_EXTI_LINE_61
1050 * @arg @ref LL_EXTI_LINE_62
1051 * @arg @ref LL_EXTI_LINE_63
1052 * @arg @ref LL_EXTI_LINE_ALL_32_63
1053 * @retval State of bit (1 or 0).
1054 */
LL_C2_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)1055 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
1056 {
1057 return ((READ_BIT(EXTI->C2IMR2, ExtiLine) == (ExtiLine))? 1U : 0U);
1058 }
1059
1060
1061 /**
1062 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 64 to 95
1063 * @rmtoll C2IMR3 IMx LL_C2_EXTI_IsEnabledIT_64_95
1064 * @param ExtiLine This parameter can be one of the following values:
1065 * @arg @ref LL_EXTI_LINE_64
1066 * @arg @ref LL_EXTI_LINE_65
1067 * @arg @ref LL_EXTI_LINE_66
1068 * @arg @ref LL_EXTI_LINE_67
1069 * @arg @ref LL_EXTI_LINE_68
1070 * @arg @ref LL_EXTI_LINE_69
1071 * @arg @ref LL_EXTI_LINE_70
1072 * @arg @ref LL_EXTI_LINE_71
1073 * @arg @ref LL_EXTI_LINE_72
1074 * @arg @ref LL_EXTI_LINE_73
1075 * @arg @ref LL_EXTI_LINE_74
1076 * @arg @ref LL_EXTI_LINE_75
1077 * @arg @ref LL_EXTI_LINE_76
1078 * @arg @ref LL_EXTI_LINE_77
1079 * @arg @ref LL_EXTI_LINE_78
1080 * @arg @ref LL_EXTI_LINE_79
1081 * @arg @ref LL_EXTI_LINE_80
1082 * @arg @ref LL_EXTI_LINE_82
1083 * @arg @ref LL_EXTI_LINE_84
1084 * @arg @ref LL_EXTI_LINE_85
1085 * @arg @ref LL_EXTI_LINE_86
1086 * @arg @ref LL_EXTI_LINE_87
1087 * @arg @ref LL_EXTI_LINE_ALL_64_95
1088 * @retval State of bit (1 or 0).
1089 */
LL_C2_EXTI_IsEnabledIT_64_95(uint32_t ExtiLine)1090 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledIT_64_95(uint32_t ExtiLine)
1091 {
1092 return ((READ_BIT(EXTI->C2IMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1093 }
1094
1095 #endif /* DUAL_CORE */
1096
1097
1098 /**
1099 * @}
1100 */
1101
1102 /** @defgroup EXTI_LL_EF_Event_Management Event_Management
1103 * @{
1104 */
1105
1106 /**
1107 * @brief Enable ExtiLine Event request for Lines in range 0 to 31
1108 * @rmtoll EMR1 EMx LL_EXTI_EnableEvent_0_31
1109 * @param ExtiLine This parameter can be one of the following values:
1110 * @arg @ref LL_EXTI_LINE_0
1111 * @arg @ref LL_EXTI_LINE_1
1112 * @arg @ref LL_EXTI_LINE_2
1113 * @arg @ref LL_EXTI_LINE_3
1114 * @arg @ref LL_EXTI_LINE_4
1115 * @arg @ref LL_EXTI_LINE_5
1116 * @arg @ref LL_EXTI_LINE_6
1117 * @arg @ref LL_EXTI_LINE_7
1118 * @arg @ref LL_EXTI_LINE_8
1119 * @arg @ref LL_EXTI_LINE_9
1120 * @arg @ref LL_EXTI_LINE_10
1121 * @arg @ref LL_EXTI_LINE_11
1122 * @arg @ref LL_EXTI_LINE_12
1123 * @arg @ref LL_EXTI_LINE_13
1124 * @arg @ref LL_EXTI_LINE_14
1125 * @arg @ref LL_EXTI_LINE_15
1126 * @arg @ref LL_EXTI_LINE_16
1127 * @arg @ref LL_EXTI_LINE_17
1128 * @arg @ref LL_EXTI_LINE_18
1129 * @arg @ref LL_EXTI_LINE_19
1130 * @arg @ref LL_EXTI_LINE_20
1131 * @arg @ref LL_EXTI_LINE_21
1132 * @arg @ref LL_EXTI_LINE_22
1133 * @arg @ref LL_EXTI_LINE_23
1134 * @arg @ref LL_EXTI_LINE_24
1135 * @arg @ref LL_EXTI_LINE_25
1136 * @arg @ref LL_EXTI_LINE_26
1137 * @arg @ref LL_EXTI_LINE_27
1138 * @arg @ref LL_EXTI_LINE_28
1139 * @arg @ref LL_EXTI_LINE_29
1140 * @arg @ref LL_EXTI_LINE_30
1141 * @arg @ref LL_EXTI_LINE_31
1142 * @arg @ref LL_EXTI_LINE_ALL_0_31
1143 * @retval None
1144 */
LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)1145 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
1146 {
1147 SET_BIT(EXTI->EMR1, ExtiLine);
1148 }
1149
1150 /**
1151 * @brief Enable ExtiLine Event request for Lines in range 32 to 63
1152 * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63
1153 * @param ExtiLine This parameter can be a combination of the following values:
1154 * @arg @ref LL_EXTI_LINE_32
1155 * @arg @ref LL_EXTI_LINE_33
1156 * @arg @ref LL_EXTI_LINE_34
1157 * @arg @ref LL_EXTI_LINE_35
1158 * @arg @ref LL_EXTI_LINE_36
1159 * @arg @ref LL_EXTI_LINE_37
1160 * @arg @ref LL_EXTI_LINE_38
1161 * @arg @ref LL_EXTI_LINE_39
1162 * @arg @ref LL_EXTI_LINE_40
1163 * @arg @ref LL_EXTI_LINE_41
1164 * @arg @ref LL_EXTI_LINE_42
1165 * @arg @ref LL_EXTI_LINE_43
1166 * @arg @ref LL_EXTI_LINE_44 (*)
1167 * @arg @ref LL_EXTI_LINE_46 (*)
1168 * @arg @ref LL_EXTI_LINE_47
1169 * @arg @ref LL_EXTI_LINE_48
1170 * @arg @ref LL_EXTI_LINE_49
1171 * @arg @ref LL_EXTI_LINE_50
1172 * @arg @ref LL_EXTI_LINE_51
1173 * @arg @ref LL_EXTI_LINE_52
1174 * @arg @ref LL_EXTI_LINE_53
1175 * @arg @ref LL_EXTI_LINE_54
1176 * @arg @ref LL_EXTI_LINE_55
1177 * @arg @ref LL_EXTI_LINE_56
1178 * @arg @ref LL_EXTI_LINE_57 (*)
1179 * @arg @ref LL_EXTI_LINE_58
1180 * @arg @ref LL_EXTI_LINE_59 (*)
1181 * @arg @ref LL_EXTI_LINE_60
1182 * @arg @ref LL_EXTI_LINE_61
1183 * @arg @ref LL_EXTI_LINE_62
1184 * @arg @ref LL_EXTI_LINE_63
1185 * @arg @ref LL_EXTI_LINE_ALL_32_63
1186 *
1187 * (*) value not defined in all devices.
1188 * @retval None
1189 */
LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)1190 __STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
1191 {
1192 SET_BIT(EXTI->EMR2, ExtiLine);
1193 }
1194
1195 /**
1196 * @brief Enable ExtiLine Event request for Lines in range 64 to 95
1197 * @rmtoll EMR3 EMx LL_EXTI_EnableEvent_64_95
1198 * @param ExtiLine This parameter can be a combination of the following values:
1199 * @arg @ref LL_EXTI_LINE_64
1200 * @arg @ref LL_EXTI_LINE_65
1201 * @arg @ref LL_EXTI_LINE_66
1202 * @arg @ref LL_EXTI_LINE_67
1203 * @arg @ref LL_EXTI_LINE_68
1204 * @arg @ref LL_EXTI_LINE_69
1205 * @arg @ref LL_EXTI_LINE_70
1206 * @arg @ref LL_EXTI_LINE_71
1207 * @arg @ref LL_EXTI_LINE_72
1208 * @arg @ref LL_EXTI_LINE_73
1209 * @arg @ref LL_EXTI_LINE_74
1210 * @arg @ref LL_EXTI_LINE_75 (*)
1211 * @arg @ref LL_EXTI_LINE_76 (*)
1212 * @arg @ref LL_EXTI_LINE_77 (**)
1213 * @arg @ref LL_EXTI_LINE_78 (**)
1214 * @arg @ref LL_EXTI_LINE_79 (**)
1215 * @arg @ref LL_EXTI_LINE_80 (**)
1216 * @arg @ref LL_EXTI_LINE_82 (**)
1217 * @arg @ref LL_EXTI_LINE_84 (**)
1218 * @arg @ref LL_EXTI_LINE_85
1219 * @arg @ref LL_EXTI_LINE_86 (*)
1220 * @arg @ref LL_EXTI_LINE_87
1221 * @arg @ref LL_EXTI_LINE_88 (*)
1222 * @arg @ref LL_EXTI_LINE_89 (*)
1223 * @arg @ref LL_EXTI_LINE_90 (*)
1224 * @arg @ref LL_EXTI_LINE_91 (*)
1225 * @arg @ref LL_EXTI_LINE_ALL_64_95
1226 *
1227 * (*) value not defined in all devices.
1228 * (**) value only defined in dual core devices.
1229 * @retval None
1230 */
LL_EXTI_EnableEvent_64_95(uint32_t ExtiLine)1231 __STATIC_INLINE void LL_EXTI_EnableEvent_64_95(uint32_t ExtiLine)
1232 {
1233 SET_BIT(EXTI->EMR3, ExtiLine);
1234 }
1235
1236 /**
1237 * @brief Disable ExtiLine Event request for Lines in range 0 to 31
1238 * @rmtoll EMR1 EMx LL_EXTI_DisableEvent_0_31
1239 * @param ExtiLine This parameter can be one of the following values:
1240 * @arg @ref LL_EXTI_LINE_0
1241 * @arg @ref LL_EXTI_LINE_1
1242 * @arg @ref LL_EXTI_LINE_2
1243 * @arg @ref LL_EXTI_LINE_3
1244 * @arg @ref LL_EXTI_LINE_4
1245 * @arg @ref LL_EXTI_LINE_5
1246 * @arg @ref LL_EXTI_LINE_6
1247 * @arg @ref LL_EXTI_LINE_7
1248 * @arg @ref LL_EXTI_LINE_8
1249 * @arg @ref LL_EXTI_LINE_9
1250 * @arg @ref LL_EXTI_LINE_10
1251 * @arg @ref LL_EXTI_LINE_11
1252 * @arg @ref LL_EXTI_LINE_12
1253 * @arg @ref LL_EXTI_LINE_13
1254 * @arg @ref LL_EXTI_LINE_14
1255 * @arg @ref LL_EXTI_LINE_15
1256 * @arg @ref LL_EXTI_LINE_16
1257 * @arg @ref LL_EXTI_LINE_17
1258 * @arg @ref LL_EXTI_LINE_18
1259 * @arg @ref LL_EXTI_LINE_19
1260 * @arg @ref LL_EXTI_LINE_20
1261 * @arg @ref LL_EXTI_LINE_21
1262 * @arg @ref LL_EXTI_LINE_22
1263 * @arg @ref LL_EXTI_LINE_23
1264 * @arg @ref LL_EXTI_LINE_24
1265 * @arg @ref LL_EXTI_LINE_25
1266 * @arg @ref LL_EXTI_LINE_26
1267 * @arg @ref LL_EXTI_LINE_27
1268 * @arg @ref LL_EXTI_LINE_28
1269 * @arg @ref LL_EXTI_LINE_29
1270 * @arg @ref LL_EXTI_LINE_30
1271 * @arg @ref LL_EXTI_LINE_31
1272 * @arg @ref LL_EXTI_LINE_ALL_0_31
1273 * @retval None
1274 */
LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)1275 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
1276 {
1277 CLEAR_BIT(EXTI->EMR1, ExtiLine);
1278 }
1279
1280 /**
1281 * @brief Disable ExtiLine Event request for Lines in range 32 to 63
1282 * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63
1283 * @param ExtiLine This parameter can be a combination of the following values:
1284 * @arg @ref LL_EXTI_LINE_32
1285 * @arg @ref LL_EXTI_LINE_33
1286 * @arg @ref LL_EXTI_LINE_34
1287 * @arg @ref LL_EXTI_LINE_35
1288 * @arg @ref LL_EXTI_LINE_36
1289 * @arg @ref LL_EXTI_LINE_37
1290 * @arg @ref LL_EXTI_LINE_38
1291 * @arg @ref LL_EXTI_LINE_39
1292 * @arg @ref LL_EXTI_LINE_40
1293 * @arg @ref LL_EXTI_LINE_41
1294 * @arg @ref LL_EXTI_LINE_42
1295 * @arg @ref LL_EXTI_LINE_43
1296 * @arg @ref LL_EXTI_LINE_44 (*)
1297 * @arg @ref LL_EXTI_LINE_46 (*)
1298 * @arg @ref LL_EXTI_LINE_47
1299 * @arg @ref LL_EXTI_LINE_48
1300 * @arg @ref LL_EXTI_LINE_49
1301 * @arg @ref LL_EXTI_LINE_50
1302 * @arg @ref LL_EXTI_LINE_51
1303 * @arg @ref LL_EXTI_LINE_52
1304 * @arg @ref LL_EXTI_LINE_53
1305 * @arg @ref LL_EXTI_LINE_54
1306 * @arg @ref LL_EXTI_LINE_55
1307 * @arg @ref LL_EXTI_LINE_56
1308 * @arg @ref LL_EXTI_LINE_57 (*)
1309 * @arg @ref LL_EXTI_LINE_58
1310 * @arg @ref LL_EXTI_LINE_59 (*)
1311 * @arg @ref LL_EXTI_LINE_60
1312 * @arg @ref LL_EXTI_LINE_61
1313 * @arg @ref LL_EXTI_LINE_62
1314 * @arg @ref LL_EXTI_LINE_63
1315 * @arg @ref LL_EXTI_LINE_ALL_32_63
1316 *
1317 * (*) value not defined in all devices.
1318 * @retval None
1319 */
LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)1320 __STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
1321 {
1322 CLEAR_BIT(EXTI->EMR2, ExtiLine);
1323 }
1324
1325 /**
1326 * @brief Disable ExtiLine Event request for Lines in range 64 to 95
1327 * @rmtoll EMR3 EMx LL_EXTI_DisableEvent_64_95
1328 * @param ExtiLine This parameter can be a combination of the following values:
1329 * @arg @ref LL_EXTI_LINE_64
1330 * @arg @ref LL_EXTI_LINE_65
1331 * @arg @ref LL_EXTI_LINE_66
1332 * @arg @ref LL_EXTI_LINE_67
1333 * @arg @ref LL_EXTI_LINE_68
1334 * @arg @ref LL_EXTI_LINE_69
1335 * @arg @ref LL_EXTI_LINE_70
1336 * @arg @ref LL_EXTI_LINE_71
1337 * @arg @ref LL_EXTI_LINE_72
1338 * @arg @ref LL_EXTI_LINE_73
1339 * @arg @ref LL_EXTI_LINE_74
1340 * @arg @ref LL_EXTI_LINE_75 (*)
1341 * @arg @ref LL_EXTI_LINE_76 (*)
1342 * @arg @ref LL_EXTI_LINE_77 (**)
1343 * @arg @ref LL_EXTI_LINE_78 (**)
1344 * @arg @ref LL_EXTI_LINE_79 (**)
1345 * @arg @ref LL_EXTI_LINE_80 (**)
1346 * @arg @ref LL_EXTI_LINE_82 (**)
1347 * @arg @ref LL_EXTI_LINE_84 (**)
1348 * @arg @ref LL_EXTI_LINE_85
1349 * @arg @ref LL_EXTI_LINE_86 (*)
1350 * @arg @ref LL_EXTI_LINE_87
1351 * @arg @ref LL_EXTI_LINE_88 (*)
1352 * @arg @ref LL_EXTI_LINE_89 (*)
1353 * @arg @ref LL_EXTI_LINE_90 (*)
1354 * @arg @ref LL_EXTI_LINE_91 (*)
1355 * @arg @ref LL_EXTI_LINE_ALL_64_95
1356 *
1357 * (*) value not defined in all devices.
1358 * (**) value only defined in dual core devices.
1359 * @retval None
1360 */
LL_EXTI_DisableEvent_64_95(uint32_t ExtiLine)1361 __STATIC_INLINE void LL_EXTI_DisableEvent_64_95(uint32_t ExtiLine)
1362 {
1363 CLEAR_BIT(EXTI->EMR3, ExtiLine);
1364 }
1365
1366 /**
1367 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
1368 * @rmtoll EMR1 EMx LL_EXTI_IsEnabledEvent_0_31
1369 * @param ExtiLine This parameter can be one of the following values:
1370 * @arg @ref LL_EXTI_LINE_0
1371 * @arg @ref LL_EXTI_LINE_1
1372 * @arg @ref LL_EXTI_LINE_2
1373 * @arg @ref LL_EXTI_LINE_3
1374 * @arg @ref LL_EXTI_LINE_4
1375 * @arg @ref LL_EXTI_LINE_5
1376 * @arg @ref LL_EXTI_LINE_6
1377 * @arg @ref LL_EXTI_LINE_7
1378 * @arg @ref LL_EXTI_LINE_8
1379 * @arg @ref LL_EXTI_LINE_9
1380 * @arg @ref LL_EXTI_LINE_10
1381 * @arg @ref LL_EXTI_LINE_11
1382 * @arg @ref LL_EXTI_LINE_12
1383 * @arg @ref LL_EXTI_LINE_13
1384 * @arg @ref LL_EXTI_LINE_14
1385 * @arg @ref LL_EXTI_LINE_15
1386 * @arg @ref LL_EXTI_LINE_16
1387 * @arg @ref LL_EXTI_LINE_17
1388 * @arg @ref LL_EXTI_LINE_18
1389 * @arg @ref LL_EXTI_LINE_19
1390 * @arg @ref LL_EXTI_LINE_20
1391 * @arg @ref LL_EXTI_LINE_21
1392 * @arg @ref LL_EXTI_LINE_22
1393 * @arg @ref LL_EXTI_LINE_23
1394 * @arg @ref LL_EXTI_LINE_24
1395 * @arg @ref LL_EXTI_LINE_25
1396 * @arg @ref LL_EXTI_LINE_26
1397 * @arg @ref LL_EXTI_LINE_27
1398 * @arg @ref LL_EXTI_LINE_28
1399 * @arg @ref LL_EXTI_LINE_29
1400 * @arg @ref LL_EXTI_LINE_30
1401 * @arg @ref LL_EXTI_LINE_31
1402 * @arg @ref LL_EXTI_LINE_ALL_0_31
1403 * @note Please check each device line mapping for EXTI Line availability
1404 * @retval State of bit (1 or 0).
1405 */
LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)1406 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
1407 {
1408 return ((READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1409 }
1410
1411 /**
1412 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63
1413 * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63
1414 * @param ExtiLine This parameter can be a combination of the following values:
1415 * @arg @ref LL_EXTI_LINE_32
1416 * @arg @ref LL_EXTI_LINE_33
1417 * @arg @ref LL_EXTI_LINE_34
1418 * @arg @ref LL_EXTI_LINE_35
1419 * @arg @ref LL_EXTI_LINE_36
1420 * @arg @ref LL_EXTI_LINE_37
1421 * @arg @ref LL_EXTI_LINE_38
1422 * @arg @ref LL_EXTI_LINE_39
1423 * @arg @ref LL_EXTI_LINE_40
1424 * @arg @ref LL_EXTI_LINE_41
1425 * @arg @ref LL_EXTI_LINE_42
1426 * @arg @ref LL_EXTI_LINE_43
1427 * @arg @ref LL_EXTI_LINE_44 (*)
1428 * @arg @ref LL_EXTI_LINE_46 (*)
1429 * @arg @ref LL_EXTI_LINE_47
1430 * @arg @ref LL_EXTI_LINE_48
1431 * @arg @ref LL_EXTI_LINE_49
1432 * @arg @ref LL_EXTI_LINE_50
1433 * @arg @ref LL_EXTI_LINE_51
1434 * @arg @ref LL_EXTI_LINE_52
1435 * @arg @ref LL_EXTI_LINE_53
1436 * @arg @ref LL_EXTI_LINE_54
1437 * @arg @ref LL_EXTI_LINE_55
1438 * @arg @ref LL_EXTI_LINE_56
1439 * @arg @ref LL_EXTI_LINE_57 (*)
1440 * @arg @ref LL_EXTI_LINE_58
1441 * @arg @ref LL_EXTI_LINE_59 (*)
1442 * @arg @ref LL_EXTI_LINE_60
1443 * @arg @ref LL_EXTI_LINE_61
1444 * @arg @ref LL_EXTI_LINE_62
1445 * @arg @ref LL_EXTI_LINE_63
1446 * @arg @ref LL_EXTI_LINE_ALL_32_63
1447 *
1448 * (*) value not defined in all devices.
1449 * @retval State of bit (1 or 0).
1450 */
LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)1451 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
1452 {
1453 return ((READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1454 }
1455
1456 /**
1457 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 64 to 95
1458 * @rmtoll EMR3 EMx LL_EXTI_IsEnabledEvent_64_95
1459 * @param ExtiLine This parameter can be a combination of the following values:
1460 * @arg @ref LL_EXTI_LINE_64
1461 * @arg @ref LL_EXTI_LINE_65
1462 * @arg @ref LL_EXTI_LINE_66
1463 * @arg @ref LL_EXTI_LINE_67
1464 * @arg @ref LL_EXTI_LINE_68
1465 * @arg @ref LL_EXTI_LINE_69
1466 * @arg @ref LL_EXTI_LINE_70
1467 * @arg @ref LL_EXTI_LINE_71
1468 * @arg @ref LL_EXTI_LINE_72
1469 * @arg @ref LL_EXTI_LINE_73
1470 * @arg @ref LL_EXTI_LINE_74
1471 * @arg @ref LL_EXTI_LINE_75 (*)
1472 * @arg @ref LL_EXTI_LINE_76 (*)
1473 * @arg @ref LL_EXTI_LINE_77 (**)
1474 * @arg @ref LL_EXTI_LINE_78 (**)
1475 * @arg @ref LL_EXTI_LINE_79 (**)
1476 * @arg @ref LL_EXTI_LINE_80 (**)
1477 * @arg @ref LL_EXTI_LINE_82 (**)
1478 * @arg @ref LL_EXTI_LINE_84 (**)
1479 * @arg @ref LL_EXTI_LINE_85
1480 * @arg @ref LL_EXTI_LINE_86 (*)
1481 * @arg @ref LL_EXTI_LINE_87
1482 * @arg @ref LL_EXTI_LINE_88 (*)
1483 * @arg @ref LL_EXTI_LINE_89 (*)
1484 * @arg @ref LL_EXTI_LINE_90 (*)
1485 * @arg @ref LL_EXTI_LINE_91 (*)
1486 * @arg @ref LL_EXTI_LINE_ALL_64_95
1487 *
1488 * (*) value not defined in all devices.
1489 * (**) value only defined in dual core devices.
1490 * @retval State of bit (1 or 0).
1491 */
LL_EXTI_IsEnabledEvent_64_95(uint32_t ExtiLine)1492 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_64_95(uint32_t ExtiLine)
1493 {
1494 return ((READ_BIT(EXTI->EMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1495 }
1496
1497 #if defined(DUAL_CORE)
1498
1499 /**
1500 * @brief Enable ExtiLine Event request for Lines in range 0 to 31 for cpu2
1501 * @rmtoll C2EMR1 EMx LL_C2_EXTI_EnableEvent_0_31
1502 * @param ExtiLine This parameter can be one of the following values:
1503 * @arg @ref LL_EXTI_LINE_0
1504 * @arg @ref LL_EXTI_LINE_1
1505 * @arg @ref LL_EXTI_LINE_2
1506 * @arg @ref LL_EXTI_LINE_3
1507 * @arg @ref LL_EXTI_LINE_4
1508 * @arg @ref LL_EXTI_LINE_5
1509 * @arg @ref LL_EXTI_LINE_6
1510 * @arg @ref LL_EXTI_LINE_7
1511 * @arg @ref LL_EXTI_LINE_8
1512 * @arg @ref LL_EXTI_LINE_9
1513 * @arg @ref LL_EXTI_LINE_10
1514 * @arg @ref LL_EXTI_LINE_11
1515 * @arg @ref LL_EXTI_LINE_12
1516 * @arg @ref LL_EXTI_LINE_13
1517 * @arg @ref LL_EXTI_LINE_14
1518 * @arg @ref LL_EXTI_LINE_15
1519 * @arg @ref LL_EXTI_LINE_16
1520 * @arg @ref LL_EXTI_LINE_17
1521 * @arg @ref LL_EXTI_LINE_18
1522 * @arg @ref LL_EXTI_LINE_19
1523 * @arg @ref LL_EXTI_LINE_20
1524 * @arg @ref LL_EXTI_LINE_21
1525 * @arg @ref LL_EXTI_LINE_22
1526 * @arg @ref LL_EXTI_LINE_23
1527 * @arg @ref LL_EXTI_LINE_24
1528 * @arg @ref LL_EXTI_LINE_25
1529 * @arg @ref LL_EXTI_LINE_26
1530 * @arg @ref LL_EXTI_LINE_27
1531 * @arg @ref LL_EXTI_LINE_28
1532 * @arg @ref LL_EXTI_LINE_29
1533 * @arg @ref LL_EXTI_LINE_30
1534 * @arg @ref LL_EXTI_LINE_31
1535 * @arg @ref LL_EXTI_LINE_ALL_0_31
1536 * @retval None
1537 */
LL_C2_EXTI_EnableEvent_0_31(uint32_t ExtiLine)1538 __STATIC_INLINE void LL_C2_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
1539 {
1540 SET_BIT(EXTI->C2EMR1, ExtiLine);
1541 }
1542
1543
1544 /**
1545 * @brief Enable ExtiLine Event request for Lines in range 32 to 63 for cpu2
1546 * @rmtoll C2EMR2 EMx LL_C2_EXTI_EnableEvent_32_63
1547 * @param ExtiLine This parameter can be a combination of the following values:
1548 * @arg @ref LL_EXTI_LINE_32
1549 * @arg @ref LL_EXTI_LINE_33
1550 * @arg @ref LL_EXTI_LINE_34
1551 * @arg @ref LL_EXTI_LINE_35
1552 * @arg @ref LL_EXTI_LINE_36
1553 * @arg @ref LL_EXTI_LINE_37
1554 * @arg @ref LL_EXTI_LINE_38
1555 * @arg @ref LL_EXTI_LINE_39
1556 * @arg @ref LL_EXTI_LINE_40
1557 * @arg @ref LL_EXTI_LINE_41
1558 * @arg @ref LL_EXTI_LINE_42
1559 * @arg @ref LL_EXTI_LINE_43
1560 * @arg @ref LL_EXTI_LINE_44
1561 * @arg @ref LL_EXTI_LINE_46
1562 * @arg @ref LL_EXTI_LINE_47
1563 * @arg @ref LL_EXTI_LINE_48
1564 * @arg @ref LL_EXTI_LINE_49
1565 * @arg @ref LL_EXTI_LINE_50
1566 * @arg @ref LL_EXTI_LINE_51
1567 * @arg @ref LL_EXTI_LINE_52
1568 * @arg @ref LL_EXTI_LINE_53
1569 * @arg @ref LL_EXTI_LINE_54
1570 * @arg @ref LL_EXTI_LINE_55
1571 * @arg @ref LL_EXTI_LINE_56
1572 * @arg @ref LL_EXTI_LINE_57
1573 * @arg @ref LL_EXTI_LINE_58
1574 * @arg @ref LL_EXTI_LINE_59
1575 * @arg @ref LL_EXTI_LINE_60
1576 * @arg @ref LL_EXTI_LINE_61
1577 * @arg @ref LL_EXTI_LINE_62
1578 * @arg @ref LL_EXTI_LINE_63
1579 * @arg @ref LL_EXTI_LINE_ALL_32_63
1580 * @retval None
1581 */
LL_C2_EXTI_EnableEvent_32_63(uint32_t ExtiLine)1582 __STATIC_INLINE void LL_C2_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
1583 {
1584 SET_BIT(EXTI->C2EMR2, ExtiLine);
1585 }
1586
1587 /**
1588 * @brief Enable ExtiLine Event request for Lines in range 64 to 95 for cpu2
1589 * @rmtoll C2EMR3 EMx LL_C2_EXTI_EnableEvent_64_95
1590 * @param ExtiLine This parameter can be a combination of the following values:
1591 * @arg @ref LL_EXTI_LINE_64
1592 * @arg @ref LL_EXTI_LINE_65
1593 * @arg @ref LL_EXTI_LINE_66
1594 * @arg @ref LL_EXTI_LINE_67
1595 * @arg @ref LL_EXTI_LINE_68
1596 * @arg @ref LL_EXTI_LINE_69
1597 * @arg @ref LL_EXTI_LINE_70
1598 * @arg @ref LL_EXTI_LINE_71
1599 * @arg @ref LL_EXTI_LINE_72
1600 * @arg @ref LL_EXTI_LINE_73
1601 * @arg @ref LL_EXTI_LINE_74
1602 * @arg @ref LL_EXTI_LINE_75
1603 * @arg @ref LL_EXTI_LINE_76
1604 * @arg @ref LL_EXTI_LINE_77
1605 * @arg @ref LL_EXTI_LINE_78
1606 * @arg @ref LL_EXTI_LINE_79
1607 * @arg @ref LL_EXTI_LINE_80
1608 * @arg @ref LL_EXTI_LINE_82
1609 * @arg @ref LL_EXTI_LINE_84
1610 * @arg @ref LL_EXTI_LINE_85
1611 * @arg @ref LL_EXTI_LINE_86
1612 * @arg @ref LL_EXTI_LINE_87
1613 * @arg @ref LL_EXTI_LINE_ALL_64_95
1614 * @retval None
1615 */
LL_C2_EXTI_EnableEvent_64_95(uint32_t ExtiLine)1616 __STATIC_INLINE void LL_C2_EXTI_EnableEvent_64_95(uint32_t ExtiLine)
1617 {
1618 SET_BIT(EXTI->C2EMR3, ExtiLine);
1619 }
1620
1621
1622 /**
1623 * @brief Disable ExtiLine Event request for Lines in range 0 to 31 for cpu2
1624 * @rmtoll C2EMR1 EMx LL_C2_EXTI_DisableEvent_0_31
1625 * @param ExtiLine This parameter can be one of the following values:
1626 * @arg @ref LL_EXTI_LINE_0
1627 * @arg @ref LL_EXTI_LINE_1
1628 * @arg @ref LL_EXTI_LINE_2
1629 * @arg @ref LL_EXTI_LINE_3
1630 * @arg @ref LL_EXTI_LINE_4
1631 * @arg @ref LL_EXTI_LINE_5
1632 * @arg @ref LL_EXTI_LINE_6
1633 * @arg @ref LL_EXTI_LINE_7
1634 * @arg @ref LL_EXTI_LINE_8
1635 * @arg @ref LL_EXTI_LINE_9
1636 * @arg @ref LL_EXTI_LINE_10
1637 * @arg @ref LL_EXTI_LINE_11
1638 * @arg @ref LL_EXTI_LINE_12
1639 * @arg @ref LL_EXTI_LINE_13
1640 * @arg @ref LL_EXTI_LINE_14
1641 * @arg @ref LL_EXTI_LINE_15
1642 * @arg @ref LL_EXTI_LINE_16
1643 * @arg @ref LL_EXTI_LINE_17
1644 * @arg @ref LL_EXTI_LINE_18
1645 * @arg @ref LL_EXTI_LINE_19
1646 * @arg @ref LL_EXTI_LINE_20
1647 * @arg @ref LL_EXTI_LINE_21
1648 * @arg @ref LL_EXTI_LINE_22
1649 * @arg @ref LL_EXTI_LINE_23
1650 * @arg @ref LL_EXTI_LINE_24
1651 * @arg @ref LL_EXTI_LINE_25
1652 * @arg @ref LL_EXTI_LINE_26
1653 * @arg @ref LL_EXTI_LINE_27
1654 * @arg @ref LL_EXTI_LINE_28
1655 * @arg @ref LL_EXTI_LINE_29
1656 * @arg @ref LL_EXTI_LINE_30
1657 * @arg @ref LL_EXTI_LINE_31
1658 * @arg @ref LL_EXTI_LINE_ALL_0_31
1659 * @retval None
1660 */
LL_C2_EXTI_DisableEvent_0_31(uint32_t ExtiLine)1661 __STATIC_INLINE void LL_C2_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
1662 {
1663 CLEAR_BIT(EXTI->C2EMR1, ExtiLine);
1664 }
1665
1666
1667 /**
1668 * @brief Disable ExtiLine Event request for Lines in range 32 to 63 for cpu2
1669 * @rmtoll C2EMR2 EMx LL_C2_EXTI_DisableEvent_32_63
1670 * @param ExtiLine This parameter can be a combination of the following values:
1671 * @arg @ref LL_EXTI_LINE_32
1672 * @arg @ref LL_EXTI_LINE_33
1673 * @arg @ref LL_EXTI_LINE_34
1674 * @arg @ref LL_EXTI_LINE_35
1675 * @arg @ref LL_EXTI_LINE_36
1676 * @arg @ref LL_EXTI_LINE_37
1677 * @arg @ref LL_EXTI_LINE_38
1678 * @arg @ref LL_EXTI_LINE_39
1679 * @arg @ref LL_EXTI_LINE_40
1680 * @arg @ref LL_EXTI_LINE_41
1681 * @arg @ref LL_EXTI_LINE_42
1682 * @arg @ref LL_EXTI_LINE_43
1683 * @arg @ref LL_EXTI_LINE_44
1684 * @arg @ref LL_EXTI_LINE_46
1685 * @arg @ref LL_EXTI_LINE_47
1686 * @arg @ref LL_EXTI_LINE_48
1687 * @arg @ref LL_EXTI_LINE_49
1688 * @arg @ref LL_EXTI_LINE_50
1689 * @arg @ref LL_EXTI_LINE_51
1690 * @arg @ref LL_EXTI_LINE_52
1691 * @arg @ref LL_EXTI_LINE_53
1692 * @arg @ref LL_EXTI_LINE_54
1693 * @arg @ref LL_EXTI_LINE_55
1694 * @arg @ref LL_EXTI_LINE_56
1695 * @arg @ref LL_EXTI_LINE_57
1696 * @arg @ref LL_EXTI_LINE_58
1697 * @arg @ref LL_EXTI_LINE_59
1698 * @arg @ref LL_EXTI_LINE_60
1699 * @arg @ref LL_EXTI_LINE_61
1700 * @arg @ref LL_EXTI_LINE_62
1701 * @arg @ref LL_EXTI_LINE_63
1702 * @arg @ref LL_EXTI_LINE_ALL_32_63
1703 * @retval None
1704 */
LL_C2_EXTI_DisableEvent_32_63(uint32_t ExtiLine)1705 __STATIC_INLINE void LL_C2_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
1706 {
1707 CLEAR_BIT(EXTI->C2EMR2, ExtiLine);
1708 }
1709
1710
1711 /**
1712 * @brief Disable ExtiLine Event request for Lines in range 64 to 95 for cpu2
1713 * @rmtoll C2EMR3 EMx LL_C2_EXTI_DisableEvent_64_95
1714 * @param ExtiLine This parameter can be a combination of the following values:
1715 * @arg @ref LL_EXTI_LINE_64
1716 * @arg @ref LL_EXTI_LINE_65
1717 * @arg @ref LL_EXTI_LINE_66
1718 * @arg @ref LL_EXTI_LINE_67
1719 * @arg @ref LL_EXTI_LINE_68
1720 * @arg @ref LL_EXTI_LINE_69
1721 * @arg @ref LL_EXTI_LINE_70
1722 * @arg @ref LL_EXTI_LINE_71
1723 * @arg @ref LL_EXTI_LINE_72
1724 * @arg @ref LL_EXTI_LINE_73
1725 * @arg @ref LL_EXTI_LINE_74
1726 * @arg @ref LL_EXTI_LINE_75
1727 * @arg @ref LL_EXTI_LINE_76
1728 * @arg @ref LL_EXTI_LINE_77
1729 * @arg @ref LL_EXTI_LINE_78
1730 * @arg @ref LL_EXTI_LINE_79
1731 * @arg @ref LL_EXTI_LINE_80
1732 * @arg @ref LL_EXTI_LINE_82
1733 * @arg @ref LL_EXTI_LINE_84
1734 * @arg @ref LL_EXTI_LINE_85
1735 * @arg @ref LL_EXTI_LINE_86
1736 * @arg @ref LL_EXTI_LINE_87
1737 * @arg @ref LL_EXTI_LINE_ALL_64_95
1738 * @retval None
1739 */
LL_C2_EXTI_DisableEvent_64_95(uint32_t ExtiLine)1740 __STATIC_INLINE void LL_C2_EXTI_DisableEvent_64_95(uint32_t ExtiLine)
1741 {
1742 CLEAR_BIT(EXTI->C2EMR3, ExtiLine);
1743 }
1744
1745
1746 /**
1747 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 for cpu2
1748 * @rmtoll C2EMR1 EMx LL_C2_EXTI_IsEnabledEvent_0_31
1749 * @param ExtiLine This parameter can be one of the following values:
1750 * @arg @ref LL_EXTI_LINE_0
1751 * @arg @ref LL_EXTI_LINE_1
1752 * @arg @ref LL_EXTI_LINE_2
1753 * @arg @ref LL_EXTI_LINE_3
1754 * @arg @ref LL_EXTI_LINE_4
1755 * @arg @ref LL_EXTI_LINE_5
1756 * @arg @ref LL_EXTI_LINE_6
1757 * @arg @ref LL_EXTI_LINE_7
1758 * @arg @ref LL_EXTI_LINE_8
1759 * @arg @ref LL_EXTI_LINE_9
1760 * @arg @ref LL_EXTI_LINE_10
1761 * @arg @ref LL_EXTI_LINE_11
1762 * @arg @ref LL_EXTI_LINE_12
1763 * @arg @ref LL_EXTI_LINE_13
1764 * @arg @ref LL_EXTI_LINE_14
1765 * @arg @ref LL_EXTI_LINE_15
1766 * @arg @ref LL_EXTI_LINE_16
1767 * @arg @ref LL_EXTI_LINE_17
1768 * @arg @ref LL_EXTI_LINE_18
1769 * @arg @ref LL_EXTI_LINE_19
1770 * @arg @ref LL_EXTI_LINE_20
1771 * @arg @ref LL_EXTI_LINE_21
1772 * @arg @ref LL_EXTI_LINE_22
1773 * @arg @ref LL_EXTI_LINE_23
1774 * @arg @ref LL_EXTI_LINE_24
1775 * @arg @ref LL_EXTI_LINE_25
1776 * @arg @ref LL_EXTI_LINE_26
1777 * @arg @ref LL_EXTI_LINE_27
1778 * @arg @ref LL_EXTI_LINE_28
1779 * @arg @ref LL_EXTI_LINE_29
1780 * @arg @ref LL_EXTI_LINE_30
1781 * @arg @ref LL_EXTI_LINE_31
1782 * @arg @ref LL_EXTI_LINE_ALL_0_31
1783 * @note Please check each device line mapping for EXTI Line availability
1784 * @retval State of bit (1 or 0).
1785 */
LL_C2_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)1786 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
1787 {
1788 return ((READ_BIT(EXTI->C2EMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1789 }
1790
1791
1792 /**
1793 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63 for cpu2
1794 * @rmtoll C2EMR2 EMx LL_C2_EXTI_IsEnabledEvent_32_63
1795 * @param ExtiLine This parameter can be a combination of the following values:
1796 * @arg @ref LL_EXTI_LINE_32
1797 * @arg @ref LL_EXTI_LINE_33
1798 * @arg @ref LL_EXTI_LINE_34
1799 * @arg @ref LL_EXTI_LINE_35
1800 * @arg @ref LL_EXTI_LINE_36
1801 * @arg @ref LL_EXTI_LINE_37
1802 * @arg @ref LL_EXTI_LINE_38
1803 * @arg @ref LL_EXTI_LINE_39
1804 * @arg @ref LL_EXTI_LINE_40
1805 * @arg @ref LL_EXTI_LINE_41
1806 * @arg @ref LL_EXTI_LINE_42
1807 * @arg @ref LL_EXTI_LINE_43
1808 * @arg @ref LL_EXTI_LINE_44
1809 * @arg @ref LL_EXTI_LINE_46
1810 * @arg @ref LL_EXTI_LINE_47
1811 * @arg @ref LL_EXTI_LINE_48
1812 * @arg @ref LL_EXTI_LINE_49
1813 * @arg @ref LL_EXTI_LINE_50
1814 * @arg @ref LL_EXTI_LINE_51
1815 * @arg @ref LL_EXTI_LINE_52
1816 * @arg @ref LL_EXTI_LINE_53
1817 * @arg @ref LL_EXTI_LINE_54
1818 * @arg @ref LL_EXTI_LINE_55
1819 * @arg @ref LL_EXTI_LINE_56
1820 * @arg @ref LL_EXTI_LINE_57
1821 * @arg @ref LL_EXTI_LINE_58
1822 * @arg @ref LL_EXTI_LINE_59
1823 * @arg @ref LL_EXTI_LINE_60
1824 * @arg @ref LL_EXTI_LINE_61
1825 * @arg @ref LL_EXTI_LINE_62
1826 * @arg @ref LL_EXTI_LINE_63
1827 * @arg @ref LL_EXTI_LINE_ALL_32_63
1828 * @retval State of bit (1 or 0).
1829 */
LL_C2_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)1830 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
1831 {
1832 return ((READ_BIT(EXTI->C2EMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1833 }
1834
1835
1836 /**
1837 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 64 to 95 for cpu2
1838 * @rmtoll C2EMR3 EMx LL_C2_EXTI_IsEnabledEvent_64_95
1839 * @param ExtiLine This parameter can be a combination of the following values:
1840 * @arg @ref LL_EXTI_LINE_64
1841 * @arg @ref LL_EXTI_LINE_65
1842 * @arg @ref LL_EXTI_LINE_66
1843 * @arg @ref LL_EXTI_LINE_67
1844 * @arg @ref LL_EXTI_LINE_68
1845 * @arg @ref LL_EXTI_LINE_69
1846 * @arg @ref LL_EXTI_LINE_70
1847 * @arg @ref LL_EXTI_LINE_71
1848 * @arg @ref LL_EXTI_LINE_72
1849 * @arg @ref LL_EXTI_LINE_73
1850 * @arg @ref LL_EXTI_LINE_74
1851 * @arg @ref LL_EXTI_LINE_75
1852 * @arg @ref LL_EXTI_LINE_76
1853 * @arg @ref LL_EXTI_LINE_77
1854 * @arg @ref LL_EXTI_LINE_78
1855 * @arg @ref LL_EXTI_LINE_79
1856 * @arg @ref LL_EXTI_LINE_80
1857 * @arg @ref LL_EXTI_LINE_82
1858 * @arg @ref LL_EXTI_LINE_84
1859 * @arg @ref LL_EXTI_LINE_85
1860 * @arg @ref LL_EXTI_LINE_86
1861 * @arg @ref LL_EXTI_LINE_87
1862 * @arg @ref LL_EXTI_LINE_ALL_64_95
1863 * @retval State of bit (1 or 0).
1864 */
LL_C2_EXTI_IsEnabledEvent_64_95(uint32_t ExtiLine)1865 __STATIC_INLINE uint32_t LL_C2_EXTI_IsEnabledEvent_64_95(uint32_t ExtiLine)
1866 {
1867 return ((READ_BIT(EXTI->C2EMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
1868 }
1869
1870
1871 #endif /* DUAL_CORE */
1872
1873 /**
1874 * @}
1875 */
1876
1877 /** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
1878 * @{
1879 */
1880
1881 /**
1882 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
1883 * @note The configurable wakeup lines are edge-triggered. No glitch must be
1884 * generated on these lines. If a rising edge on a configurable interrupt
1885 * line occurs during a write operation in the EXTI_RTSR register, the
1886 * pending bit is not set.
1887 * Rising and falling edge triggers can be set for
1888 * the same interrupt line. In this case, both generate a trigger
1889 * condition.
1890 * @rmtoll RTSR1 RTx LL_EXTI_EnableRisingTrig_0_31
1891 * @param ExtiLine This parameter can be a combination of the following values:
1892 * @arg @ref LL_EXTI_LINE_0
1893 * @arg @ref LL_EXTI_LINE_1
1894 * @arg @ref LL_EXTI_LINE_2
1895 * @arg @ref LL_EXTI_LINE_3
1896 * @arg @ref LL_EXTI_LINE_4
1897 * @arg @ref LL_EXTI_LINE_5
1898 * @arg @ref LL_EXTI_LINE_6
1899 * @arg @ref LL_EXTI_LINE_7
1900 * @arg @ref LL_EXTI_LINE_8
1901 * @arg @ref LL_EXTI_LINE_9
1902 * @arg @ref LL_EXTI_LINE_10
1903 * @arg @ref LL_EXTI_LINE_11
1904 * @arg @ref LL_EXTI_LINE_12
1905 * @arg @ref LL_EXTI_LINE_13
1906 * @arg @ref LL_EXTI_LINE_14
1907 * @arg @ref LL_EXTI_LINE_15
1908 * @arg @ref LL_EXTI_LINE_16
1909 * @arg @ref LL_EXTI_LINE_17
1910 * @arg @ref LL_EXTI_LINE_18
1911 * @arg @ref LL_EXTI_LINE_19
1912 * @arg @ref LL_EXTI_LINE_20
1913 * @arg @ref LL_EXTI_LINE_21
1914 * @retval None
1915 */
LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)1916 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
1917 {
1918 SET_BIT(EXTI->RTSR1, ExtiLine);
1919
1920 }
1921
1922 /**
1923 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
1924 * @note The configurable wakeup lines are edge-triggered. No glitch must be
1925 * generated on these lines. If a rising edge on a configurable interrupt
1926 * line occurs during a write operation in the EXTI_RTSR register, the
1927 * pending bit is not set.Rising and falling edge triggers can be set for
1928 * the same interrupt line. In this case, both generate a trigger
1929 * condition.
1930 * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63
1931 * @param ExtiLine This parameter can be a combination of the following values:
1932 * @arg @ref LL_EXTI_LINE_49
1933 * @arg @ref LL_EXTI_LINE_51
1934 * @retval None
1935 */
LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)1936 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
1937 {
1938 SET_BIT(EXTI->RTSR2, ExtiLine);
1939 }
1940
1941 /**
1942 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 64 to 95
1943 * @note The configurable wakeup lines are edge-triggered. No glitch must be
1944 * generated on these lines. If a rising edge on a configurable interrupt
1945 * line occurs during a write operation in the EXTI_RTSR register, the
1946 * pending bit is not set.Rising and falling edge triggers can be set for
1947 * the same interrupt line. In this case, both generate a trigger
1948 * condition.
1949 * @rmtoll RTSR3 RTx LL_EXTI_EnableRisingTrig_64_95
1950 * @param ExtiLine This parameter can be a combination of the following values:
1951 * @arg @ref LL_EXTI_LINE_82 (*)
1952 * @arg @ref LL_EXTI_LINE_84 (*)
1953 * @arg @ref LL_EXTI_LINE_85
1954 * @arg @ref LL_EXTI_LINE_86 (**)
1955 *
1956 * (*) value only defined in dual core devices.
1957 * (**) value not defined in all devices.
1958 * @retval None
1959 */
LL_EXTI_EnableRisingTrig_64_95(uint32_t ExtiLine)1960 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_64_95(uint32_t ExtiLine)
1961 {
1962 SET_BIT(EXTI->RTSR3, ExtiLine);
1963 }
1964
1965 /**
1966 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
1967 * @note The configurable wakeup lines are edge-triggered. No glitch must be
1968 * generated on these lines. If a rising edge on a configurable interrupt
1969 * line occurs during a write operation in the EXTI_RTSR register, the
1970 * pending bit is not set.
1971 * Rising and falling edge triggers can be set for
1972 * the same interrupt line. In this case, both generate a trigger
1973 * condition.
1974 * @rmtoll RTSR1 RTx LL_EXTI_DisableRisingTrig_0_31
1975 * @param ExtiLine This parameter can be a combination of the following values:
1976 * @arg @ref LL_EXTI_LINE_0
1977 * @arg @ref LL_EXTI_LINE_1
1978 * @arg @ref LL_EXTI_LINE_2
1979 * @arg @ref LL_EXTI_LINE_3
1980 * @arg @ref LL_EXTI_LINE_4
1981 * @arg @ref LL_EXTI_LINE_5
1982 * @arg @ref LL_EXTI_LINE_6
1983 * @arg @ref LL_EXTI_LINE_7
1984 * @arg @ref LL_EXTI_LINE_8
1985 * @arg @ref LL_EXTI_LINE_9
1986 * @arg @ref LL_EXTI_LINE_10
1987 * @arg @ref LL_EXTI_LINE_11
1988 * @arg @ref LL_EXTI_LINE_12
1989 * @arg @ref LL_EXTI_LINE_13
1990 * @arg @ref LL_EXTI_LINE_14
1991 * @arg @ref LL_EXTI_LINE_15
1992 * @arg @ref LL_EXTI_LINE_16
1993 * @arg @ref LL_EXTI_LINE_17
1994 * @arg @ref LL_EXTI_LINE_18
1995 * @arg @ref LL_EXTI_LINE_19
1996 * @arg @ref LL_EXTI_LINE_20
1997 * @arg @ref LL_EXTI_LINE_21
1998 * @retval None
1999 */
LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)2000 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
2001 {
2002 CLEAR_BIT(EXTI->RTSR1, ExtiLine);
2003
2004 }
2005
2006 /**
2007 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
2008 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2009 * generated on these lines. If a rising edge on a configurable interrupt
2010 * line occurs during a write operation in the EXTI_RTSR register, the
2011 * pending bit is not set.
2012 * Rising and falling edge triggers can be set for
2013 * the same interrupt line. In this case, both generate a trigger
2014 * condition.
2015 * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63
2016 * @param ExtiLine This parameter can be a combination of the following values:
2017 * @arg @ref LL_EXTI_LINE_49
2018 * @arg @ref LL_EXTI_LINE_51
2019 * @retval None
2020 */
LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)2021 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
2022 {
2023 CLEAR_BIT(EXTI->RTSR2, ExtiLine);
2024 }
2025
2026 /**
2027 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 64 to 95
2028 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2029 * generated on these lines. If a rising edge on a configurable interrupt
2030 * line occurs during a write operation in the EXTI_RTSR register, the
2031 * pending bit is not set.
2032 * Rising and falling edge triggers can be set for
2033 * the same interrupt line. In this case, both generate a trigger
2034 * condition.
2035 * @rmtoll RTSR3 RTx LL_EXTI_DisableRisingTrig_64_95
2036 * @param ExtiLine This parameter can be a combination of the following values:
2037 * @arg @ref LL_EXTI_LINE_82 (*)
2038 * @arg @ref LL_EXTI_LINE_84 (*)
2039 * @arg @ref LL_EXTI_LINE_85
2040 * @arg @ref LL_EXTI_LINE_86 (**)
2041 *
2042 * (*) value only defined in dual core devices.
2043 * (**) value not defined in all devices.
2044 * @retval None
2045 */
LL_EXTI_DisableRisingTrig_64_95(uint32_t ExtiLine)2046 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_64_95(uint32_t ExtiLine)
2047 {
2048 CLEAR_BIT(EXTI->RTSR3, ExtiLine);
2049 }
2050
2051 /**
2052 * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31
2053 * @rmtoll RTSR1 RTx LL_EXTI_IsEnabledRisingTrig_0_31
2054 * @param ExtiLine This parameter can be a combination of the following values:
2055 * @arg @ref LL_EXTI_LINE_0
2056 * @arg @ref LL_EXTI_LINE_1
2057 * @arg @ref LL_EXTI_LINE_2
2058 * @arg @ref LL_EXTI_LINE_3
2059 * @arg @ref LL_EXTI_LINE_4
2060 * @arg @ref LL_EXTI_LINE_5
2061 * @arg @ref LL_EXTI_LINE_6
2062 * @arg @ref LL_EXTI_LINE_7
2063 * @arg @ref LL_EXTI_LINE_8
2064 * @arg @ref LL_EXTI_LINE_9
2065 * @arg @ref LL_EXTI_LINE_10
2066 * @arg @ref LL_EXTI_LINE_11
2067 * @arg @ref LL_EXTI_LINE_12
2068 * @arg @ref LL_EXTI_LINE_13
2069 * @arg @ref LL_EXTI_LINE_14
2070 * @arg @ref LL_EXTI_LINE_15
2071 * @arg @ref LL_EXTI_LINE_16
2072 * @arg @ref LL_EXTI_LINE_17
2073 * @arg @ref LL_EXTI_LINE_18
2074 * @arg @ref LL_EXTI_LINE_19
2075 * @arg @ref LL_EXTI_LINE_20
2076 * @arg @ref LL_EXTI_LINE_21
2077 * @retval State of bit (1 or 0).
2078 */
LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)2079 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
2080 {
2081 return ((READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2082 }
2083
2084
2085 /**
2086 * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63
2087 * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63
2088 * @param ExtiLine This parameter can be a combination of the following values:
2089 * @arg @ref LL_EXTI_LINE_49
2090 * @arg @ref LL_EXTI_LINE_51
2091 * @retval State of bit (1 or 0).
2092 */
LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)2093 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
2094 {
2095 return ((READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2096 }
2097
2098 /**
2099 * @brief Check if rising edge trigger is enabled for Lines in range 64 to 95
2100 * @rmtoll RTSR3 RTx LL_EXTI_IsEnabledRisingTrig_64_95
2101 * @param ExtiLine This parameter can be a combination of the following values:
2102 * @arg @ref LL_EXTI_LINE_82 (*)
2103 * @arg @ref LL_EXTI_LINE_84 (*)
2104 * @arg @ref LL_EXTI_LINE_85
2105 * @arg @ref LL_EXTI_LINE_86 (**)
2106 *
2107 * (*) value only defined in dual core devices.
2108 * (**) value not defined in all devices.
2109 * @retval State of bit (1 or 0).
2110 */
LL_EXTI_IsEnabledRisingTrig_64_95(uint32_t ExtiLine)2111 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_64_95(uint32_t ExtiLine)
2112 {
2113 return ((READ_BIT(EXTI->RTSR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2114 }
2115
2116 /**
2117 * @}
2118 */
2119
2120 /** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
2121 * @{
2122 */
2123
2124 /**
2125 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
2126 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2127 * generated on these lines. If a falling edge on a configurable interrupt
2128 * line occurs during a write operation in the EXTI_FTSR register, the
2129 * pending bit is not set.
2130 * Rising and falling edge triggers can be set for
2131 * the same interrupt line. In this case, both generate a trigger
2132 * condition.
2133 * @rmtoll FTSR1 FTx LL_EXTI_EnableFallingTrig_0_31
2134 * @param ExtiLine This parameter can be a combination of the following values:
2135 * @arg @ref LL_EXTI_LINE_0
2136 * @arg @ref LL_EXTI_LINE_1
2137 * @arg @ref LL_EXTI_LINE_2
2138 * @arg @ref LL_EXTI_LINE_3
2139 * @arg @ref LL_EXTI_LINE_4
2140 * @arg @ref LL_EXTI_LINE_5
2141 * @arg @ref LL_EXTI_LINE_6
2142 * @arg @ref LL_EXTI_LINE_7
2143 * @arg @ref LL_EXTI_LINE_8
2144 * @arg @ref LL_EXTI_LINE_9
2145 * @arg @ref LL_EXTI_LINE_10
2146 * @arg @ref LL_EXTI_LINE_11
2147 * @arg @ref LL_EXTI_LINE_12
2148 * @arg @ref LL_EXTI_LINE_13
2149 * @arg @ref LL_EXTI_LINE_14
2150 * @arg @ref LL_EXTI_LINE_15
2151 * @arg @ref LL_EXTI_LINE_16
2152 * @arg @ref LL_EXTI_LINE_18
2153 * @arg @ref LL_EXTI_LINE_19
2154 * @arg @ref LL_EXTI_LINE_20
2155 * @arg @ref LL_EXTI_LINE_21
2156 * @note Please check each device line mapping for EXTI Line availability
2157 * @retval None
2158 */
LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)2159 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
2160 {
2161 SET_BIT(EXTI->FTSR1, ExtiLine);
2162 }
2163
2164 /**
2165 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
2166 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2167 * generated on these lines. If a Falling edge on a configurable interrupt
2168 * line occurs during a write operation in the EXTI_FTSR register, the
2169 * pending bit is not set.
2170 * Rising and falling edge triggers can be set for
2171 * the same interrupt line. In this case, both generate a trigger
2172 * condition.
2173 * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63
2174 * @param ExtiLine This parameter can be a combination of the following values:
2175 * @arg @ref LL_EXTI_LINE_49
2176 * @arg @ref LL_EXTI_LINE_51
2177 * @retval None
2178 */
LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)2179 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
2180 {
2181 SET_BIT(EXTI->FTSR2, ExtiLine);
2182 }
2183
2184 /**
2185 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 64 to 95
2186 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2187 * generated on these lines. If a Falling edge on a configurable interrupt
2188 * line occurs during a write operation in the EXTI_FTSR register, the
2189 * pending bit is not set.
2190 * Rising and falling edge triggers can be set for
2191 * the same interrupt line. In this case, both generate a trigger
2192 * condition.
2193 * @rmtoll FTSR3 FTx LL_EXTI_EnableFallingTrig_64_95
2194 * @param ExtiLine This parameter can be a combination of the following values:
2195 * @arg @ref LL_EXTI_LINE_82 (*)
2196 * @arg @ref LL_EXTI_LINE_84 (*)
2197 * @arg @ref LL_EXTI_LINE_85
2198 * @arg @ref LL_EXTI_LINE_86 (**)
2199 *
2200 * (*) value only defined in dual core devices.
2201 * (**) value not defined in all devices.
2202 * @retval None
2203 */
LL_EXTI_EnableFallingTrig_64_95(uint32_t ExtiLine)2204 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_64_95(uint32_t ExtiLine)
2205 {
2206 SET_BIT(EXTI->FTSR3, ExtiLine);
2207 }
2208
2209
2210 /**
2211 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
2212 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2213 * generated on these lines. If a Falling edge on a configurable interrupt
2214 * line occurs during a write operation in the EXTI_FTSR register, the
2215 * pending bit is not set.
2216 * Rising and falling edge triggers can be set for the same interrupt line.
2217 * In this case, both generate a trigger condition.
2218 * @rmtoll FTSR1 FTx LL_EXTI_DisableFallingTrig_0_31
2219 * @param ExtiLine This parameter can be a combination of the following values:
2220 * @arg @ref LL_EXTI_LINE_0
2221 * @arg @ref LL_EXTI_LINE_1
2222 * @arg @ref LL_EXTI_LINE_2
2223 * @arg @ref LL_EXTI_LINE_3
2224 * @arg @ref LL_EXTI_LINE_4
2225 * @arg @ref LL_EXTI_LINE_5
2226 * @arg @ref LL_EXTI_LINE_6
2227 * @arg @ref LL_EXTI_LINE_7
2228 * @arg @ref LL_EXTI_LINE_8
2229 * @arg @ref LL_EXTI_LINE_9
2230 * @arg @ref LL_EXTI_LINE_10
2231 * @arg @ref LL_EXTI_LINE_11
2232 * @arg @ref LL_EXTI_LINE_12
2233 * @arg @ref LL_EXTI_LINE_13
2234 * @arg @ref LL_EXTI_LINE_14
2235 * @arg @ref LL_EXTI_LINE_15
2236 * @arg @ref LL_EXTI_LINE_16
2237 * @arg @ref LL_EXTI_LINE_18
2238 * @arg @ref LL_EXTI_LINE_19
2239 * @arg @ref LL_EXTI_LINE_20
2240 * @arg @ref LL_EXTI_LINE_21
2241 * @note Please check each device line mapping for EXTI Line availability
2242 * @retval None
2243 */
LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)2244 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
2245 {
2246 CLEAR_BIT(EXTI->FTSR1, ExtiLine);
2247 }
2248
2249 /**
2250 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
2251 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2252 * generated on these lines. If a Falling edge on a configurable interrupt
2253 * line occurs during a write operation in the EXTI_FTSR register, the
2254 * pending bit is not set.
2255 * Rising and falling edge triggers can be set for the same interrupt line.
2256 * In this case, both generate a trigger condition.
2257 * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63
2258 * @param ExtiLine This parameter can be a combination of the following values:
2259 * @arg @ref LL_EXTI_LINE_49
2260 * @arg @ref LL_EXTI_LINE_51
2261 * @retval None
2262 */
LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)2263 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
2264 {
2265 CLEAR_BIT(EXTI->FTSR2, ExtiLine);
2266 }
2267
2268 /**
2269 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 64 to 95
2270 * @note The configurable wakeup lines are edge-triggered. No glitch must be
2271 * generated on these lines. If a Falling edge on a configurable interrupt
2272 * line occurs during a write operation in the EXTI_FTSR register, the
2273 * pending bit is not set.
2274 * Rising and falling edge triggers can be set for the same interrupt line.
2275 * In this case, both generate a trigger condition.
2276 * @rmtoll FTSR3 FTx LL_EXTI_DisableFallingTrig_64_95
2277 * @param ExtiLine This parameter can be a combination of the following values:
2278 * @arg @ref LL_EXTI_LINE_82 (*)
2279 * @arg @ref LL_EXTI_LINE_84 (*)
2280 * @arg @ref LL_EXTI_LINE_85
2281 * @arg @ref LL_EXTI_LINE_86 (**)
2282 *
2283 * (*) value only defined in dual core devices.
2284 * (**) value not defined in all devices.
2285 * @retval None
2286 */
LL_EXTI_DisableFallingTrig_64_95(uint32_t ExtiLine)2287 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_64_95(uint32_t ExtiLine)
2288 {
2289 CLEAR_BIT(EXTI->FTSR3, ExtiLine);
2290 }
2291
2292
2293 /**
2294 * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31
2295 * @rmtoll FTSR1 FTx LL_EXTI_IsEnabledFallingTrig_0_31
2296 * @param ExtiLine This parameter can be a combination of the following values:
2297 * @arg @ref LL_EXTI_LINE_0
2298 * @arg @ref LL_EXTI_LINE_1
2299 * @arg @ref LL_EXTI_LINE_2
2300 * @arg @ref LL_EXTI_LINE_3
2301 * @arg @ref LL_EXTI_LINE_4
2302 * @arg @ref LL_EXTI_LINE_5
2303 * @arg @ref LL_EXTI_LINE_6
2304 * @arg @ref LL_EXTI_LINE_7
2305 * @arg @ref LL_EXTI_LINE_8
2306 * @arg @ref LL_EXTI_LINE_9
2307 * @arg @ref LL_EXTI_LINE_10
2308 * @arg @ref LL_EXTI_LINE_11
2309 * @arg @ref LL_EXTI_LINE_12
2310 * @arg @ref LL_EXTI_LINE_13
2311 * @arg @ref LL_EXTI_LINE_14
2312 * @arg @ref LL_EXTI_LINE_15
2313 * @arg @ref LL_EXTI_LINE_16
2314 * @arg @ref LL_EXTI_LINE_18
2315 * @arg @ref LL_EXTI_LINE_19
2316 * @arg @ref LL_EXTI_LINE_20
2317 * @arg @ref LL_EXTI_LINE_21
2318 * @note Please check each device line mapping for EXTI Line availability
2319 * @retval State of bit (1 or 0).
2320 */
LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)2321 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
2322 {
2323 return ((READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2324 }
2325
2326 /**
2327 * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63
2328 * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63
2329 * @param ExtiLine This parameter can be a combination of the following values:
2330 * @arg @ref LL_EXTI_LINE_49
2331 * @arg @ref LL_EXTI_LINE_51
2332 * @retval State of bit (1 or 0).
2333 */
LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)2334 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
2335 {
2336 return ((READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2337 }
2338
2339 /**
2340 * @brief Check if falling edge trigger is enabled for Lines in range 64 to 95
2341 * @rmtoll FTSR3 FTx LL_EXTI_IsEnabledFallingTrig_64_95
2342 * @param ExtiLine This parameter can be a combination of the following values:
2343 * @arg @ref LL_EXTI_LINE_82 (*)
2344 * @arg @ref LL_EXTI_LINE_84 (*)
2345 * @arg @ref LL_EXTI_LINE_85
2346 * @arg @ref LL_EXTI_LINE_86 (**)
2347 *
2348 * (*) value only defined in dual core devices.
2349 * (**) value not defined in all devices.
2350 * @retval State of bit (1 or 0).
2351 */
LL_EXTI_IsEnabledFallingTrig_64_95(uint32_t ExtiLine)2352 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_64_95(uint32_t ExtiLine)
2353 {
2354 return ((READ_BIT(EXTI->FTSR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2355 }
2356
2357
2358 /**
2359 * @}
2360 */
2361
2362 /** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
2363 * @{
2364 */
2365
2366 /**
2367 * @brief Generate a software Interrupt Event for Lines in range 0 to 31
2368 * @note If the interrupt is enabled on this line in the EXTI_C1IMR1, writing a 1 to
2369 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR1
2370 * resulting in an interrupt request generation.
2371 * This bit is cleared by clearing the corresponding bit in the EXTI_PR1
2372 * register (by writing a 1 into the bit)
2373 * @rmtoll SWIER1 SWIx LL_EXTI_GenerateSWI_0_31
2374 * @param ExtiLine This parameter can be a combination of the following values:
2375 * @arg @ref LL_EXTI_LINE_0
2376 * @arg @ref LL_EXTI_LINE_1
2377 * @arg @ref LL_EXTI_LINE_2
2378 * @arg @ref LL_EXTI_LINE_3
2379 * @arg @ref LL_EXTI_LINE_4
2380 * @arg @ref LL_EXTI_LINE_5
2381 * @arg @ref LL_EXTI_LINE_6
2382 * @arg @ref LL_EXTI_LINE_7
2383 * @arg @ref LL_EXTI_LINE_8
2384 * @arg @ref LL_EXTI_LINE_9
2385 * @arg @ref LL_EXTI_LINE_10
2386 * @arg @ref LL_EXTI_LINE_11
2387 * @arg @ref LL_EXTI_LINE_12
2388 * @arg @ref LL_EXTI_LINE_13
2389 * @arg @ref LL_EXTI_LINE_14
2390 * @arg @ref LL_EXTI_LINE_15
2391 * @arg @ref LL_EXTI_LINE_16
2392 * @arg @ref LL_EXTI_LINE_18
2393 * @arg @ref LL_EXTI_LINE_19
2394 * @arg @ref LL_EXTI_LINE_20
2395 * @arg @ref LL_EXTI_LINE_21
2396 * @note Please check each device line mapping for EXTI Line availability
2397 * @retval None
2398 */
LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)2399 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
2400 {
2401 SET_BIT(EXTI->SWIER1, ExtiLine);
2402 }
2403
2404 /**
2405 * @brief Generate a software Interrupt Event for Lines in range 32 to 63
2406 * @note If the interrupt is enabled on this line in the EXTI_IMR2, writing a 1 to
2407 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR2
2408 * resulting in an interrupt request generation.
2409 * This bit is cleared by clearing the corresponding bit in the EXTI_PR2
2410 * register (by writing a 1 into the bit)
2411 * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63
2412 * @param ExtiLine This parameter can be a combination of the following values:
2413 * @arg @ref LL_EXTI_LINE_49
2414 * @arg @ref LL_EXTI_LINE_51
2415 * @retval None
2416 */
LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)2417 __STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
2418 {
2419 SET_BIT(EXTI->SWIER2, ExtiLine);
2420 }
2421
2422 /**
2423 * @brief Generate a software Interrupt Event for Lines in range 64 to 95
2424 * @note If the interrupt is enabled on this line in the EXTI_IMR2, writing a 1 to
2425 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR2
2426 * resulting in an interrupt request generation.
2427 * This bit is cleared by clearing the corresponding bit in the EXTI_PR3
2428 * register (by writing a 1 into the bit)
2429 * @rmtoll SWIER3 SWIx LL_EXTI_GenerateSWI_64_95
2430 * @param ExtiLine This parameter can be a combination of the following values:
2431 * @arg @ref LL_EXTI_LINE_82 (*)
2432 * @arg @ref LL_EXTI_LINE_84 (*)
2433 * @arg @ref LL_EXTI_LINE_85
2434 * @arg @ref LL_EXTI_LINE_86 (**)
2435 *
2436 * (*) value only defined in dual core devices.
2437 * (**) value not defined in all devices.
2438 * @retval None
2439 */
LL_EXTI_GenerateSWI_64_95(uint32_t ExtiLine)2440 __STATIC_INLINE void LL_EXTI_GenerateSWI_64_95(uint32_t ExtiLine)
2441 {
2442 SET_BIT(EXTI->SWIER3, ExtiLine);
2443 }
2444
2445
2446 /**
2447 * @}
2448 */
2449
2450 /** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
2451 * @{
2452 */
2453
2454 /**
2455 * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31
2456 * @note This bit is set when the selected edge event arrives on the interrupt
2457 * line. This bit is cleared by writing a 1 to the bit.
2458 * @rmtoll PR1 PIFx LL_EXTI_IsActiveFlag_0_31
2459 * @param ExtiLine This parameter can be a combination of the following values:
2460 * @arg @ref LL_EXTI_LINE_0
2461 * @arg @ref LL_EXTI_LINE_1
2462 * @arg @ref LL_EXTI_LINE_2
2463 * @arg @ref LL_EXTI_LINE_3
2464 * @arg @ref LL_EXTI_LINE_4
2465 * @arg @ref LL_EXTI_LINE_5
2466 * @arg @ref LL_EXTI_LINE_6
2467 * @arg @ref LL_EXTI_LINE_7
2468 * @arg @ref LL_EXTI_LINE_8
2469 * @arg @ref LL_EXTI_LINE_9
2470 * @arg @ref LL_EXTI_LINE_10
2471 * @arg @ref LL_EXTI_LINE_11
2472 * @arg @ref LL_EXTI_LINE_12
2473 * @arg @ref LL_EXTI_LINE_13
2474 * @arg @ref LL_EXTI_LINE_14
2475 * @arg @ref LL_EXTI_LINE_15
2476 * @arg @ref LL_EXTI_LINE_16
2477 * @arg @ref LL_EXTI_LINE_17
2478 * @arg @ref LL_EXTI_LINE_18
2479 * @arg @ref LL_EXTI_LINE_19
2480 * @arg @ref LL_EXTI_LINE_20
2481 * @arg @ref LL_EXTI_LINE_21
2482 * @arg @ref LL_EXTI_LINE_ALL_0_31
2483 * @retval State of bit (1 or 0).
2484 */
LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)2485 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
2486 {
2487 return ((READ_BIT(EXTI->PR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2488 }
2489
2490 /**
2491 * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63
2492 * @note This bit is set when the selected edge event arrives on the interrupt
2493 * line. This bit is cleared by writing a 1 to the bit.
2494 * @rmtoll PR2 PIFx LL_EXTI_IsActiveFlag_32_63
2495 * @param ExtiLine This parameter can be a combination of the following values:
2496 * @arg @ref LL_EXTI_LINE_49
2497 * @arg @ref LL_EXTI_LINE_51
2498 * @arg @ref LL_EXTI_LINE_ALL_32_63
2499 * @retval State of bit (1 or 0).
2500 */
LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)2501 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
2502 {
2503 return ((READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2504 }
2505
2506 /**
2507 * @brief Check if the ExtLine Flag is set or not for Lines in range 64 to 95
2508 * @note This bit is set when the selected edge event arrives on the interrupt
2509 * line. This bit is cleared by writing a 1 to the bit.
2510 * @rmtoll PR3 PIFx LL_EXTI_IsActiveFlag_64_95
2511 * @param ExtiLine This parameter can be a combination of the following values:
2512 * @arg @ref LL_EXTI_LINE_82 (*)
2513 * @arg @ref LL_EXTI_LINE_84 (*)
2514 * @arg @ref LL_EXTI_LINE_85
2515 * @arg @ref LL_EXTI_LINE_86 (**)
2516 *
2517 * (*) value only defined in dual core devices.
2518 * (**) value not defined in all devices.
2519 * @retval State of bit (1 or 0).
2520 */
LL_EXTI_IsActiveFlag_64_95(uint32_t ExtiLine)2521 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_64_95(uint32_t ExtiLine)
2522 {
2523 return ((READ_BIT(EXTI->PR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2524 }
2525
2526
2527 /**
2528 * @brief Read ExtLine Combination Flag for Lines in range 0 to 31
2529 * @note This bit is set when the selected edge event arrives on the interrupt
2530 * line. This bit is cleared by writing a 1 to the bit.
2531 * @rmtoll PR1 PIFx LL_EXTI_ReadFlag_0_31
2532 * @param ExtiLine This parameter can be a combination of the following values:
2533 * @arg @ref LL_EXTI_LINE_0
2534 * @arg @ref LL_EXTI_LINE_1
2535 * @arg @ref LL_EXTI_LINE_2
2536 * @arg @ref LL_EXTI_LINE_3
2537 * @arg @ref LL_EXTI_LINE_4
2538 * @arg @ref LL_EXTI_LINE_5
2539 * @arg @ref LL_EXTI_LINE_6
2540 * @arg @ref LL_EXTI_LINE_7
2541 * @arg @ref LL_EXTI_LINE_8
2542 * @arg @ref LL_EXTI_LINE_9
2543 * @arg @ref LL_EXTI_LINE_10
2544 * @arg @ref LL_EXTI_LINE_11
2545 * @arg @ref LL_EXTI_LINE_12
2546 * @arg @ref LL_EXTI_LINE_13
2547 * @arg @ref LL_EXTI_LINE_14
2548 * @arg @ref LL_EXTI_LINE_15
2549 * @arg @ref LL_EXTI_LINE_16
2550 * @arg @ref LL_EXTI_LINE_17
2551 * @arg @ref LL_EXTI_LINE_18
2552 * @arg @ref LL_EXTI_LINE_19
2553 * @arg @ref LL_EXTI_LINE_20
2554 * @arg @ref LL_EXTI_LINE_21
2555 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2556 */
LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)2557 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
2558 {
2559 return (uint32_t)(READ_BIT(EXTI->PR1, ExtiLine));
2560 }
2561
2562
2563 /**
2564 * @brief Read ExtLine Combination Flag for Lines in range 32 to 63
2565 * @note This bit is set when the selected edge event arrives on the interrupt
2566 * line. This bit is cleared by writing a 1 to the bit.
2567 * @rmtoll PR2 PIFx LL_EXTI_ReadFlag_32_63
2568 * @param ExtiLine This parameter can be a combination of the following values:
2569 * @arg @ref LL_EXTI_LINE_49
2570 * @arg @ref LL_EXTI_LINE_51
2571 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2572 */
LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)2573 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
2574 {
2575 return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine));
2576 }
2577
2578
2579 /**
2580 * @brief Read ExtLine Combination Flag for Lines in range 64 to 95
2581 * @note This bit is set when the selected edge event arrives on the interrupt
2582 * line. This bit is cleared by writing a 1 to the bit.
2583 * @rmtoll PR3 PIFx LL_EXTI_ReadFlag_64_95
2584 * @param ExtiLine This parameter can be a combination of the following values:
2585 * @arg @ref LL_EXTI_LINE_82 (*)
2586 * @arg @ref LL_EXTI_LINE_84 (*)
2587 * @arg @ref LL_EXTI_LINE_85
2588 * @arg @ref LL_EXTI_LINE_86 (**)
2589 *
2590 * (*) value only defined in dual core devices.
2591 * (**) value not defined in all devices.
2592 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2593 */
LL_EXTI_ReadFlag_64_95(uint32_t ExtiLine)2594 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_64_95(uint32_t ExtiLine)
2595 {
2596 return (uint32_t)(READ_BIT(EXTI->PR3, ExtiLine));
2597 }
2598
2599 /**
2600 * @brief Clear ExtLine Flags for Lines in range 0 to 31
2601 * @note This bit is set when the selected edge event arrives on the interrupt
2602 * line. This bit is cleared by writing a 1 to the bit.
2603 * @rmtoll PR1 PIFx LL_EXTI_ClearFlag_0_31
2604 * @param ExtiLine This parameter can be a combination of the following values:
2605 * @arg @ref LL_EXTI_LINE_0
2606 * @arg @ref LL_EXTI_LINE_1
2607 * @arg @ref LL_EXTI_LINE_2
2608 * @arg @ref LL_EXTI_LINE_3
2609 * @arg @ref LL_EXTI_LINE_4
2610 * @arg @ref LL_EXTI_LINE_5
2611 * @arg @ref LL_EXTI_LINE_6
2612 * @arg @ref LL_EXTI_LINE_7
2613 * @arg @ref LL_EXTI_LINE_8
2614 * @arg @ref LL_EXTI_LINE_9
2615 * @arg @ref LL_EXTI_LINE_10
2616 * @arg @ref LL_EXTI_LINE_11
2617 * @arg @ref LL_EXTI_LINE_12
2618 * @arg @ref LL_EXTI_LINE_13
2619 * @arg @ref LL_EXTI_LINE_14
2620 * @arg @ref LL_EXTI_LINE_15
2621 * @arg @ref LL_EXTI_LINE_16
2622 * @arg @ref LL_EXTI_LINE_17
2623 * @arg @ref LL_EXTI_LINE_18
2624 * @arg @ref LL_EXTI_LINE_19
2625 * @arg @ref LL_EXTI_LINE_20
2626 * @arg @ref LL_EXTI_LINE_21
2627 * @retval None
2628 */
LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)2629 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
2630 {
2631 WRITE_REG(EXTI->PR1, ExtiLine);
2632 }
2633
2634 /**
2635 * @brief Clear ExtLine Flags for Lines in range 32 to 63
2636 * @note This bit is set when the selected edge event arrives on the interrupt
2637 * line. This bit is cleared by writing a 1 to the bit.
2638 * @rmtoll PR2 PIFx LL_EXTI_ClearFlag_32_63
2639 * @param ExtiLine This parameter can be a combination of the following values:
2640 * @arg @ref LL_EXTI_LINE_49
2641 * @arg @ref LL_EXTI_LINE_51
2642 * @retval None
2643 */
LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)2644 __STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
2645 {
2646 WRITE_REG(EXTI->PR2, ExtiLine);
2647 }
2648
2649 /**
2650 * @brief Clear ExtLine Flags for Lines in range 64 to 95
2651 * @note This bit is set when the selected edge event arrives on the interrupt
2652 * line. This bit is cleared by writing a 1 to the bit.
2653 * @rmtoll PR3 PIFx LL_EXTI_ClearFlag_64_95
2654 * @param ExtiLine This parameter can be a combination of the following values:
2655 * @arg @ref LL_EXTI_LINE_82 (*)
2656 * @arg @ref LL_EXTI_LINE_84 (*)
2657 * @arg @ref LL_EXTI_LINE_85
2658 * @arg @ref LL_EXTI_LINE_86 (**)
2659 *
2660 * (*) value only defined in dual core devices.
2661 * (**) value not defined in all devices.
2662 * @retval None
2663 */
LL_EXTI_ClearFlag_64_95(uint32_t ExtiLine)2664 __STATIC_INLINE void LL_EXTI_ClearFlag_64_95(uint32_t ExtiLine)
2665 {
2666 WRITE_REG(EXTI->PR3, ExtiLine);
2667 }
2668
2669 #if defined(DUAL_CORE)
2670
2671 /**
2672 * @brief Check if the ExtLine Flag is set or not for Lines in range 0 to 31 for cpu2
2673 * @note This bit is set when the selected edge event arrives on the interrupt
2674 * line. This bit is cleared by writing a 1 to the bit.
2675 * @rmtoll C2PR1 PIFx LL_C2_EXTI_IsActiveFlag_0_31
2676 * @param ExtiLine This parameter can be a combination of the following values:
2677 * @arg @ref LL_EXTI_LINE_0
2678 * @arg @ref LL_EXTI_LINE_1
2679 * @arg @ref LL_EXTI_LINE_2
2680 * @arg @ref LL_EXTI_LINE_3
2681 * @arg @ref LL_EXTI_LINE_4
2682 * @arg @ref LL_EXTI_LINE_5
2683 * @arg @ref LL_EXTI_LINE_6
2684 * @arg @ref LL_EXTI_LINE_7
2685 * @arg @ref LL_EXTI_LINE_8
2686 * @arg @ref LL_EXTI_LINE_9
2687 * @arg @ref LL_EXTI_LINE_10
2688 * @arg @ref LL_EXTI_LINE_11
2689 * @arg @ref LL_EXTI_LINE_12
2690 * @arg @ref LL_EXTI_LINE_13
2691 * @arg @ref LL_EXTI_LINE_14
2692 * @arg @ref LL_EXTI_LINE_15
2693 * @arg @ref LL_EXTI_LINE_16
2694 * @arg @ref LL_EXTI_LINE_17
2695 * @arg @ref LL_EXTI_LINE_18
2696 * @arg @ref LL_EXTI_LINE_19
2697 * @arg @ref LL_EXTI_LINE_20
2698 * @arg @ref LL_EXTI_LINE_21
2699 * @arg @ref LL_EXTI_LINE_ALL_0_31
2700 * @retval State of bit (1 or 0).
2701 */
LL_C2_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)2702 __STATIC_INLINE uint32_t LL_C2_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
2703 {
2704 return ((READ_BIT(EXTI->C2PR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2705 }
2706
2707 /**
2708 * @brief Check if the ExtLine Flag is set or not for Lines in range 32 to 63 for cpu2
2709 * @note This bit is set when the selected edge event arrives on the interrupt
2710 * line. This bit is cleared by writing a 1 to the bit.
2711 * @rmtoll C2PR2 PIFx LL_C2_EXTI_IsActiveFlag_32_63
2712 * @param ExtiLine This parameter can be a combination of the following values:
2713 * @arg @ref LL_EXTI_LINE_49
2714 * @arg @ref LL_EXTI_LINE_51
2715 * @arg @ref LL_EXTI_LINE_ALL_32_63
2716 * @retval State of bit (1 or 0).
2717 */
LL_C2_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)2718 __STATIC_INLINE uint32_t LL_C2_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
2719 {
2720 return ((READ_BIT(EXTI->C2PR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2721 }
2722
2723 /**
2724 * @brief Check if the ExtLine Flag is set or not for Lines in range 64 to 95 for cpu2
2725 * @note This bit is set when the selected edge event arrives on the interrupt
2726 * line. This bit is cleared by writing a 1 to the bit.
2727 * @rmtoll C2PR3 PIFx LL_C2_EXTI_IsActiveFlag_64_95
2728 * @param ExtiLine This parameter can be a combination of the following values:
2729 * @arg @ref LL_EXTI_LINE_82
2730 * @arg @ref LL_EXTI_LINE_84
2731 * @arg @ref LL_EXTI_LINE_85
2732 * @arg @ref LL_EXTI_LINE_86
2733 * @arg @ref LL_EXTI_LINE_ALL_64_95
2734 * @retval State of bit (1 or 0).
2735 */
LL_C2_EXTI_IsActiveFlag_64_95(uint32_t ExtiLine)2736 __STATIC_INLINE uint32_t LL_C2_EXTI_IsActiveFlag_64_95(uint32_t ExtiLine)
2737 {
2738 return ((READ_BIT(EXTI->C2PR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
2739 }
2740
2741 /**
2742 * @brief Read ExtLine Combination Flag for Lines in range 0 to 31 for cpu2
2743 * @note This bit is set when the selected edge event arrives on the interrupt
2744 * line. This bit is cleared by writing a 1 to the bit.
2745 * @rmtoll C2PR1 PIFx LL_C2_EXTI_ReadFlag_0_31
2746 * @param ExtiLine This parameter can be a combination of the following values:
2747 * @arg @ref LL_EXTI_LINE_0
2748 * @arg @ref LL_EXTI_LINE_1
2749 * @arg @ref LL_EXTI_LINE_2
2750 * @arg @ref LL_EXTI_LINE_3
2751 * @arg @ref LL_EXTI_LINE_4
2752 * @arg @ref LL_EXTI_LINE_5
2753 * @arg @ref LL_EXTI_LINE_6
2754 * @arg @ref LL_EXTI_LINE_7
2755 * @arg @ref LL_EXTI_LINE_8
2756 * @arg @ref LL_EXTI_LINE_9
2757 * @arg @ref LL_EXTI_LINE_10
2758 * @arg @ref LL_EXTI_LINE_11
2759 * @arg @ref LL_EXTI_LINE_12
2760 * @arg @ref LL_EXTI_LINE_13
2761 * @arg @ref LL_EXTI_LINE_14
2762 * @arg @ref LL_EXTI_LINE_15
2763 * @arg @ref LL_EXTI_LINE_16
2764 * @arg @ref LL_EXTI_LINE_17
2765 * @arg @ref LL_EXTI_LINE_18
2766 * @arg @ref LL_EXTI_LINE_19
2767 * @arg @ref LL_EXTI_LINE_20
2768 * @arg @ref LL_EXTI_LINE_21
2769 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2770 */
LL_C2_EXTI_ReadFlag_0_31(uint32_t ExtiLine)2771 __STATIC_INLINE uint32_t LL_C2_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
2772 {
2773 return (uint32_t)(READ_BIT(EXTI->C2PR1, ExtiLine));
2774 }
2775
2776 /**
2777 * @brief Read ExtLine Combination Flag for Lines in range 32 to 63 for cpu2
2778 * @note This bit is set when the selected edge event arrives on the interrupt
2779 * line. This bit is cleared by writing a 1 to the bit.
2780 * @rmtoll C2PR2 PIFx LL_C2_EXTI_ReadFlag_32_63
2781 * @param ExtiLine This parameter can be a combination of the following values:
2782 * @arg @ref LL_EXTI_LINE_49
2783 * @arg @ref LL_EXTI_LINE_51
2784 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2785 */
LL_C2_EXTI_ReadFlag_32_63(uint32_t ExtiLine)2786 __STATIC_INLINE uint32_t LL_C2_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
2787 {
2788 return (uint32_t)(READ_BIT(EXTI->C2PR2, ExtiLine));
2789 }
2790
2791
2792 /**
2793 * @brief Read ExtLine Combination Flag for Lines in range 64 to 95 for cpu2
2794 * @note This bit is set when the selected edge event arrives on the interrupt
2795 * line. This bit is cleared by writing a 1 to the bit.
2796 * @rmtoll C2PR3 PIFx LL_C2_EXTI_ReadFlag_64_95
2797 * @param ExtiLine This parameter can be a combination of the following values:
2798 * @arg @ref LL_EXTI_LINE_82
2799 * @arg @ref LL_EXTI_LINE_84
2800 * @arg @ref LL_EXTI_LINE_85
2801 * @arg @ref LL_EXTI_LINE_86
2802 * @retval @note This bit is set when the selected edge event arrives on the interrupt
2803 */
LL_C2_EXTI_ReadFlag_64_95(uint32_t ExtiLine)2804 __STATIC_INLINE uint32_t LL_C2_EXTI_ReadFlag_64_95(uint32_t ExtiLine)
2805 {
2806 return (uint32_t)(READ_BIT(EXTI->C2PR3, ExtiLine));
2807 }
2808 /**
2809 * @brief Clear ExtLine Flags for Lines in range 0 to 31 for cpu2
2810 * @note This bit is set when the selected edge event arrives on the interrupt
2811 * line. This bit is cleared by writing a 1 to the bit.
2812 * @rmtoll C2PR1 PIFx LL_C2_EXTI_ClearFlag_0_31
2813 * @param ExtiLine This parameter can be a combination of the following values:
2814 * @arg @ref LL_EXTI_LINE_0
2815 * @arg @ref LL_EXTI_LINE_1
2816 * @arg @ref LL_EXTI_LINE_2
2817 * @arg @ref LL_EXTI_LINE_3
2818 * @arg @ref LL_EXTI_LINE_4
2819 * @arg @ref LL_EXTI_LINE_5
2820 * @arg @ref LL_EXTI_LINE_6
2821 * @arg @ref LL_EXTI_LINE_7
2822 * @arg @ref LL_EXTI_LINE_8
2823 * @arg @ref LL_EXTI_LINE_9
2824 * @arg @ref LL_EXTI_LINE_10
2825 * @arg @ref LL_EXTI_LINE_11
2826 * @arg @ref LL_EXTI_LINE_12
2827 * @arg @ref LL_EXTI_LINE_13
2828 * @arg @ref LL_EXTI_LINE_14
2829 * @arg @ref LL_EXTI_LINE_15
2830 * @arg @ref LL_EXTI_LINE_16
2831 * @arg @ref LL_EXTI_LINE_17
2832 * @arg @ref LL_EXTI_LINE_18
2833 * @arg @ref LL_EXTI_LINE_19
2834 * @arg @ref LL_EXTI_LINE_20
2835 * @arg @ref LL_EXTI_LINE_21
2836 * @retval None
2837 */
LL_C2_EXTI_ClearFlag_0_31(uint32_t ExtiLine)2838 __STATIC_INLINE void LL_C2_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
2839 {
2840 WRITE_REG(EXTI->C2PR1, ExtiLine);
2841 }
2842
2843 /**
2844 * @brief Clear ExtLine Flags for Lines in range 32 to 63 for cpu2
2845 * @note This bit is set when the selected edge event arrives on the interrupt
2846 * line. This bit is cleared by writing a 1 to the bit.
2847 * @rmtoll C2PR2 PIFx LL_C2_EXTI_ClearFlag_32_63
2848 * @param ExtiLine This parameter can be a combination of the following values:
2849 * @arg @ref LL_EXTI_LINE_49
2850 * @arg @ref LL_EXTI_LINE_51
2851 * @retval None
2852 */
LL_C2_EXTI_ClearFlag_32_63(uint32_t ExtiLine)2853 __STATIC_INLINE void LL_C2_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
2854 {
2855 WRITE_REG(EXTI->C2PR2, ExtiLine);
2856 }
2857
2858 /**
2859 * @brief Clear ExtLine Flags for Lines in range 64 to 95 for cpu2
2860 * @note This bit is set when the selected edge event arrives on the interrupt
2861 * line. This bit is cleared by writing a 1 to the bit.
2862 * @rmtoll C2PR3 PIFx LL_C2_EXTI_ClearFlag_64_95
2863 * @param ExtiLine This parameter can be a combination of the following values:
2864 * @arg @ref LL_EXTI_LINE_82
2865 * @arg @ref LL_EXTI_LINE_84
2866 * @arg @ref LL_EXTI_LINE_85
2867 * @arg @ref LL_EXTI_LINE_86
2868 * @retval None
2869 */
LL_C2_EXTI_ClearFlag_64_95(uint32_t ExtiLine)2870 __STATIC_INLINE void LL_C2_EXTI_ClearFlag_64_95(uint32_t ExtiLine)
2871 {
2872 WRITE_REG(EXTI->C2PR3, ExtiLine);
2873 }
2874
2875 #endif /* DUAL_CORE */
2876
2877 /**
2878 * @brief Enable ExtiLine D3 Pending Mask for Lines in range 0 to 31
2879 * @rmtoll D3PMR1 MRx LL_D3_EXTI_EnablePendMask_0_31
2880 * @param ExtiLine This parameter can be one of the following values:
2881 * @arg @ref LL_EXTI_LINE_0
2882 * @arg @ref LL_EXTI_LINE_1
2883 * @arg @ref LL_EXTI_LINE_2
2884 * @arg @ref LL_EXTI_LINE_3
2885 * @arg @ref LL_EXTI_LINE_4
2886 * @arg @ref LL_EXTI_LINE_5
2887 * @arg @ref LL_EXTI_LINE_6
2888 * @arg @ref LL_EXTI_LINE_7
2889 * @arg @ref LL_EXTI_LINE_8
2890 * @arg @ref LL_EXTI_LINE_9
2891 * @arg @ref LL_EXTI_LINE_10
2892 * @arg @ref LL_EXTI_LINE_11
2893 * @arg @ref LL_EXTI_LINE_12
2894 * @arg @ref LL_EXTI_LINE_13
2895 * @arg @ref LL_EXTI_LINE_14
2896 * @arg @ref LL_EXTI_LINE_15
2897 * @arg @ref LL_EXTI_LINE_19
2898 * @arg @ref LL_EXTI_LINE_20
2899 * @arg @ref LL_EXTI_LINE_21
2900 * @arg @ref LL_EXTI_LINE_25
2901 * @retval None
2902 */
LL_D3_EXTI_EnablePendMask_0_31(uint32_t ExtiLine)2903 __STATIC_INLINE void LL_D3_EXTI_EnablePendMask_0_31(uint32_t ExtiLine)
2904 {
2905 SET_BIT(EXTI->D3PMR1, ExtiLine);
2906 }
2907
2908 /**
2909 * @brief Enable ExtiLine D3 Pending Mask for Lines in range 32 to 63
2910 * @rmtoll D3PMR2 MRx LL_D3_EXTI_EnablePendMask_32_63
2911 * @param ExtiLine This parameter can be one of the following values:
2912 * @arg @ref LL_EXTI_LINE_34
2913 * @arg @ref LL_EXTI_LINE_35
2914 * @arg @ref LL_EXTI_LINE_41
2915 * @arg @ref LL_EXTI_LINE_48
2916 * @arg @ref LL_EXTI_LINE_49
2917 * @arg @ref LL_EXTI_LINE_50
2918 * @arg @ref LL_EXTI_LINE_51
2919 * @arg @ref LL_EXTI_LINE_52
2920 * @arg @ref LL_EXTI_LINE_53
2921 * @retval None
2922 */
LL_D3_EXTI_EnablePendMask_32_63(uint32_t ExtiLine)2923 __STATIC_INLINE void LL_D3_EXTI_EnablePendMask_32_63(uint32_t ExtiLine)
2924 {
2925 SET_BIT(EXTI->D3PMR2, ExtiLine);
2926 }
2927
2928 /**
2929 * @brief Disable ExtiLine D3 Pending Mask for Lines in range 0 to 31
2930 * @rmtoll D3PMR1 MRx LL_D3_EXTI_DisablePendMask_0_31
2931 * @param ExtiLine This parameter can be one of the following values:
2932 * @arg @ref LL_EXTI_LINE_0
2933 * @arg @ref LL_EXTI_LINE_1
2934 * @arg @ref LL_EXTI_LINE_2
2935 * @arg @ref LL_EXTI_LINE_3
2936 * @arg @ref LL_EXTI_LINE_4
2937 * @arg @ref LL_EXTI_LINE_5
2938 * @arg @ref LL_EXTI_LINE_6
2939 * @arg @ref LL_EXTI_LINE_7
2940 * @arg @ref LL_EXTI_LINE_8
2941 * @arg @ref LL_EXTI_LINE_9
2942 * @arg @ref LL_EXTI_LINE_10
2943 * @arg @ref LL_EXTI_LINE_11
2944 * @arg @ref LL_EXTI_LINE_12
2945 * @arg @ref LL_EXTI_LINE_13
2946 * @arg @ref LL_EXTI_LINE_14
2947 * @arg @ref LL_EXTI_LINE_15
2948 * @arg @ref LL_EXTI_LINE_19
2949 * @arg @ref LL_EXTI_LINE_20
2950 * @arg @ref LL_EXTI_LINE_21
2951 * @arg @ref LL_EXTI_LINE_25
2952 * @retval None
2953 */
LL_D3_EXTI_DisablePendMask_0_31(uint32_t ExtiLine)2954 __STATIC_INLINE void LL_D3_EXTI_DisablePendMask_0_31(uint32_t ExtiLine)
2955 {
2956 CLEAR_BIT(EXTI->D3PMR1, ExtiLine);
2957 }
2958
2959 /**
2960 * @brief Disable ExtiLine D3 Pending Mask for Lines in range 32 to 63
2961 * @rmtoll D3PMR2 MRx LL_D3_EXTI_DisablePendMask_32_63
2962 * @param ExtiLine This parameter can be one of the following values:
2963 * @arg @ref LL_EXTI_LINE_34
2964 * @arg @ref LL_EXTI_LINE_35
2965 * @arg @ref LL_EXTI_LINE_41
2966 * @arg @ref LL_EXTI_LINE_48
2967 * @arg @ref LL_EXTI_LINE_49
2968 * @arg @ref LL_EXTI_LINE_50
2969 * @arg @ref LL_EXTI_LINE_51
2970 * @arg @ref LL_EXTI_LINE_52
2971 * @arg @ref LL_EXTI_LINE_53
2972 * @retval None
2973 */
LL_D3_EXTI_DisablePendMask_32_63(uint32_t ExtiLine)2974 __STATIC_INLINE void LL_D3_EXTI_DisablePendMask_32_63(uint32_t ExtiLine)
2975 {
2976 CLEAR_BIT(EXTI->D3PMR2, ExtiLine);
2977 }
2978
2979 /**
2980 * @brief Indicate if ExtiLine D3 Pending Mask is enabled for Lines in range 0 to 31
2981 * @rmtoll D3PMR1 MRx LL_D3_EXTI_IsEnabledPendMask_0_31
2982 * @param ExtiLine This parameter can be one of the following values:
2983 * @arg @ref LL_EXTI_LINE_0
2984 * @arg @ref LL_EXTI_LINE_1
2985 * @arg @ref LL_EXTI_LINE_2
2986 * @arg @ref LL_EXTI_LINE_3
2987 * @arg @ref LL_EXTI_LINE_4
2988 * @arg @ref LL_EXTI_LINE_5
2989 * @arg @ref LL_EXTI_LINE_6
2990 * @arg @ref LL_EXTI_LINE_7
2991 * @arg @ref LL_EXTI_LINE_8
2992 * @arg @ref LL_EXTI_LINE_9
2993 * @arg @ref LL_EXTI_LINE_10
2994 * @arg @ref LL_EXTI_LINE_11
2995 * @arg @ref LL_EXTI_LINE_12
2996 * @arg @ref LL_EXTI_LINE_13
2997 * @arg @ref LL_EXTI_LINE_14
2998 * @arg @ref LL_EXTI_LINE_15
2999 * @arg @ref LL_EXTI_LINE_19
3000 * @arg @ref LL_EXTI_LINE_20
3001 * @arg @ref LL_EXTI_LINE_21
3002 * @arg @ref LL_EXTI_LINE_25
3003 * @retval State of bit (1 or 0).
3004 */
LL_D3_EXTI_IsEnabledPendMask_0_31(uint32_t ExtiLine)3005 __STATIC_INLINE uint32_t LL_D3_EXTI_IsEnabledPendMask_0_31(uint32_t ExtiLine)
3006 {
3007 return ((READ_BIT(EXTI->D3PMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
3008 }
3009
3010 /**
3011 * @brief Indicate if ExtiLine D3 Pending Mask is enabled for Lines in range 32 to 63
3012 * @rmtoll D3PMR2 MRx LL_D3_EXTI_IsEnabledPendMask_32_63
3013 * @param ExtiLine This parameter can be one of the following values:
3014 * @arg @ref LL_EXTI_LINE_34
3015 * @arg @ref LL_EXTI_LINE_35
3016 * @arg @ref LL_EXTI_LINE_41
3017 * @arg @ref LL_EXTI_LINE_48
3018 * @arg @ref LL_EXTI_LINE_49
3019 * @arg @ref LL_EXTI_LINE_50
3020 * @arg @ref LL_EXTI_LINE_51
3021 * @arg @ref LL_EXTI_LINE_52
3022 * @arg @ref LL_EXTI_LINE_53
3023 * @retval State of bit (1 or 0).
3024 */
LL_D3_EXTI_IsEnabledPendMask_32_63(uint32_t ExtiLine)3025 __STATIC_INLINE uint32_t LL_D3_EXTI_IsEnabledPendMask_32_63(uint32_t ExtiLine)
3026 {
3027 return ((READ_BIT(EXTI->D3PMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
3028 }
3029
3030 /**
3031 * @brief Set ExtLine D3 Domain Pend Clear Source selection for Lines in range 0 to 15
3032 * @rmtoll D3PCR1L PCSx LL_D3_EXTI_SetPendClearSel_0_15
3033 * @param ExtiLine This parameter can be one of the following values:
3034 * @arg @ref LL_EXTI_LINE_0
3035 * @arg @ref LL_EXTI_LINE_1
3036 * @arg @ref LL_EXTI_LINE_2
3037 * @arg @ref LL_EXTI_LINE_3
3038 * @arg @ref LL_EXTI_LINE_4
3039 * @arg @ref LL_EXTI_LINE_5
3040 * @arg @ref LL_EXTI_LINE_6
3041 * @arg @ref LL_EXTI_LINE_7
3042 * @arg @ref LL_EXTI_LINE_8
3043 * @arg @ref LL_EXTI_LINE_9
3044 * @arg @ref LL_EXTI_LINE_10
3045 * @arg @ref LL_EXTI_LINE_11
3046 * @arg @ref LL_EXTI_LINE_12
3047 * @arg @ref LL_EXTI_LINE_13
3048 * @arg @ref LL_EXTI_LINE_14
3049 * @arg @ref LL_EXTI_LINE_15
3050 * @param ClrSrc This parameter can be one of the following values:
3051 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3052 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3053 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3054 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3055 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3056 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3057 *
3058 * (*) value not defined in all devices.
3059 * @retval None
3060 */
LL_D3_EXTI_SetPendClearSel_0_15(uint32_t ExtiLine,uint32_t ClrSrc)3061 __STATIC_INLINE void LL_D3_EXTI_SetPendClearSel_0_15(uint32_t ExtiLine, uint32_t ClrSrc)
3062 {
3063 MODIFY_REG(EXTI->D3PCR1L, ((ExtiLine * ExtiLine) * 3UL), ((ExtiLine * ExtiLine) * ClrSrc));
3064 }
3065
3066 /**
3067 * @brief Set ExtLine D3 Domain Pend Clear Source selection for Lines in range 16 to 31
3068 * @rmtoll D3PCR1H PCSx LL_D3_EXTI_SetPendClearSel_16_31
3069 * @param ExtiLine This parameter can be one of the following values:
3070 * @arg @ref LL_EXTI_LINE_19
3071 * @arg @ref LL_EXTI_LINE_20
3072 * @arg @ref LL_EXTI_LINE_21
3073 * @arg @ref LL_EXTI_LINE_25
3074 * @param ClrSrc This parameter can be one of the following values:
3075 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3076 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3077 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3078 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3079 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3080 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3081 *
3082 * (*) value not defined in all devices.
3083 * @retval None
3084 */
LL_D3_EXTI_SetPendClearSel_16_31(uint32_t ExtiLine,uint32_t ClrSrc)3085 __STATIC_INLINE void LL_D3_EXTI_SetPendClearSel_16_31(uint32_t ExtiLine, uint32_t ClrSrc)
3086 {
3087 MODIFY_REG(EXTI->D3PCR1H, (((ExtiLine >> EXTI_IMR1_IM16_Pos) * (ExtiLine >> EXTI_IMR1_IM16_Pos)) * 3UL), (((ExtiLine >> EXTI_IMR1_IM16_Pos) * (ExtiLine >> EXTI_IMR1_IM16_Pos)) * ClrSrc));
3088 }
3089
3090
3091 /**
3092 * @brief Set ExtLine D3 Domain Pend Clear Source selection for Lines in range 32 to 47
3093 * @rmtoll D3PCR2L PCSx LL_D3_EXTI_SetPendClearSel_32_47
3094 * @param ExtiLine This parameter can be one of the following values:
3095 * @arg @ref LL_EXTI_LINE_34
3096 * @arg @ref LL_EXTI_LINE_35
3097 * @arg @ref LL_EXTI_LINE_41
3098 * @param ClrSrc This parameter can be one of the following values:
3099 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3100 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3101 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3102 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3103 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3104 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3105 *
3106 * (*) value not defined in all devices.
3107 * @retval None
3108 */
LL_D3_EXTI_SetPendClearSel_32_47(uint32_t ExtiLine,uint32_t ClrSrc)3109 __STATIC_INLINE void LL_D3_EXTI_SetPendClearSel_32_47(uint32_t ExtiLine, uint32_t ClrSrc)
3110 {
3111 MODIFY_REG(EXTI->D3PCR2L, ((ExtiLine * ExtiLine) * 3UL), ((ExtiLine * ExtiLine) * ClrSrc));
3112 }
3113
3114 /**
3115 * @brief Set ExtLine D3 Domain Pend Clear Source selection for Lines in range 48 to 63
3116 * @rmtoll D3PCR2H PCSx LL_D3_EXTI_SetPendClearSel_48_63
3117 * @param ExtiLine This parameter can be one of the following values:
3118 * @arg @ref LL_EXTI_LINE_48
3119 * @arg @ref LL_EXTI_LINE_49
3120 * @arg @ref LL_EXTI_LINE_50
3121 * @arg @ref LL_EXTI_LINE_51
3122 * @arg @ref LL_EXTI_LINE_52
3123 * @arg @ref LL_EXTI_LINE_53
3124 * @param ClrSrc This parameter can be one of the following values:
3125 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3126 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3127 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3128 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3129 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3130 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3131 *
3132 * (*) value not defined in all devices.
3133 * @retval None
3134 */
LL_D3_EXTI_SetPendClearSel_48_63(uint32_t ExtiLine,uint32_t ClrSrc)3135 __STATIC_INLINE void LL_D3_EXTI_SetPendClearSel_48_63(uint32_t ExtiLine, uint32_t ClrSrc)
3136 {
3137 MODIFY_REG(EXTI->D3PCR2H, (((ExtiLine >> EXTI_IMR2_IM48_Pos) * (ExtiLine >> EXTI_IMR2_IM48_Pos)) * 3UL), (((ExtiLine >> EXTI_IMR2_IM48_Pos) * (ExtiLine >> EXTI_IMR2_IM48_Pos)) * ClrSrc));
3138 }
3139
3140 /**
3141 * @brief Get ExtLine D3 Domain Pend Clear Source selection for Lines in range 0 to 15
3142 * @rmtoll D3PCR1L PCSx LL_D3_EXTI_GetPendClearSel_0_15
3143 * @param ExtiLine This parameter can be one of the following values:
3144 * @arg @ref LL_EXTI_LINE_0
3145 * @arg @ref LL_EXTI_LINE_1
3146 * @arg @ref LL_EXTI_LINE_2
3147 * @arg @ref LL_EXTI_LINE_3
3148 * @arg @ref LL_EXTI_LINE_4
3149 * @arg @ref LL_EXTI_LINE_5
3150 * @arg @ref LL_EXTI_LINE_6
3151 * @arg @ref LL_EXTI_LINE_7
3152 * @arg @ref LL_EXTI_LINE_8
3153 * @arg @ref LL_EXTI_LINE_9
3154 * @arg @ref LL_EXTI_LINE_10
3155 * @arg @ref LL_EXTI_LINE_11
3156 * @arg @ref LL_EXTI_LINE_12
3157 * @arg @ref LL_EXTI_LINE_13
3158 * @arg @ref LL_EXTI_LINE_14
3159 * @arg @ref LL_EXTI_LINE_15
3160 * @retval Returned value can be one of the following values:
3161 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3162 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3163 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3164 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3165 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3166 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3167 *
3168 * (*) value not defined in all devices.
3169 */
LL_D3_EXTI_GetPendClearSel_0_15(uint32_t ExtiLine)3170 __STATIC_INLINE uint32_t LL_D3_EXTI_GetPendClearSel_0_15(uint32_t ExtiLine)
3171 {
3172 return (uint32_t)(READ_BIT(EXTI->D3PCR1L, ((ExtiLine * ExtiLine) * 3UL)) / (ExtiLine * ExtiLine));
3173 }
3174
3175 /**
3176 * @brief Get ExtLine D3 Domain Pend Clear Source selection for Lines in range 16 to 31
3177 * @rmtoll D3PCR1H PCSx LL_D3_EXTI_GetPendClearSel_16_31
3178 * @param ExtiLine This parameter can be one of the following values:
3179 * @arg @ref LL_EXTI_LINE_19
3180 * @arg @ref LL_EXTI_LINE_20
3181 * @arg @ref LL_EXTI_LINE_21
3182 * @arg @ref LL_EXTI_LINE_25
3183 * @retval Returned value can be one of the following values:
3184 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3185 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3186 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3187 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3188 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3189 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3190 *
3191 * (*) value not defined in all devices.
3192 */
LL_D3_EXTI_GetPendClearSel_16_31(uint32_t ExtiLine)3193 __STATIC_INLINE uint32_t LL_D3_EXTI_GetPendClearSel_16_31(uint32_t ExtiLine)
3194 {
3195 return (uint32_t)(READ_BIT(EXTI->D3PCR1H, (((ExtiLine >> EXTI_IMR1_IM16_Pos) * (ExtiLine >> EXTI_IMR1_IM16_Pos)) * 3UL)) / ((ExtiLine >> EXTI_IMR1_IM16_Pos) * (ExtiLine >> EXTI_IMR1_IM16_Pos)));
3196 }
3197
3198 /**
3199 * @brief Get ExtLine D3 Domain Pend Clear Source selection for Lines in range 32 to 47
3200 * @rmtoll D3PCR2L PCSx LL_D3_EXTI_GetPendClearSel_32_47
3201 * @param ExtiLine This parameter can be one of the following values:
3202 * @arg @ref LL_EXTI_LINE_34
3203 * @arg @ref LL_EXTI_LINE_35
3204 * @arg @ref LL_EXTI_LINE_41
3205 * @retval Returned value can be one of the following values:
3206 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3207 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3208 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3209 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3210 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3211 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3212 *
3213 * (*) value not defined in all devices.
3214 */
LL_D3_EXTI_GetPendClearSel_32_47(uint32_t ExtiLine)3215 __STATIC_INLINE uint32_t LL_D3_EXTI_GetPendClearSel_32_47(uint32_t ExtiLine)
3216 {
3217 return (uint32_t)(READ_BIT(EXTI->D3PCR2L, ((ExtiLine * ExtiLine) * 3UL)) / (ExtiLine * ExtiLine));
3218 }
3219
3220 /**
3221 * @brief Get ExtLine D3 Domain Pend Clear Source selection for Lines in range 48 to 63
3222 * @rmtoll D3PCR2H PCSx LL_D3_EXTI_GetPendClearSel_48_63
3223 * @param ExtiLine This parameter can be one of the following values:
3224 * @arg @ref LL_EXTI_LINE_48
3225 * @arg @ref LL_EXTI_LINE_49
3226 * @arg @ref LL_EXTI_LINE_50
3227 * @arg @ref LL_EXTI_LINE_51
3228 * @arg @ref LL_EXTI_LINE_52
3229 * @arg @ref LL_EXTI_LINE_53
3230 * @retval Returned value can be one of the following values:
3231 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH6
3232 * @arg @ref LL_EXTI_D3_PEND_CLR_DMACH7
3233 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM4 (*)
3234 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM5 (*)
3235 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM2 (*)
3236 * @arg @ref LL_EXTI_D3_PEND_CLR_LPTIM3 (*)
3237 *
3238 * (*) value not defined in all devices.
3239 */
LL_D3_EXTI_GetPendClearSel_48_63(uint32_t ExtiLine)3240 __STATIC_INLINE uint32_t LL_D3_EXTI_GetPendClearSel_48_63(uint32_t ExtiLine)
3241 {
3242 return (uint32_t)(READ_BIT(EXTI->D3PCR2H, (((ExtiLine >> EXTI_IMR2_IM48_Pos) * (ExtiLine >> EXTI_IMR2_IM48_Pos)) * 3UL)) / ((ExtiLine >> EXTI_IMR2_IM48_Pos) * (ExtiLine >> EXTI_IMR2_IM48_Pos)));
3243 }
3244
3245
3246
3247 /**
3248 * @}
3249 */
3250
3251 #if defined(USE_FULL_LL_DRIVER)
3252 /** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
3253 * @{,
3254 */
3255
3256 ErrorStatus LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
3257 ErrorStatus LL_EXTI_DeInit(void);
3258 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
3259
3260
3261 /**
3262 * @}
3263 */
3264 #endif /* USE_FULL_LL_DRIVER */
3265
3266 /**
3267 * @}
3268 */
3269
3270 /**
3271 * @}
3272 */
3273
3274 #endif /* EXTI */
3275
3276 /**
3277 * @}
3278 */
3279
3280 #ifdef __cplusplus
3281 }
3282 #endif
3283
3284 #endif /* __STM32H7xx_LL_EXTI_H */
3285
3286