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