source: trunk/firmware/Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_ll_exti.h

Last change on this file was 6, checked in by f.jahn, 8 months ago
File size: 63.8 KB
Line 
1/**
2 ******************************************************************************
3 * @file stm32g0xx_ll_exti.h
4 * @author MCD Application Team
5 * @brief Header file of EXTI LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2018 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 STM32G0xx_LL_EXTI_H
21#define STM32G0xx_LL_EXTI_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32g0xx.h"
29
30/** @addtogroup STM32G0xx_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#define LL_EXTI_REGISTER_PINPOS_SHFT 16u /*!< Define used to shift pin position in EXTICR register */
44
45/* Private Macros ------------------------------------------------------------*/
46#if defined(USE_FULL_LL_DRIVER)
47/** @defgroup EXTI_LL_Private_Macros EXTI Private Macros
48 * @{
49 */
50/**
51 * @}
52 */
53#endif /*USE_FULL_LL_DRIVER*/
54/* Exported types ------------------------------------------------------------*/
55#if defined(USE_FULL_LL_DRIVER)
56/** @defgroup EXTI_LL_ES_INIT EXTI Exported Init structure
57 * @{
58 */
59typedef struct
60{
61
62 uint32_t Line_0_31; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 0 to 31
63 This parameter can be any combination of @ref EXTI_LL_EC_LINE */
64#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
65 uint32_t Line_32_63; /*!< Specifies the EXTI lines to be enabled or disabled for Lines in range 32 to 63
66 This parameter can be any combination of @ref EXTI_LL_EC_LINE */
67#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
68 FunctionalState LineCommand; /*!< Specifies the new state of the selected EXTI lines.
69 This parameter can be set either to ENABLE or DISABLE */
70
71 uint8_t Mode; /*!< Specifies the mode for the EXTI lines.
72 This parameter can be a value of @ref EXTI_LL_EC_MODE. */
73
74 uint8_t Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines.
75 This parameter can be a value of @ref EXTI_LL_EC_TRIGGER. */
76} LL_EXTI_InitTypeDef;
77
78/**
79 * @}
80 */
81#endif /*USE_FULL_LL_DRIVER*/
82
83/* Exported constants --------------------------------------------------------*/
84/** @defgroup EXTI_LL_Exported_Constants EXTI Exported Constants
85 * @{
86 */
87
88/** @defgroup EXTI_LL_EC_LINE LINE
89 * @{
90 */
91#define LL_EXTI_LINE_0 EXTI_IMR1_IM0 /*!< Extended line 0 */
92#define LL_EXTI_LINE_1 EXTI_IMR1_IM1 /*!< Extended line 1 */
93#define LL_EXTI_LINE_2 EXTI_IMR1_IM2 /*!< Extended line 2 */
94#define LL_EXTI_LINE_3 EXTI_IMR1_IM3 /*!< Extended line 3 */
95#define LL_EXTI_LINE_4 EXTI_IMR1_IM4 /*!< Extended line 4 */
96#define LL_EXTI_LINE_5 EXTI_IMR1_IM5 /*!< Extended line 5 */
97#define LL_EXTI_LINE_6 EXTI_IMR1_IM6 /*!< Extended line 6 */
98#define LL_EXTI_LINE_7 EXTI_IMR1_IM7 /*!< Extended line 7 */
99#define LL_EXTI_LINE_8 EXTI_IMR1_IM8 /*!< Extended line 8 */
100#define LL_EXTI_LINE_9 EXTI_IMR1_IM9 /*!< Extended line 9 */
101#define LL_EXTI_LINE_10 EXTI_IMR1_IM10 /*!< Extended line 10 */
102#define LL_EXTI_LINE_11 EXTI_IMR1_IM11 /*!< Extended line 11 */
103#define LL_EXTI_LINE_12 EXTI_IMR1_IM12 /*!< Extended line 12 */
104#define LL_EXTI_LINE_13 EXTI_IMR1_IM13 /*!< Extended line 13 */
105#define LL_EXTI_LINE_14 EXTI_IMR1_IM14 /*!< Extended line 14 */
106#define LL_EXTI_LINE_15 EXTI_IMR1_IM15 /*!< Extended line 15 */
107#if defined(EXTI_IMR1_IM16)
108#define LL_EXTI_LINE_16 EXTI_IMR1_IM16 /*!< Extended line 16 */
109#endif /* EXTI_IMR1_IM16 */
110#if defined(EXTI_IMR1_IM17)
111#define LL_EXTI_LINE_17 EXTI_IMR1_IM17 /*!< Extended line 17 */
112#endif /* EXTI_IMR1_IM17 */
113#if defined(EXTI_IMR1_IM18)
114#define LL_EXTI_LINE_18 EXTI_IMR1_IM18 /*!< Extended line 18 */
115#endif /* EXTI_IMR1_IM18 */
116#define LL_EXTI_LINE_19 EXTI_IMR1_IM19 /*!< Extended line 19 */
117#if defined(EXTI_IMR1_IM20)
118#define LL_EXTI_LINE_20 EXTI_IMR1_IM20 /*!< Extended line 20 */
119#endif /* EXTI_IMR1_IM20 */
120#if defined(EXTI_IMR1_IM21)
121#define LL_EXTI_LINE_21 EXTI_IMR1_IM21 /*!< Extended line 21 */
122#endif /* EXTI_IMR1_IM21 */
123#if defined(EXTI_IMR1_IM22)
124#define LL_EXTI_LINE_22 EXTI_IMR1_IM22 /*!< Extended line 22 */
125#endif /* EXTI_IMR1_IM22 */
126#define LL_EXTI_LINE_23 EXTI_IMR1_IM23 /*!< Extended line 23 */
127#if defined(EXTI_IMR1_IM24)
128#define LL_EXTI_LINE_24 EXTI_IMR1_IM24 /*!< Extended line 24 */
129#endif /* EXTI_IMR1_IM24 */
130#if defined(EXTI_IMR1_IM25)
131#define LL_EXTI_LINE_25 EXTI_IMR1_IM25 /*!< Extended line 25 */
132#endif /* EXTI_IMR1_IM25 */
133#if defined(EXTI_IMR1_IM26)
134#define LL_EXTI_LINE_26 EXTI_IMR1_IM26 /*!< Extended line 26 */
135#endif /* EXTI_IMR1_IM26 */
136#if defined(EXTI_IMR1_IM27)
137#define LL_EXTI_LINE_27 EXTI_IMR1_IM27 /*!< Extended line 27 */
138#endif /* EXTI_IMR1_IM27 */
139#if defined(EXTI_IMR1_IM28)
140#define LL_EXTI_LINE_28 EXTI_IMR1_IM28 /*!< Extended line 28 */
141#endif /* EXTI_IMR1_IM28 */
142#if defined(EXTI_IMR1_IM29)
143#define LL_EXTI_LINE_29 EXTI_IMR1_IM29 /*!< Extended line 29 */
144#endif /* EXTI_IMR1_IM29 */
145#if defined(EXTI_IMR1_IM30)
146#define LL_EXTI_LINE_30 EXTI_IMR1_IM30 /*!< Extended line 30 */
147#endif /* EXTI_IMR1_IM30 */
148#if defined(EXTI_IMR1_IM31)
149#define LL_EXTI_LINE_31 EXTI_IMR1_IM31 /*!< Extended line 31 */
150#endif /* EXTI_IMR1_IM31 */
151#define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM /*!< All Extended line not reserved*/
152
153#if defined(EXTI_IMR2_IM32)
154#define LL_EXTI_LINE_32 EXTI_IMR2_IM32 /*!< Extended line 32 */
155#endif /* EXTI_IMR2_IM32 */
156#if defined(EXTI_IMR2_IM33)
157#define LL_EXTI_LINE_33 EXTI_IMR2_IM33 /*!< Extended line 33 */
158#endif /* EXTI_IMR2_IM33 */
159#if defined(EXTI_IMR2_IM34)
160#define LL_EXTI_LINE_34 EXTI_IMR2_IM34 /*!< Extended line 34 */
161#endif /* EXTI_IMR2_IM34 */
162#if defined(EXTI_IMR2_IM35)
163#define LL_EXTI_LINE_35 EXTI_IMR2_IM35 /*!< Extended line 35 */
164#endif /* EXTI_IMR2_IM35 */
165#if defined(EXTI_IMR2_IM36)
166#define LL_EXTI_LINE_36 EXTI_IMR2_IM36 /*!< Extended line 36 */
167#endif /* EXTI_IMR2_IM36 */
168#if defined(EXTI_IMR2_IM32) || defined(EXTI_IMR2_IM33) || defined(EXTI_IMR2_IM34) || defined(EXTI_IMR2_IM35) || defined(EXTI_IMR2_IM36)
169#define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM /*!< All Extended line not reserved*/
170#endif /* EXTI_IMR2_IM32 || EXTI_IMR2_IM33 || EXTI_IMR2_IM34 || EXTI_IMR2_IM35 || EXTI_IMR2_IM36 */
171
172#define LL_EXTI_LINE_ALL 0xFFFFFFFFU /*!< All Extended line */
173
174#if defined(USE_FULL_LL_DRIVER)
175#define LL_EXTI_LINE_NONE 0x00000000U /*!< None Extended line */
176#endif /*USE_FULL_LL_DRIVER*/
177
178/** @defgroup EXTI_LL_EC_CONFIG_PORT EXTI CONFIG PORT
179 * @{
180 */
181#define LL_EXTI_CONFIG_PORTA 0U /*!< EXTI PORT A */
182#define LL_EXTI_CONFIG_PORTB EXTI_EXTICR1_EXTI0_0 /*!< EXTI PORT B */
183#define LL_EXTI_CONFIG_PORTC EXTI_EXTICR1_EXTI0_1 /*!< EXTI PORT C */
184#if defined(GPIOD_BASE)
185#define LL_EXTI_CONFIG_PORTD (EXTI_EXTICR1_EXTI0_1|EXTI_EXTICR1_EXTI0_0) /*!< EXTI PORT D */
186#endif /*GPIOD_BASE*/
187#if defined(GPIOE_BASE)
188#define LL_EXTI_CONFIG_PORTE EXTI_EXTICR1_EXTI0_2 /*!< EXTI PORT E */
189#endif /*GPIOE_BASE*/
190#define LL_EXTI_CONFIG_PORTF (EXTI_EXTICR1_EXTI0_2|EXTI_EXTICR1_EXTI0_0) /*!< EXTI PORT F */
191/**
192 * @}
193 */
194
195/** @defgroup EXTI_LL_EC_CONFIG_LINE EXTI CONFIG LINE
196 * @{
197 */
198#define LL_EXTI_CONFIG_LINE0 ((0uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 0U) /*!< EXTI_POSITION_0 | EXTICR[0] */
199#define LL_EXTI_CONFIG_LINE1 ((8uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 0U) /*!< EXTI_POSITION_8 | EXTICR[0] */
200#define LL_EXTI_CONFIG_LINE2 ((16uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 0U) /*!< EXTI_POSITION_16 | EXTICR[0] */
201#define LL_EXTI_CONFIG_LINE3 ((24uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 0U) /*!< EXTI_POSITION_24 | EXTICR[0] */
202#define LL_EXTI_CONFIG_LINE4 ((0uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 1U) /*!< EXTI_POSITION_0 | EXTICR[1] */
203#define LL_EXTI_CONFIG_LINE5 ((8uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 1U) /*!< EXTI_POSITION_8 | EXTICR[1] */
204#define LL_EXTI_CONFIG_LINE6 ((16uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 1U) /*!< EXTI_POSITION_16 | EXTICR[1] */
205#define LL_EXTI_CONFIG_LINE7 ((24uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 1U) /*!< EXTI_POSITION_24 | EXTICR[1] */
206#define LL_EXTI_CONFIG_LINE8 ((0uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 2U) /*!< EXTI_POSITION_0 | EXTICR[2] */
207#define LL_EXTI_CONFIG_LINE9 ((8uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 2U) /*!< EXTI_POSITION_8 | EXTICR[2] */
208#define LL_EXTI_CONFIG_LINE10 ((16uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 2U) /*!< EXTI_POSITION_16 | EXTICR[2] */
209#define LL_EXTI_CONFIG_LINE11 ((24uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 2U) /*!< EXTI_POSITION_24 | EXTICR[2] */
210#define LL_EXTI_CONFIG_LINE12 ((0uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 3U) /*!< EXTI_POSITION_0 | EXTICR[3] */
211#define LL_EXTI_CONFIG_LINE13 ((8uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 3U) /*!< EXTI_POSITION_8 | EXTICR[3] */
212#define LL_EXTI_CONFIG_LINE14 ((16uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 3U) /*!< EXTI_POSITION_16 | EXTICR[3] */
213#define LL_EXTI_CONFIG_LINE15 ((24uL << LL_EXTI_REGISTER_PINPOS_SHFT) | 3U) /*!< EXTI_POSITION_24 | EXTICR[3] */
214/**
215 * @}
216 */
217/**
218 * @}
219 */
220#if defined(USE_FULL_LL_DRIVER)
221
222/** @defgroup EXTI_LL_EC_MODE Mode
223 * @{
224 */
225#define LL_EXTI_MODE_IT ((uint8_t)0x00U) /*!< Interrupt Mode */
226#define LL_EXTI_MODE_EVENT ((uint8_t)0x01U) /*!< Event Mode */
227#define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U) /*!< Interrupt & Event Mode */
228/**
229 * @}
230 */
231
232/** @defgroup EXTI_LL_EC_TRIGGER Edge Trigger
233 * @{
234 */
235#define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U) /*!< No Trigger Mode */
236#define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U) /*!< Trigger Rising Mode */
237#define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U) /*!< Trigger Falling Mode */
238#define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U) /*!< Trigger Rising & Falling Mode */
239
240/**
241 * @}
242 */
243
244
245#endif /*USE_FULL_LL_DRIVER*/
246
247
248/**
249 * @}
250 */
251
252/* Exported macro ------------------------------------------------------------*/
253/** @defgroup EXTI_LL_Exported_Macros EXTI Exported Macros
254 * @{
255 */
256
257/** @defgroup EXTI_LL_EM_WRITE_READ Common Write and read registers Macros
258 * @{
259 */
260
261/**
262 * @brief Write a value in EXTI register
263 * @param __REG__ Register to be written
264 * @param __VALUE__ Value to be written in the register
265 * @retval None
266 */
267#define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
268
269/**
270 * @brief Read a value in EXTI register
271 * @param __REG__ Register to be read
272 * @retval Register value
273 */
274#define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
275/**
276 * @}
277 */
278
279
280/**
281 * @}
282 */
283
284
285
286/* Exported functions --------------------------------------------------------*/
287/** @defgroup EXTI_LL_Exported_Functions EXTI Exported Functions
288 * @{
289 */
290/** @defgroup EXTI_LL_EF_IT_Management IT_Management
291 * @{
292 */
293
294/**
295 * @brief Enable ExtiLine Interrupt request for Lines in range 0 to 31
296 * @note The reset value for the direct or internal lines (see RM)
297 * is set to 1 in order to enable the interrupt by default.
298 * Bits are set automatically at Power on.
299 * @rmtoll IMR1 IMx LL_EXTI_EnableIT_0_31
300 * @param ExtiLine This parameter can be one of the following values:
301 * @arg @ref LL_EXTI_LINE_0
302 * @arg @ref LL_EXTI_LINE_1
303 * @arg @ref LL_EXTI_LINE_2
304 * @arg @ref LL_EXTI_LINE_3
305 * @arg @ref LL_EXTI_LINE_4
306 * @arg @ref LL_EXTI_LINE_5
307 * @arg @ref LL_EXTI_LINE_6
308 * @arg @ref LL_EXTI_LINE_7
309 * @arg @ref LL_EXTI_LINE_8
310 * @arg @ref LL_EXTI_LINE_9
311 * @arg @ref LL_EXTI_LINE_10
312 * @arg @ref LL_EXTI_LINE_11
313 * @arg @ref LL_EXTI_LINE_12
314 * @arg @ref LL_EXTI_LINE_13
315 * @arg @ref LL_EXTI_LINE_14
316 * @arg @ref LL_EXTI_LINE_15
317 * @arg @ref LL_EXTI_LINE_16
318 * @arg @ref LL_EXTI_LINE_17
319 * @arg @ref LL_EXTI_LINE_18
320 * @arg @ref LL_EXTI_LINE_19
321 * @arg @ref LL_EXTI_LINE_21
322 * @arg @ref LL_EXTI_LINE_23
323 * @arg @ref LL_EXTI_LINE_25
324 * @arg @ref LL_EXTI_LINE_26
325 * @arg @ref LL_EXTI_LINE_27
326 * @arg @ref LL_EXTI_LINE_28
327 * @arg @ref LL_EXTI_LINE_29
328 * @arg @ref LL_EXTI_LINE_30
329 * @arg @ref LL_EXTI_LINE_31
330 * @arg @ref LL_EXTI_LINE_ALL_0_31
331 * @note Please check each device line mapping for EXTI Line availability
332 * @retval None
333 */
334__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
335{
336 SET_BIT(EXTI->IMR1, ExtiLine);
337}
338
339#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
340/**
341 * @brief Enable ExtiLine Interrupt request for Lines in range 32 to 63
342 * @note The reset value for the direct lines (lines 32 & 33)
343 * is set to 1 in order to enable the interrupt by default.
344 * Bits are set automatically at Power on.
345 * @rmtoll IMR2 IMx LL_EXTI_EnableIT_32_63
346 * @param ExtiLine This parameter can be one of the following values:
347 * @arg @ref LL_EXTI_LINE_32
348 * @arg @ref LL_EXTI_LINE_33
349 * @arg @ref LL_EXTI_LINE_34
350 * @arg @ref LL_EXTI_LINE_35
351 * @arg @ref LL_EXTI_LINE_36
352 * @arg @ref LL_EXTI_LINE_ALL_32_63
353 * @note Please check each device line mapping for EXTI Line availability
354 * @retval None
355 */
356__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
357{
358 SET_BIT(EXTI->IMR2, ExtiLine);
359}
360#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
361
362/**
363 * @brief Disable ExtiLine Interrupt request for Lines in range 0 to 31
364 * @note The reset value for the direct or internal lines (see RM)
365 * is set to 1 in order to enable the interrupt by default.
366 * Bits are set automatically at Power on.
367 * @rmtoll IMR1 IMx LL_EXTI_DisableIT_0_31
368 * @param ExtiLine This parameter can be one of the following values:
369 * @arg @ref LL_EXTI_LINE_0
370 * @arg @ref LL_EXTI_LINE_1
371 * @arg @ref LL_EXTI_LINE_2
372 * @arg @ref LL_EXTI_LINE_3
373 * @arg @ref LL_EXTI_LINE_4
374 * @arg @ref LL_EXTI_LINE_5
375 * @arg @ref LL_EXTI_LINE_6
376 * @arg @ref LL_EXTI_LINE_7
377 * @arg @ref LL_EXTI_LINE_8
378 * @arg @ref LL_EXTI_LINE_9
379 * @arg @ref LL_EXTI_LINE_10
380 * @arg @ref LL_EXTI_LINE_11
381 * @arg @ref LL_EXTI_LINE_12
382 * @arg @ref LL_EXTI_LINE_13
383 * @arg @ref LL_EXTI_LINE_14
384 * @arg @ref LL_EXTI_LINE_15
385 * @arg @ref LL_EXTI_LINE_16
386 * @arg @ref LL_EXTI_LINE_17
387 * @arg @ref LL_EXTI_LINE_18
388 * @arg @ref LL_EXTI_LINE_19
389 * @arg @ref LL_EXTI_LINE_21
390 * @arg @ref LL_EXTI_LINE_23
391 * @arg @ref LL_EXTI_LINE_25
392 * @arg @ref LL_EXTI_LINE_26
393 * @arg @ref LL_EXTI_LINE_27
394 * @arg @ref LL_EXTI_LINE_28
395 * @arg @ref LL_EXTI_LINE_29
396 * @arg @ref LL_EXTI_LINE_30
397 * @arg @ref LL_EXTI_LINE_31
398 * @arg @ref LL_EXTI_LINE_ALL_0_31
399 * @note Please check each device line mapping for EXTI Line availability
400 * @retval None
401 */
402__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
403{
404 CLEAR_BIT(EXTI->IMR1, ExtiLine);
405}
406
407#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
408/**
409 * @brief Disable ExtiLine Interrupt request for Lines in range 32 to 63
410 * @note The reset value for the direct lines (lines 32 & 33)
411 * is set to 1 in order to enable the interrupt by default.
412 * Bits are set automatically at Power on.
413 * @rmtoll IMR2 IMx LL_EXTI_DisableIT_32_63
414 * @param ExtiLine This parameter can be one of the following values:
415 * @arg @ref LL_EXTI_LINE_32
416 * @arg @ref LL_EXTI_LINE_33
417 * @arg @ref LL_EXTI_LINE_34
418 * @arg @ref LL_EXTI_LINE_35
419 * @arg @ref LL_EXTI_LINE_36
420 * @arg @ref LL_EXTI_LINE_ALL_32_63
421 * @note Please check each device line mapping for EXTI Line availability
422 * @retval None
423 */
424__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
425{
426 CLEAR_BIT(EXTI->IMR2, ExtiLine);
427}
428#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
429
430/**
431 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31
432 * @note The reset value for the direct or internal lines (see RM)
433 * is set to 1 in order to enable the interrupt by default.
434 * Bits are set automatically at Power on.
435 * @rmtoll IMR1 IMx LL_EXTI_IsEnabledIT_0_31
436 * @param ExtiLine This parameter can be one of the following values:
437 * @arg @ref LL_EXTI_LINE_0
438 * @arg @ref LL_EXTI_LINE_1
439 * @arg @ref LL_EXTI_LINE_2
440 * @arg @ref LL_EXTI_LINE_3
441 * @arg @ref LL_EXTI_LINE_4
442 * @arg @ref LL_EXTI_LINE_5
443 * @arg @ref LL_EXTI_LINE_6
444 * @arg @ref LL_EXTI_LINE_7
445 * @arg @ref LL_EXTI_LINE_8
446 * @arg @ref LL_EXTI_LINE_9
447 * @arg @ref LL_EXTI_LINE_10
448 * @arg @ref LL_EXTI_LINE_11
449 * @arg @ref LL_EXTI_LINE_12
450 * @arg @ref LL_EXTI_LINE_13
451 * @arg @ref LL_EXTI_LINE_14
452 * @arg @ref LL_EXTI_LINE_15
453 * @arg @ref LL_EXTI_LINE_16
454 * @arg @ref LL_EXTI_LINE_17
455 * @arg @ref LL_EXTI_LINE_18
456 * @arg @ref LL_EXTI_LINE_19
457 * @arg @ref LL_EXTI_LINE_21
458 * @arg @ref LL_EXTI_LINE_23
459 * @arg @ref LL_EXTI_LINE_25
460 * @arg @ref LL_EXTI_LINE_26
461 * @arg @ref LL_EXTI_LINE_27
462 * @arg @ref LL_EXTI_LINE_28
463 * @arg @ref LL_EXTI_LINE_29
464 * @arg @ref LL_EXTI_LINE_30
465 * @arg @ref LL_EXTI_LINE_31
466 * @arg @ref LL_EXTI_LINE_ALL_0_31
467 * @note Please check each device line mapping for EXTI Line availability
468 * @retval State of bit (1 or 0).
469 */
470__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
471{
472 return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
473}
474
475#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
476/**
477 * @brief Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63
478 * @note The reset value for the direct lines (lines 32 & 33)
479 * is set to 1 in order to enable the interrupt by default.
480 * @rmtoll IMR2 IMx LL_EXTI_IsEnabledIT_32_63
481 * @param ExtiLine This parameter can be one of the following values:
482 * @arg @ref LL_EXTI_LINE_32
483 * @arg @ref LL_EXTI_LINE_33
484 * @arg @ref LL_EXTI_LINE_34
485 * @arg @ref LL_EXTI_LINE_35
486 * @arg @ref LL_EXTI_LINE_36
487 * @arg @ref LL_EXTI_LINE_ALL_32_63
488 * @note Please check each device line mapping for EXTI Line availability
489 * @retval State of bit (1 or 0).
490 */
491__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
492{
493 return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
494}
495#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
496
497/**
498 * @}
499 */
500
501/** @defgroup EXTI_LL_EF_Event_Management Event_Management
502 * @{
503 */
504
505/**
506 * @brief Enable ExtiLine Event request for Lines in range 0 to 31
507 * @rmtoll EMR1 EMx LL_EXTI_EnableEvent_0_31
508 * @param ExtiLine This parameter can be one of the following values:
509 * @arg @ref LL_EXTI_LINE_0
510 * @arg @ref LL_EXTI_LINE_1
511 * @arg @ref LL_EXTI_LINE_2
512 * @arg @ref LL_EXTI_LINE_3
513 * @arg @ref LL_EXTI_LINE_4
514 * @arg @ref LL_EXTI_LINE_5
515 * @arg @ref LL_EXTI_LINE_6
516 * @arg @ref LL_EXTI_LINE_7
517 * @arg @ref LL_EXTI_LINE_8
518 * @arg @ref LL_EXTI_LINE_9
519 * @arg @ref LL_EXTI_LINE_10
520 * @arg @ref LL_EXTI_LINE_11
521 * @arg @ref LL_EXTI_LINE_12
522 * @arg @ref LL_EXTI_LINE_13
523 * @arg @ref LL_EXTI_LINE_14
524 * @arg @ref LL_EXTI_LINE_15
525 * @arg @ref LL_EXTI_LINE_16
526 * @arg @ref LL_EXTI_LINE_17
527 * @arg @ref LL_EXTI_LINE_18
528 * @arg @ref LL_EXTI_LINE_19
529 * @arg @ref LL_EXTI_LINE_21
530 * @arg @ref LL_EXTI_LINE_23
531 * @arg @ref LL_EXTI_LINE_25
532 * @arg @ref LL_EXTI_LINE_26
533 * @arg @ref LL_EXTI_LINE_27
534 * @arg @ref LL_EXTI_LINE_28
535 * @arg @ref LL_EXTI_LINE_29
536 * @arg @ref LL_EXTI_LINE_30
537 * @arg @ref LL_EXTI_LINE_31
538 * @arg @ref LL_EXTI_LINE_ALL_0_31
539 * @note Please check each device line mapping for EXTI Line availability
540 * @retval None
541 */
542__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
543{
544 SET_BIT(EXTI->EMR1, ExtiLine);
545
546}
547
548#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
549/**
550 * @brief Enable ExtiLine Event request for Lines in range 32 to 63
551 * @rmtoll EMR2 EMx LL_EXTI_EnableEvent_32_63
552 * @param ExtiLine This parameter can be a combination of the following values:
553 * @arg @ref LL_EXTI_LINE_32
554 * @arg @ref LL_EXTI_LINE_33
555 * @arg @ref LL_EXTI_LINE_34
556 * @arg @ref LL_EXTI_LINE_35
557 * @arg @ref LL_EXTI_LINE_36
558 * @arg @ref LL_EXTI_LINE_ALL_32_63
559 * @note Please check each device line mapping for EXTI Line availability
560 * @retval None
561 */
562__STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
563{
564 SET_BIT(EXTI->EMR2, ExtiLine);
565}
566#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
567/**
568 * @brief Disable ExtiLine Event request for Lines in range 0 to 31
569 * @rmtoll EMR1 EMx LL_EXTI_DisableEvent_0_31
570 * @param ExtiLine This parameter can be one of the following values:
571 * @arg @ref LL_EXTI_LINE_0
572 * @arg @ref LL_EXTI_LINE_1
573 * @arg @ref LL_EXTI_LINE_2
574 * @arg @ref LL_EXTI_LINE_3
575 * @arg @ref LL_EXTI_LINE_4
576 * @arg @ref LL_EXTI_LINE_5
577 * @arg @ref LL_EXTI_LINE_6
578 * @arg @ref LL_EXTI_LINE_7
579 * @arg @ref LL_EXTI_LINE_8
580 * @arg @ref LL_EXTI_LINE_9
581 * @arg @ref LL_EXTI_LINE_10
582 * @arg @ref LL_EXTI_LINE_11
583 * @arg @ref LL_EXTI_LINE_12
584 * @arg @ref LL_EXTI_LINE_13
585 * @arg @ref LL_EXTI_LINE_14
586 * @arg @ref LL_EXTI_LINE_15
587 * @arg @ref LL_EXTI_LINE_16
588 * @arg @ref LL_EXTI_LINE_17
589 * @arg @ref LL_EXTI_LINE_18
590 * @arg @ref LL_EXTI_LINE_19
591 * @arg @ref LL_EXTI_LINE_21
592 * @arg @ref LL_EXTI_LINE_23
593 * @arg @ref LL_EXTI_LINE_25
594 * @arg @ref LL_EXTI_LINE_26
595 * @arg @ref LL_EXTI_LINE_27
596 * @arg @ref LL_EXTI_LINE_28
597 * @arg @ref LL_EXTI_LINE_29
598 * @arg @ref LL_EXTI_LINE_30
599 * @arg @ref LL_EXTI_LINE_31
600 * @arg @ref LL_EXTI_LINE_ALL_0_31
601 * @note Please check each device line mapping for EXTI Line availability
602 * @retval None
603 */
604__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
605{
606 CLEAR_BIT(EXTI->EMR1, ExtiLine);
607}
608
609#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
610/**
611 * @brief Disable ExtiLine Event request for Lines in range 32 to 63
612 * @rmtoll EMR2 EMx LL_EXTI_DisableEvent_32_63
613 * @param ExtiLine This parameter can be a combination of the following values:
614 * @arg @ref LL_EXTI_LINE_32
615 * @arg @ref LL_EXTI_LINE_33
616 * @arg @ref LL_EXTI_LINE_34
617 * @arg @ref LL_EXTI_LINE_35
618 * @arg @ref LL_EXTI_LINE_36
619 * @arg @ref LL_EXTI_LINE_ALL_32_63
620 * @note Please check each device line mapping for EXTI Line availability
621 * @retval None
622 */
623__STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
624{
625 CLEAR_BIT(EXTI->EMR2, ExtiLine);
626}
627#endif
628/**
629 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31
630 * @rmtoll EMR1 EMx LL_EXTI_IsEnabledEvent_0_31
631 * @param ExtiLine This parameter can be one of the following values:
632 * @arg @ref LL_EXTI_LINE_0
633 * @arg @ref LL_EXTI_LINE_1
634 * @arg @ref LL_EXTI_LINE_2
635 * @arg @ref LL_EXTI_LINE_3
636 * @arg @ref LL_EXTI_LINE_4
637 * @arg @ref LL_EXTI_LINE_5
638 * @arg @ref LL_EXTI_LINE_6
639 * @arg @ref LL_EXTI_LINE_7
640 * @arg @ref LL_EXTI_LINE_8
641 * @arg @ref LL_EXTI_LINE_9
642 * @arg @ref LL_EXTI_LINE_10
643 * @arg @ref LL_EXTI_LINE_11
644 * @arg @ref LL_EXTI_LINE_12
645 * @arg @ref LL_EXTI_LINE_13
646 * @arg @ref LL_EXTI_LINE_14
647 * @arg @ref LL_EXTI_LINE_15
648 * @arg @ref LL_EXTI_LINE_16
649 * @arg @ref LL_EXTI_LINE_17
650 * @arg @ref LL_EXTI_LINE_18
651 * @arg @ref LL_EXTI_LINE_19
652 * @arg @ref LL_EXTI_LINE_21
653 * @arg @ref LL_EXTI_LINE_23
654 * @arg @ref LL_EXTI_LINE_25
655 * @arg @ref LL_EXTI_LINE_26
656 * @arg @ref LL_EXTI_LINE_27
657 * @arg @ref LL_EXTI_LINE_28
658 * @arg @ref LL_EXTI_LINE_29
659 * @arg @ref LL_EXTI_LINE_30
660 * @arg @ref LL_EXTI_LINE_31
661 * @arg @ref LL_EXTI_LINE_ALL_0_31
662 * @note Please check each device line mapping for EXTI Line availability
663 * @retval State of bit (1 or 0).
664 */
665__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
666{
667 return ((READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
668}
669
670#if defined(STM32G081xx) || defined(STM32G071xx) || defined(STM32G0C1xx) || defined(STM32G0B1xx) || defined(STM32G0B0xx)
671/**
672 * @brief Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63
673 * @rmtoll EMR2 EMx LL_EXTI_IsEnabledEvent_32_63
674 * @param ExtiLine This parameter can be a combination of the following values:
675 * @arg @ref LL_EXTI_LINE_32
676 * @arg @ref LL_EXTI_LINE_33
677 * @arg @ref LL_EXTI_LINE_34
678 * @arg @ref LL_EXTI_LINE_35
679 * @arg @ref LL_EXTI_LINE_36
680 * @arg @ref LL_EXTI_LINE_ALL_32_63
681 * @note Please check each device line mapping for EXTI Line availability
682 * @retval State of bit (1 or 0).
683 */
684__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
685{
686 return ((READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
687}
688#endif /* STM32G081xx || STM32G071xx || STM32G0C1xx || STM32G0B1xx || STM32G0B0xx */
689
690/**
691 * @}
692 */
693
694/** @defgroup EXTI_LL_EF_Rising_Trigger_Management Rising_Trigger_Management
695 * @{
696 */
697
698/**
699 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
700 * @note The configurable wakeup lines are edge-triggered. No glitch must be
701 * generated on these lines. If a rising edge on a configurable interrupt
702 * line occurs during a write operation in the EXTI_RTSR register, the
703 * pending bit is not set.
704 * Rising and falling edge triggers can be set for
705 * the same interrupt line. In this case, both generate a trigger
706 * condition.
707 * @rmtoll RTSR1 RTx LL_EXTI_EnableRisingTrig_0_31
708 * @param ExtiLine This parameter can be a combination of the following values:
709 * @arg @ref LL_EXTI_LINE_0
710 * @arg @ref LL_EXTI_LINE_1
711 * @arg @ref LL_EXTI_LINE_2
712 * @arg @ref LL_EXTI_LINE_3
713 * @arg @ref LL_EXTI_LINE_4
714 * @arg @ref LL_EXTI_LINE_5
715 * @arg @ref LL_EXTI_LINE_6
716 * @arg @ref LL_EXTI_LINE_7
717 * @arg @ref LL_EXTI_LINE_8
718 * @arg @ref LL_EXTI_LINE_9
719 * @arg @ref LL_EXTI_LINE_10
720 * @arg @ref LL_EXTI_LINE_11
721 * @arg @ref LL_EXTI_LINE_12
722 * @arg @ref LL_EXTI_LINE_13
723 * @arg @ref LL_EXTI_LINE_14
724 * @arg @ref LL_EXTI_LINE_15
725 * @arg @ref LL_EXTI_LINE_16
726 * @arg @ref LL_EXTI_LINE_17
727 * @arg @ref LL_EXTI_LINE_18
728 * @arg @ref LL_EXTI_LINE_20
729 * @note Please check each device line mapping for EXTI Line availability
730 * @retval None
731 */
732__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
733{
734 SET_BIT(EXTI->RTSR1, ExtiLine);
735
736}
737#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
738/**
739 * @brief Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
740 * @note The configurable wakeup lines are edge-triggered. No glitch must be
741 * generated on these lines. If a rising edge on a configurable interrupt
742 * line occurs during a write operation in the EXTI_RTSR register, the
743 * pending bit is not set.
744 * Rising and falling edge triggers can be set for
745 * the same interrupt line. In this case, both generate a trigger
746 * condition.
747 * @rmtoll RTSR2 RTx LL_EXTI_EnableRisingTrig_32_63
748 * @param ExtiLine This parameter can be a combination of the following values:
749 * @arg @ref LL_EXTI_LINE_34
750 * @note Please check each device line mapping for EXTI Line availability
751 * @retval None
752 */
753__STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
754{
755 SET_BIT(EXTI->RTSR2, ExtiLine);
756
757}
758#endif /* STM32G0C1xx || STM32G0B1xx */
759
760/**
761 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31
762 * @note The configurable wakeup lines are edge-triggered. No glitch must be
763 * generated on these lines. If a rising edge on a configurable interrupt
764 * line occurs during a write operation in the EXTI_RTSR register, the
765 * pending bit is not set.
766 * Rising and falling edge triggers can be set for
767 * the same interrupt line. In this case, both generate a trigger
768 * condition.
769 * @rmtoll RTSR1 RTx LL_EXTI_DisableRisingTrig_0_31
770 * @param ExtiLine This parameter can be a combination of the following values:
771 * @arg @ref LL_EXTI_LINE_0
772 * @arg @ref LL_EXTI_LINE_1
773 * @arg @ref LL_EXTI_LINE_2
774 * @arg @ref LL_EXTI_LINE_3
775 * @arg @ref LL_EXTI_LINE_4
776 * @arg @ref LL_EXTI_LINE_5
777 * @arg @ref LL_EXTI_LINE_6
778 * @arg @ref LL_EXTI_LINE_7
779 * @arg @ref LL_EXTI_LINE_8
780 * @arg @ref LL_EXTI_LINE_9
781 * @arg @ref LL_EXTI_LINE_10
782 * @arg @ref LL_EXTI_LINE_11
783 * @arg @ref LL_EXTI_LINE_12
784 * @arg @ref LL_EXTI_LINE_13
785 * @arg @ref LL_EXTI_LINE_14
786 * @arg @ref LL_EXTI_LINE_15
787 * @arg @ref LL_EXTI_LINE_16
788 * @arg @ref LL_EXTI_LINE_17
789 * @arg @ref LL_EXTI_LINE_18
790 * @arg @ref LL_EXTI_LINE_20
791 * @note Please check each device line mapping for EXTI Line availability
792 * @retval None
793 */
794__STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
795{
796 CLEAR_BIT(EXTI->RTSR1, ExtiLine);
797
798}
799
800#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
801/**
802 * @brief Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63
803 * @note The configurable wakeup lines are edge-triggered. No glitch must be
804 * generated on these lines. If a rising edge on a configurable interrupt
805 * line occurs during a write operation in the EXTI_RTSR register, the
806 * pending bit is not set.
807 * Rising and falling edge triggers can be set for
808 * the same interrupt line. In this case, both generate a trigger
809 * condition.
810 * @rmtoll RTSR2 RTx LL_EXTI_DisableRisingTrig_32_63
811 * @param ExtiLine This parameter can be a combination of the following values:
812 * @arg @ref LL_EXTI_LINE_34
813 * @note Please check each device line mapping for EXTI Line availability
814 * @retval None
815 */
816__STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
817{
818 CLEAR_BIT(EXTI->RTSR2, ExtiLine);
819
820}
821#endif /* STM32G0C1xx || STM32G0B1xx */
822
823/**
824 * @brief Check if rising edge trigger is enabled for Lines in range 0 to 31
825 * @rmtoll RTSR1 RTx LL_EXTI_IsEnabledRisingTrig_0_31
826 * @param ExtiLine This parameter can be a combination of the following values:
827 * @arg @ref LL_EXTI_LINE_0
828 * @arg @ref LL_EXTI_LINE_1
829 * @arg @ref LL_EXTI_LINE_2
830 * @arg @ref LL_EXTI_LINE_3
831 * @arg @ref LL_EXTI_LINE_4
832 * @arg @ref LL_EXTI_LINE_5
833 * @arg @ref LL_EXTI_LINE_6
834 * @arg @ref LL_EXTI_LINE_7
835 * @arg @ref LL_EXTI_LINE_8
836 * @arg @ref LL_EXTI_LINE_9
837 * @arg @ref LL_EXTI_LINE_10
838 * @arg @ref LL_EXTI_LINE_11
839 * @arg @ref LL_EXTI_LINE_12
840 * @arg @ref LL_EXTI_LINE_13
841 * @arg @ref LL_EXTI_LINE_14
842 * @arg @ref LL_EXTI_LINE_15
843 * @arg @ref LL_EXTI_LINE_16
844 * @arg @ref LL_EXTI_LINE_17
845 * @arg @ref LL_EXTI_LINE_20
846 * @note Please check each device line mapping for EXTI Line availability
847 * @retval State of bit (1 or 0).
848 */
849__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
850{
851 return ((READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
852}
853
854#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
855/**
856 * @brief Check if rising edge trigger is enabled for Lines in range 32 to 63
857 * @rmtoll RTSR2 RTx LL_EXTI_IsEnabledRisingTrig_32_63
858 * @param ExtiLine This parameter can be a combination of the following values:
859 * @arg @ref LL_EXTI_LINE_34
860 * @note Please check each device line mapping for EXTI Line availability
861 * @retval State of bit (1 or 0).
862 */
863__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
864{
865 return ((READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
866}
867#endif /* STM32G0C1xx || STM32G0B1xx */
868
869/**
870 * @}
871 */
872
873/** @defgroup EXTI_LL_EF_Falling_Trigger_Management Falling_Trigger_Management
874 * @{
875 */
876
877/**
878 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
879 * @note The configurable wakeup lines are edge-triggered. No glitch must be
880 * generated on these lines. If a falling edge on a configurable interrupt
881 * line occurs during a write operation in the EXTI_FTSR register, the
882 * pending bit is not set.
883 * Rising and falling edge triggers can be set for
884 * the same interrupt line. In this case, both generate a trigger
885 * condition.
886 * @rmtoll FTSR1 FTx LL_EXTI_EnableFallingTrig_0_31
887 * @param ExtiLine This parameter can be a combination of the following values:
888 * @arg @ref LL_EXTI_LINE_0
889 * @arg @ref LL_EXTI_LINE_1
890 * @arg @ref LL_EXTI_LINE_2
891 * @arg @ref LL_EXTI_LINE_3
892 * @arg @ref LL_EXTI_LINE_4
893 * @arg @ref LL_EXTI_LINE_5
894 * @arg @ref LL_EXTI_LINE_6
895 * @arg @ref LL_EXTI_LINE_7
896 * @arg @ref LL_EXTI_LINE_8
897 * @arg @ref LL_EXTI_LINE_9
898 * @arg @ref LL_EXTI_LINE_10
899 * @arg @ref LL_EXTI_LINE_11
900 * @arg @ref LL_EXTI_LINE_12
901 * @arg @ref LL_EXTI_LINE_13
902 * @arg @ref LL_EXTI_LINE_14
903 * @arg @ref LL_EXTI_LINE_15
904 * @arg @ref LL_EXTI_LINE_16
905 * @arg @ref LL_EXTI_LINE_17
906 * @arg @ref LL_EXTI_LINE_18
907 * @arg @ref LL_EXTI_LINE_20
908 * @note Please check each device line mapping for EXTI Line availability
909 * @retval None
910 */
911__STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
912{
913 SET_BIT(EXTI->FTSR1, ExtiLine);
914}
915
916#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
917/**
918 * @brief Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
919 * @note The configurable wakeup lines are edge-triggered. No glitch must be
920 * generated on these lines. If a falling edge on a configurable interrupt
921 * line occurs during a write operation in the EXTI_FTSR register, the
922 * pending bit is not set.
923 * Rising and falling edge triggers can be set for
924 * the same interrupt line. In this case, both generate a trigger
925 * condition.
926 * @rmtoll FTSR2 FTx LL_EXTI_EnableFallingTrig_32_63
927 * @param ExtiLine This parameter can be a combination of the following values:
928 * @arg @ref LL_EXTI_LINE_34
929 * @note Please check each device line mapping for EXTI Line availability
930 * @retval None
931 */
932__STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
933{
934 SET_BIT(EXTI->FTSR2, ExtiLine);
935}
936#endif /* STM32G0C1xx || STM32G0B1xx */
937
938/**
939 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31
940 * @note The configurable wakeup lines are edge-triggered. No glitch must be
941 * generated on these lines. If a Falling edge on a configurable interrupt
942 * line occurs during a write operation in the EXTI_FTSR register, the
943 * pending bit is not set.
944 * Rising and falling edge triggers can be set for the same interrupt line.
945 * In this case, both generate a trigger condition.
946 * @rmtoll FTSR1 FTx LL_EXTI_DisableFallingTrig_0_31
947 * @param ExtiLine This parameter can be a combination of the following values:
948 * @arg @ref LL_EXTI_LINE_0
949 * @arg @ref LL_EXTI_LINE_1
950 * @arg @ref LL_EXTI_LINE_2
951 * @arg @ref LL_EXTI_LINE_3
952 * @arg @ref LL_EXTI_LINE_4
953 * @arg @ref LL_EXTI_LINE_5
954 * @arg @ref LL_EXTI_LINE_6
955 * @arg @ref LL_EXTI_LINE_7
956 * @arg @ref LL_EXTI_LINE_8
957 * @arg @ref LL_EXTI_LINE_9
958 * @arg @ref LL_EXTI_LINE_10
959 * @arg @ref LL_EXTI_LINE_11
960 * @arg @ref LL_EXTI_LINE_12
961 * @arg @ref LL_EXTI_LINE_13
962 * @arg @ref LL_EXTI_LINE_14
963 * @arg @ref LL_EXTI_LINE_15
964 * @arg @ref LL_EXTI_LINE_16
965 * @arg @ref LL_EXTI_LINE_17
966 * @arg @ref LL_EXTI_LINE_18
967 * @arg @ref LL_EXTI_LINE_20
968 * @note Please check each device line mapping for EXTI Line availability
969 * @retval None
970 */
971__STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
972{
973 CLEAR_BIT(EXTI->FTSR1, ExtiLine);
974}
975
976#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
977/**
978 * @brief Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63
979 * @note The configurable wakeup lines are edge-triggered. No glitch must be
980 * generated on these lines. If a Falling edge on a configurable interrupt
981 * line occurs during a write operation in the EXTI_FTSR register, the
982 * pending bit is not set.
983 * Rising and falling edge triggers can be set for the same interrupt line.
984 * In this case, both generate a trigger condition.
985 * @rmtoll FTSR2 FTx LL_EXTI_DisableFallingTrig_32_63
986 * @param ExtiLine This parameter can be a combination of the following values:
987 * @arg @ref LL_EXTI_LINE_34
988 * @note Please check each device line mapping for EXTI Line availability
989 * @retval None
990 */
991__STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
992{
993 CLEAR_BIT(EXTI->FTSR2, ExtiLine);
994}
995#endif /* STM32G0C1xx || STM32G0B1xx */
996
997/**
998 * @brief Check if falling edge trigger is enabled for Lines in range 0 to 31
999 * @rmtoll FTSR1 FTx LL_EXTI_IsEnabledFallingTrig_0_31
1000 * @param ExtiLine This parameter can be a combination of the following values:
1001 * @arg @ref LL_EXTI_LINE_0
1002 * @arg @ref LL_EXTI_LINE_1
1003 * @arg @ref LL_EXTI_LINE_2
1004 * @arg @ref LL_EXTI_LINE_3
1005 * @arg @ref LL_EXTI_LINE_4
1006 * @arg @ref LL_EXTI_LINE_5
1007 * @arg @ref LL_EXTI_LINE_6
1008 * @arg @ref LL_EXTI_LINE_7
1009 * @arg @ref LL_EXTI_LINE_8
1010 * @arg @ref LL_EXTI_LINE_9
1011 * @arg @ref LL_EXTI_LINE_10
1012 * @arg @ref LL_EXTI_LINE_11
1013 * @arg @ref LL_EXTI_LINE_12
1014 * @arg @ref LL_EXTI_LINE_13
1015 * @arg @ref LL_EXTI_LINE_14
1016 * @arg @ref LL_EXTI_LINE_15
1017 * @arg @ref LL_EXTI_LINE_16
1018 * @arg @ref LL_EXTI_LINE_17
1019 * @arg @ref LL_EXTI_LINE_18
1020 * @arg @ref LL_EXTI_LINE_20
1021 * @note Please check each device line mapping for EXTI Line availability
1022 * @retval State of bit (1 or 0).
1023 */
1024__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
1025{
1026 return ((READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1027}
1028
1029#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1030/**
1031 * @brief Check if falling edge trigger is enabled for Lines in range 32 to 63
1032 * @rmtoll FTSR2 FTx LL_EXTI_IsEnabledFallingTrig_32_63
1033 * @param ExtiLine This parameter can be a combination of the following values:
1034 * @arg @ref LL_EXTI_LINE_34
1035 * @note Please check each device line mapping for EXTI Line availability
1036 * @retval State of bit (1 or 0).
1037 */
1038__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
1039{
1040 return ((READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1041}
1042#endif /* STM32G0C1xx || STM32G0B1xx */
1043/**
1044 * @}
1045 */
1046
1047/** @defgroup EXTI_LL_EF_Software_Interrupt_Management Software_Interrupt_Management
1048 * @{
1049 */
1050
1051/**
1052 * @brief Generate a software Interrupt Event for Lines in range 0 to 31
1053 * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
1054 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
1055 * resulting in an interrupt request generation.
1056 * This bit is cleared by clearing the corresponding bit in the EXTI_PR
1057 * register (by writing a 1 into the bit)
1058 * @rmtoll SWIER1 SWIx LL_EXTI_GenerateSWI_0_31
1059 * @param ExtiLine This parameter can be a combination of the following values:
1060 * @arg @ref LL_EXTI_LINE_0
1061 * @arg @ref LL_EXTI_LINE_1
1062 * @arg @ref LL_EXTI_LINE_2
1063 * @arg @ref LL_EXTI_LINE_3
1064 * @arg @ref LL_EXTI_LINE_4
1065 * @arg @ref LL_EXTI_LINE_5
1066 * @arg @ref LL_EXTI_LINE_6
1067 * @arg @ref LL_EXTI_LINE_7
1068 * @arg @ref LL_EXTI_LINE_8
1069 * @arg @ref LL_EXTI_LINE_9
1070 * @arg @ref LL_EXTI_LINE_10
1071 * @arg @ref LL_EXTI_LINE_11
1072 * @arg @ref LL_EXTI_LINE_12
1073 * @arg @ref LL_EXTI_LINE_13
1074 * @arg @ref LL_EXTI_LINE_14
1075 * @arg @ref LL_EXTI_LINE_15
1076 * @arg @ref LL_EXTI_LINE_16
1077 * @arg @ref LL_EXTI_LINE_17
1078 * @arg @ref LL_EXTI_LINE_18
1079 * @arg @ref LL_EXTI_LINE_20
1080 * @note Please check each device line mapping for EXTI Line availability
1081 * @retval None
1082 */
1083__STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
1084{
1085 SET_BIT(EXTI->SWIER1, ExtiLine);
1086}
1087
1088#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1089/**
1090 * @brief Generate a software Interrupt Event for Lines in range 32 to 63
1091 * @note If the interrupt is enabled on this line in the EXTI_IMR, writing a 1 to
1092 * this bit when it is at '0' sets the corresponding pending bit in EXTI_PR
1093 * resulting in an interrupt request generation.
1094 * This bit is cleared by clearing the corresponding bit in the EXTI_PR
1095 * register (by writing a 1 into the bit)
1096 * @rmtoll SWIER2 SWIx LL_EXTI_GenerateSWI_32_63
1097 * @param ExtiLine This parameter can be a combination of the following values:
1098 * @arg @ref LL_EXTI_LINE_34
1099 * @note Please check each device line mapping for EXTI Line availability
1100 * @retval None
1101 */
1102__STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
1103{
1104 SET_BIT(EXTI->SWIER2, ExtiLine);
1105}
1106#endif /* STM32G0C1xx || STM32G0B1xx */
1107
1108/**
1109 * @}
1110 */
1111
1112/** @defgroup EXTI_LL_EF_Flag_Management Flag_Management
1113 * @{
1114 */
1115
1116/**
1117 * @brief Check if the ExtLine Falling Flag is set or not for Lines in range 0 to 31
1118 * @note This bit is set when the falling edge event arrives on the interrupt
1119 * line. This bit is cleared by writing a 1 to the bit.
1120 * @rmtoll FPR1 FPIFx LL_EXTI_IsActiveFallingFlag_0_31
1121 * @param ExtiLine This parameter can be a combination of the following values:
1122 * @arg @ref LL_EXTI_LINE_0
1123 * @arg @ref LL_EXTI_LINE_1
1124 * @arg @ref LL_EXTI_LINE_2
1125 * @arg @ref LL_EXTI_LINE_3
1126 * @arg @ref LL_EXTI_LINE_4
1127 * @arg @ref LL_EXTI_LINE_5
1128 * @arg @ref LL_EXTI_LINE_6
1129 * @arg @ref LL_EXTI_LINE_7
1130 * @arg @ref LL_EXTI_LINE_8
1131 * @arg @ref LL_EXTI_LINE_9
1132 * @arg @ref LL_EXTI_LINE_10
1133 * @arg @ref LL_EXTI_LINE_11
1134 * @arg @ref LL_EXTI_LINE_12
1135 * @arg @ref LL_EXTI_LINE_13
1136 * @arg @ref LL_EXTI_LINE_14
1137 * @arg @ref LL_EXTI_LINE_15
1138 * @arg @ref LL_EXTI_LINE_16
1139 * @arg @ref LL_EXTI_LINE_17
1140 * @arg @ref LL_EXTI_LINE_18
1141 * @arg @ref LL_EXTI_LINE_20
1142 * @note Please check each device line mapping for EXTI Line availability
1143 * @retval State of bit (1 or 0).
1144 */
1145__STATIC_INLINE uint32_t LL_EXTI_IsActiveFallingFlag_0_31(uint32_t ExtiLine)
1146{
1147 return ((READ_BIT(EXTI->FPR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1148}
1149
1150#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1151/**
1152 * @brief Check if the ExtLine Falling Flag is set or not for Lines in range 32 to 63
1153 * @note This bit is set when the falling edge event arrives on the interrupt
1154 * line. This bit is cleared by writing a 1 to the bit.
1155 * @rmtoll FPR2 FPIFx LL_EXTI_IsActiveFallingFlag_32_63
1156 * @param ExtiLine This parameter can be a combination of the following values:
1157 * @arg @ref LL_EXTI_LINE_34
1158 * @note Please check each device line mapping for EXTI Line availability
1159 * @retval State of bit (1 or 0).
1160 */
1161__STATIC_INLINE uint32_t LL_EXTI_IsActiveFallingFlag_32_63(uint32_t ExtiLine)
1162{
1163 return ((READ_BIT(EXTI->FPR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1164}
1165#endif /* STM32G0C1xx || STM32G0B1xx */
1166
1167/**
1168 * @brief Read ExtLine Combination Falling Flag for Lines in range 0 to 31
1169 * @note This bit is set when the falling edge event arrives on the interrupt
1170 * line. This bit is cleared by writing a 1 to the bit.
1171 * @rmtoll FPR1 FPIFx LL_EXTI_ReadFallingFlag_0_31
1172 * @param ExtiLine This parameter can be a combination of the following values:
1173 * @arg @ref LL_EXTI_LINE_0
1174 * @arg @ref LL_EXTI_LINE_1
1175 * @arg @ref LL_EXTI_LINE_2
1176 * @arg @ref LL_EXTI_LINE_3
1177 * @arg @ref LL_EXTI_LINE_4
1178 * @arg @ref LL_EXTI_LINE_5
1179 * @arg @ref LL_EXTI_LINE_6
1180 * @arg @ref LL_EXTI_LINE_7
1181 * @arg @ref LL_EXTI_LINE_8
1182 * @arg @ref LL_EXTI_LINE_9
1183 * @arg @ref LL_EXTI_LINE_10
1184 * @arg @ref LL_EXTI_LINE_11
1185 * @arg @ref LL_EXTI_LINE_12
1186 * @arg @ref LL_EXTI_LINE_13
1187 * @arg @ref LL_EXTI_LINE_14
1188 * @arg @ref LL_EXTI_LINE_15
1189 * @arg @ref LL_EXTI_LINE_16
1190 * @arg @ref LL_EXTI_LINE_17
1191 * @arg @ref LL_EXTI_LINE_18
1192 * @arg @ref LL_EXTI_LINE_20
1193 * @note Please check each device line mapping for EXTI Line availability
1194 * @retval @note This bit is set when the selected edge event arrives on the interrupt
1195 */
1196__STATIC_INLINE uint32_t LL_EXTI_ReadFallingFlag_0_31(uint32_t ExtiLine)
1197{
1198 return (READ_BIT(EXTI->FPR1, ExtiLine));
1199}
1200
1201#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1202/**
1203 * @brief Read ExtLine Combination Falling Flag for Lines in range 32 to 63
1204 * @note This bit is set when the falling edge event arrives on the interrupt
1205 * line. This bit is cleared by writing a 1 to the bit.
1206 * @rmtoll FPR2 FPIFx LL_EXTI_ReadFallingFlag_32_63
1207 * @param ExtiLine This parameter can be a combination of the following values:
1208 * @arg @ref LL_EXTI_LINE_34
1209 * @note Please check each device line mapping for EXTI Line availability
1210 * @retval @note This bit is set when the selected edge event arrives on the interrupt
1211 */
1212__STATIC_INLINE uint32_t LL_EXTI_ReadFallingFlag_32_63(uint32_t ExtiLine)
1213{
1214 return (READ_BIT(EXTI->FPR2, ExtiLine));
1215}
1216#endif /* STM32G0C1xx || STM32G0B1xx */
1217
1218/**
1219 * @brief Clear ExtLine Falling Flags for Lines in range 0 to 31
1220 * @note This bit is set when the falling edge event arrives on the interrupt
1221 * line. This bit is cleared by writing a 1 to the bit.
1222 * @rmtoll FPR1 FPIFx LL_EXTI_ClearFallingFlag_0_31
1223 * @param ExtiLine This parameter can be a combination of the following values:
1224 * @arg @ref LL_EXTI_LINE_0
1225 * @arg @ref LL_EXTI_LINE_1
1226 * @arg @ref LL_EXTI_LINE_2
1227 * @arg @ref LL_EXTI_LINE_3
1228 * @arg @ref LL_EXTI_LINE_4
1229 * @arg @ref LL_EXTI_LINE_5
1230 * @arg @ref LL_EXTI_LINE_6
1231 * @arg @ref LL_EXTI_LINE_7
1232 * @arg @ref LL_EXTI_LINE_8
1233 * @arg @ref LL_EXTI_LINE_9
1234 * @arg @ref LL_EXTI_LINE_10
1235 * @arg @ref LL_EXTI_LINE_11
1236 * @arg @ref LL_EXTI_LINE_12
1237 * @arg @ref LL_EXTI_LINE_13
1238 * @arg @ref LL_EXTI_LINE_14
1239 * @arg @ref LL_EXTI_LINE_15
1240 * @arg @ref LL_EXTI_LINE_16
1241 * @arg @ref LL_EXTI_LINE_17
1242 * @arg @ref LL_EXTI_LINE_18
1243 * @arg @ref LL_EXTI_LINE_20
1244 * @note Please check each device line mapping for EXTI Line availability
1245 * @retval None
1246 */
1247__STATIC_INLINE void LL_EXTI_ClearFallingFlag_0_31(uint32_t ExtiLine)
1248{
1249 WRITE_REG(EXTI->FPR1, ExtiLine);
1250}
1251
1252#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1253/**
1254 * @brief Clear ExtLine Falling Flags for Lines in range 32 to 63
1255 * @note This bit is set when the falling edge event arrives on the interrupt
1256 * line. This bit is cleared by writing a 1 to the bit.
1257 * @rmtoll FPR2 FPIFx LL_EXTI_ClearFallingFlag_32_63
1258 * @param ExtiLine This parameter can be a combination of the following values:
1259 * @arg @ref LL_EXTI_LINE_34
1260 * @note Please check each device line mapping for EXTI Line availability
1261 * @retval None
1262 */
1263__STATIC_INLINE void LL_EXTI_ClearFallingFlag_32_63(uint32_t ExtiLine)
1264{
1265 WRITE_REG(EXTI->FPR2, ExtiLine);
1266}
1267#endif /* STM32G0C1xx || STM32G0B1xx */
1268
1269/**
1270 * @brief Check if the ExtLine Rising Flag is set or not for Lines in range 0 to 31
1271 * @note This bit is set when the Rising edge event arrives on the interrupt
1272 * line. This bit is cleared by writing a 1 to the bit.
1273 * @rmtoll RPR1 RPIFx LL_EXTI_IsActiveRisingFlag_0_31
1274 * @param ExtiLine This parameter can be a combination of the following values:
1275 * @arg @ref LL_EXTI_LINE_0
1276 * @arg @ref LL_EXTI_LINE_1
1277 * @arg @ref LL_EXTI_LINE_2
1278 * @arg @ref LL_EXTI_LINE_3
1279 * @arg @ref LL_EXTI_LINE_4
1280 * @arg @ref LL_EXTI_LINE_5
1281 * @arg @ref LL_EXTI_LINE_6
1282 * @arg @ref LL_EXTI_LINE_7
1283 * @arg @ref LL_EXTI_LINE_8
1284 * @arg @ref LL_EXTI_LINE_9
1285 * @arg @ref LL_EXTI_LINE_10
1286 * @arg @ref LL_EXTI_LINE_11
1287 * @arg @ref LL_EXTI_LINE_12
1288 * @arg @ref LL_EXTI_LINE_13
1289 * @arg @ref LL_EXTI_LINE_14
1290 * @arg @ref LL_EXTI_LINE_15
1291 * @arg @ref LL_EXTI_LINE_16
1292 * @arg @ref LL_EXTI_LINE_17
1293 * @arg @ref LL_EXTI_LINE_18
1294 * @arg @ref LL_EXTI_LINE_20
1295 * @note Please check each device line mapping for EXTI Line availability
1296 * @retval State of bit (1 or 0).
1297 */
1298__STATIC_INLINE uint32_t LL_EXTI_IsActiveRisingFlag_0_31(uint32_t ExtiLine)
1299{
1300 return ((READ_BIT(EXTI->RPR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1301}
1302
1303#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1304/**
1305 * @brief Check if the ExtLine Rising Flag is set or not for Lines in range 32 to 63
1306 * @note This bit is set when the Rising edge event arrives on the interrupt
1307 * line. This bit is cleared by writing a 1 to the bit.
1308 * @rmtoll RPR2 RPIFx LL_EXTI_IsActiveRisingFlag_32_63
1309 * @param ExtiLine This parameter can be a combination of the following values:
1310 * @arg @ref LL_EXTI_LINE_34
1311 * @note Please check each device line mapping for EXTI Line availability
1312 * @retval State of bit (1 or 0).
1313 */
1314__STATIC_INLINE uint32_t LL_EXTI_IsActiveRisingFlag_32_63(uint32_t ExtiLine)
1315{
1316 return ((READ_BIT(EXTI->RPR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1317}
1318#endif /* STM32G0C1xx || STM32G0B1xx */
1319
1320/**
1321 * @brief Read ExtLine Combination Rising Flag for Lines in range 0 to 31
1322 * @note This bit is set when the Rising edge event arrives on the interrupt
1323 * line. This bit is cleared by writing a 1 to the bit.
1324 * @rmtoll RPR1 RPIFx LL_EXTI_ReadRisingFlag_0_31
1325 * @param ExtiLine This parameter can be a combination of the following values:
1326 * @arg @ref LL_EXTI_LINE_0
1327 * @arg @ref LL_EXTI_LINE_1
1328 * @arg @ref LL_EXTI_LINE_2
1329 * @arg @ref LL_EXTI_LINE_3
1330 * @arg @ref LL_EXTI_LINE_4
1331 * @arg @ref LL_EXTI_LINE_5
1332 * @arg @ref LL_EXTI_LINE_6
1333 * @arg @ref LL_EXTI_LINE_7
1334 * @arg @ref LL_EXTI_LINE_8
1335 * @arg @ref LL_EXTI_LINE_9
1336 * @arg @ref LL_EXTI_LINE_10
1337 * @arg @ref LL_EXTI_LINE_11
1338 * @arg @ref LL_EXTI_LINE_12
1339 * @arg @ref LL_EXTI_LINE_13
1340 * @arg @ref LL_EXTI_LINE_14
1341 * @arg @ref LL_EXTI_LINE_15
1342 * @arg @ref LL_EXTI_LINE_16
1343 * @arg @ref LL_EXTI_LINE_17
1344 * @arg @ref LL_EXTI_LINE_18
1345 * @arg @ref LL_EXTI_LINE_20
1346 * @note Please check each device line mapping for EXTI Line availability
1347 * @retval @note This bit is set when the selected edge event arrives on the interrupt
1348 */
1349__STATIC_INLINE uint32_t LL_EXTI_ReadRisingFlag_0_31(uint32_t ExtiLine)
1350{
1351 return (READ_BIT(EXTI->RPR1, ExtiLine));
1352}
1353
1354#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1355/**
1356 * @brief Read ExtLine Combination Rising Flag for Lines in range 32 to 63
1357 * @note This bit is set when the Rising edge event arrives on the interrupt
1358 * line. This bit is cleared by writing a 1 to the bit.
1359 * @rmtoll RPR2 RPIFx LL_EXTI_ReadRisingFlag_32_63
1360 * @param ExtiLine This parameter can be a combination of the following values:
1361 * @arg @ref LL_EXTI_LINE_34
1362 * @note Please check each device line mapping for EXTI Line availability
1363 * @retval @note This bit is set when the selected edge event arrives on the interrupt
1364 */
1365__STATIC_INLINE uint32_t LL_EXTI_ReadRisingFlag_32_63(uint32_t ExtiLine)
1366{
1367 return (READ_BIT(EXTI->RPR2, ExtiLine));
1368}
1369#endif /* STM32G0C1xx || STM32G0B1xx */
1370
1371/**
1372 * @brief Clear ExtLine Rising Flags for Lines in range 0 to 31
1373 * @note This bit is set when the Rising edge event arrives on the interrupt
1374 * line. This bit is cleared by writing a 1 to the bit.
1375 * @rmtoll RPR1 RPIFx LL_EXTI_ClearRisingFlag_0_31
1376 * @param ExtiLine This parameter can be a combination of the following values:
1377 * @arg @ref LL_EXTI_LINE_0
1378 * @arg @ref LL_EXTI_LINE_1
1379 * @arg @ref LL_EXTI_LINE_2
1380 * @arg @ref LL_EXTI_LINE_3
1381 * @arg @ref LL_EXTI_LINE_4
1382 * @arg @ref LL_EXTI_LINE_5
1383 * @arg @ref LL_EXTI_LINE_6
1384 * @arg @ref LL_EXTI_LINE_7
1385 * @arg @ref LL_EXTI_LINE_8
1386 * @arg @ref LL_EXTI_LINE_9
1387 * @arg @ref LL_EXTI_LINE_10
1388 * @arg @ref LL_EXTI_LINE_11
1389 * @arg @ref LL_EXTI_LINE_12
1390 * @arg @ref LL_EXTI_LINE_13
1391 * @arg @ref LL_EXTI_LINE_14
1392 * @arg @ref LL_EXTI_LINE_15
1393 * @arg @ref LL_EXTI_LINE_16
1394 * @arg @ref LL_EXTI_LINE_17
1395 * @arg @ref LL_EXTI_LINE_18
1396 * @arg @ref LL_EXTI_LINE_20
1397 * @note Please check each device line mapping for EXTI Line availability
1398 * @retval None
1399 */
1400__STATIC_INLINE void LL_EXTI_ClearRisingFlag_0_31(uint32_t ExtiLine)
1401{
1402 WRITE_REG(EXTI->RPR1, ExtiLine);
1403}
1404
1405#if defined(STM32G0C1xx) || defined(STM32G0B1xx)
1406/**
1407 * @brief Clear ExtLine Rising Flags for Lines in range 32 to 63
1408 * @note This bit is set when the Rising edge event arrives on the interrupt
1409 * line. This bit is cleared by writing a 1 to the bit.
1410 * @rmtoll RPR2 RPIFx LL_EXTI_ClearRisingFlag_32_63
1411 * @param ExtiLine This parameter can be a combination of the following values:
1412 * @arg @ref LL_EXTI_LINE_34
1413 * @note Please check each device line mapping for EXTI Line availability
1414 * @retval None
1415 */
1416__STATIC_INLINE void LL_EXTI_ClearRisingFlag_32_63(uint32_t ExtiLine)
1417{
1418 WRITE_REG(EXTI->RPR2, ExtiLine);
1419}
1420#endif /* STM32G0C1xx || STM32G0B1xx */
1421
1422/**
1423 * @}
1424 */
1425/** @defgroup EXTI_LL_EF_Config EF configuration functions
1426 * @{
1427 */
1428
1429/**
1430 * @brief Configure source input for the EXTI external interrupt.
1431 * @rmtoll EXTI_EXTICR1 EXTI0 LL_EXTI_SetEXTISource\n
1432 * EXTI_EXTICR1 EXTI1 LL_EXTI_SetEXTISource\n
1433 * EXTI_EXTICR1 EXTI2 LL_EXTI_SetEXTISource\n
1434 * EXTI_EXTICR1 EXTI3 LL_EXTI_SetEXTISource\n
1435 * EXTI_EXTICR2 EXTI4 LL_EXTI_SetEXTISource\n
1436 * EXTI_EXTICR2 EXTI5 LL_EXTI_SetEXTISource\n
1437 * EXTI_EXTICR2 EXTI6 LL_EXTI_SetEXTISource\n
1438 * EXTI_EXTICR2 EXTI7 LL_EXTI_SetEXTISource\n
1439 * EXTI_EXTICR3 EXTI8 LL_EXTI_SetEXTISource\n
1440 * EXTI_EXTICR3 EXTI9 LL_EXTI_SetEXTISource\n
1441 * EXTI_EXTICR3 EXTI10 LL_EXTI_SetEXTISource\n
1442 * EXTI_EXTICR3 EXTI11 LL_EXTI_SetEXTISource\n
1443 * EXTI_EXTICR4 EXTI12 LL_EXTI_SetEXTISource\n
1444 * EXTI_EXTICR4 EXTI13 LL_EXTI_SetEXTISource\n
1445 * EXTI_EXTICR4 EXTI14 LL_EXTI_SetEXTISource\n
1446 * EXTI_EXTICR4 EXTI15 LL_EXTI_SetEXTISource
1447 * @param Port This parameter can be one of the following values:
1448 * @arg @ref EXTI_LL_EC_CONFIG_PORT
1449 *
1450 * (*) value not defined in all devices
1451 * @param Line This parameter can be one of the following values:
1452 * @arg @ref LL_EXTI_CONFIG_LINE0
1453 * @arg @ref LL_EXTI_CONFIG_LINE1
1454 * @arg @ref LL_EXTI_CONFIG_LINE2
1455 * @arg @ref LL_EXTI_CONFIG_LINE3
1456 * @arg @ref LL_EXTI_CONFIG_LINE4
1457 * @arg @ref LL_EXTI_CONFIG_LINE5
1458 * @arg @ref LL_EXTI_CONFIG_LINE6
1459 * @arg @ref LL_EXTI_CONFIG_LINE7
1460 * @arg @ref LL_EXTI_CONFIG_LINE8
1461 * @arg @ref LL_EXTI_CONFIG_LINE9
1462 * @arg @ref LL_EXTI_CONFIG_LINE10
1463 * @arg @ref LL_EXTI_CONFIG_LINE11
1464 * @arg @ref LL_EXTI_CONFIG_LINE12
1465 * @arg @ref LL_EXTI_CONFIG_LINE13
1466 * @arg @ref LL_EXTI_CONFIG_LINE14
1467 * @arg @ref LL_EXTI_CONFIG_LINE15
1468 * @retval None
1469 */
1470__STATIC_INLINE void LL_EXTI_SetEXTISource(uint32_t Port, uint32_t Line)
1471{
1472 MODIFY_REG(EXTI->EXTICR[Line & 0x03u], EXTI_EXTICR1_EXTI0 << (Line >> LL_EXTI_REGISTER_PINPOS_SHFT), Port << (Line >> LL_EXTI_REGISTER_PINPOS_SHFT));
1473}
1474
1475/**
1476 * @brief Get the configured defined for specific EXTI Line
1477 * @rmtoll EXTI_EXTICR1 EXTI0 LL_EXTI_SetEXTISource\n
1478 * EXTI_EXTICR1 EXTI1 LL_EXTI_SetEXTISource\n
1479 * EXTI_EXTICR1 EXTI2 LL_EXTI_SetEXTISource\n
1480 * EXTI_EXTICR1 EXTI3 LL_EXTI_SetEXTISource\n
1481 * EXTI_EXTICR2 EXTI4 LL_EXTI_SetEXTISource\n
1482 * EXTI_EXTICR2 EXTI5 LL_EXTI_SetEXTISource\n
1483 * EXTI_EXTICR2 EXTI6 LL_EXTI_SetEXTISource\n
1484 * EXTI_EXTICR2 EXTI7 LL_EXTI_SetEXTISource\n
1485 * EXTI_EXTICR3 EXTI8 LL_EXTI_SetEXTISource\n
1486 * EXTI_EXTICR3 EXTI9 LL_EXTI_SetEXTISource\n
1487 * EXTI_EXTICR3 EXTI10 LL_EXTI_SetEXTISource\n
1488 * EXTI_EXTICR3 EXTI11 LL_EXTI_SetEXTISource\n
1489 * EXTI_EXTICR4 EXTI12 LL_EXTI_SetEXTISource\n
1490 * EXTI_EXTICR4 EXTI13 LL_EXTI_SetEXTISource\n
1491 * EXTI_EXTICR4 EXTI14 LL_EXTI_SetEXTISource\n
1492 * EXTI_EXTICR4 EXTI15 LL_EXTI_SetEXTISource
1493 * @param Line This parameter can be one of the following values:
1494 * @arg @ref LL_EXTI_CONFIG_LINE0
1495 * @arg @ref LL_EXTI_CONFIG_LINE1
1496 * @arg @ref LL_EXTI_CONFIG_LINE2
1497 * @arg @ref LL_EXTI_CONFIG_LINE3
1498 * @arg @ref LL_EXTI_CONFIG_LINE4
1499 * @arg @ref LL_EXTI_CONFIG_LINE5
1500 * @arg @ref LL_EXTI_CONFIG_LINE6
1501 * @arg @ref LL_EXTI_CONFIG_LINE7
1502 * @arg @ref LL_EXTI_CONFIG_LINE8
1503 * @arg @ref LL_EXTI_CONFIG_LINE9
1504 * @arg @ref LL_EXTI_CONFIG_LINE10
1505 * @arg @ref LL_EXTI_CONFIG_LINE11
1506 * @arg @ref LL_EXTI_CONFIG_LINE12
1507 * @arg @ref LL_EXTI_CONFIG_LINE13
1508 * @arg @ref LL_EXTI_CONFIG_LINE14
1509 * @arg @ref LL_EXTI_CONFIG_LINE15
1510 * @retval Returned value can be one of the following values:
1511 * @arg @ref EXTI_LL_EC_CONFIG_PORT
1512 *
1513 * (*) value not defined in all devices
1514 */
1515__STATIC_INLINE uint32_t LL_EXTI_GetEXTISource(uint32_t Line)
1516{
1517 return (READ_BIT(EXTI->EXTICR[Line & 0x03u], (EXTI_EXTICR1_EXTI0 << (Line >> LL_EXTI_REGISTER_PINPOS_SHFT))) >> (Line >> LL_EXTI_REGISTER_PINPOS_SHFT));
1518}
1519/**
1520 * @}
1521 */
1522
1523#if defined(USE_FULL_LL_DRIVER)
1524/** @defgroup EXTI_LL_EF_Init Initialization and de-initialization functions
1525 * @{
1526 */
1527
1528uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1529uint32_t LL_EXTI_DeInit(void);
1530void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1531
1532
1533/**
1534 * @}
1535 */
1536#endif /* USE_FULL_LL_DRIVER */
1537
1538/**
1539 * @}
1540 */
1541
1542/**
1543 * @}
1544 */
1545
1546#endif /* EXTI */
1547
1548/**
1549 * @}
1550 */
1551
1552#ifdef __cplusplus
1553}
1554#endif
1555
1556#endif /* STM32G0xx_LL_EXTI_H */
1557
Note: See TracBrowser for help on using the repository browser.