STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_ll_exti.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef __STM32F4xx_LL_EXTI_H
21 #define __STM32F4xx_LL_EXTI_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx.h"
29 
34 #if defined (EXTI)
35 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /* Private constants ---------------------------------------------------------*/
43 /* Private Macros ------------------------------------------------------------*/
44 #if defined(USE_FULL_LL_DRIVER)
51 #endif /*USE_FULL_LL_DRIVER*/
52 /* Exported types ------------------------------------------------------------*/
53 #if defined(USE_FULL_LL_DRIVER)
57 typedef struct
58 {
59 
60  uint32_t Line_0_31;
63  FunctionalState LineCommand;
66  uint8_t Mode;
69  uint8_t Trigger;
72 
76 #endif /*USE_FULL_LL_DRIVER*/
77 
78 /* Exported constants --------------------------------------------------------*/
86 #define LL_EXTI_LINE_0 EXTI_IMR_IM0
87 #define LL_EXTI_LINE_1 EXTI_IMR_IM1
88 #define LL_EXTI_LINE_2 EXTI_IMR_IM2
89 #define LL_EXTI_LINE_3 EXTI_IMR_IM3
90 #define LL_EXTI_LINE_4 EXTI_IMR_IM4
91 #define LL_EXTI_LINE_5 EXTI_IMR_IM5
92 #define LL_EXTI_LINE_6 EXTI_IMR_IM6
93 #define LL_EXTI_LINE_7 EXTI_IMR_IM7
94 #define LL_EXTI_LINE_8 EXTI_IMR_IM8
95 #define LL_EXTI_LINE_9 EXTI_IMR_IM9
96 #define LL_EXTI_LINE_10 EXTI_IMR_IM10
97 #define LL_EXTI_LINE_11 EXTI_IMR_IM11
98 #define LL_EXTI_LINE_12 EXTI_IMR_IM12
99 #define LL_EXTI_LINE_13 EXTI_IMR_IM13
100 #define LL_EXTI_LINE_14 EXTI_IMR_IM14
101 #define LL_EXTI_LINE_15 EXTI_IMR_IM15
102 #if defined(EXTI_IMR_IM16)
103 #define LL_EXTI_LINE_16 EXTI_IMR_IM16
104 #endif
105 #define LL_EXTI_LINE_17 EXTI_IMR_IM17
106 #if defined(EXTI_IMR_IM18)
107 #define LL_EXTI_LINE_18 EXTI_IMR_IM18
108 #endif
109 #define LL_EXTI_LINE_19 EXTI_IMR_IM19
110 #if defined(EXTI_IMR_IM20)
111 #define LL_EXTI_LINE_20 EXTI_IMR_IM20
112 #endif
113 #if defined(EXTI_IMR_IM21)
114 #define LL_EXTI_LINE_21 EXTI_IMR_IM21
115 #endif
116 #if defined(EXTI_IMR_IM22)
117 #define LL_EXTI_LINE_22 EXTI_IMR_IM22
118 #endif
119 #if defined(EXTI_IMR_IM23)
120 #define LL_EXTI_LINE_23 EXTI_IMR_IM23
121 #endif
122 #if defined(EXTI_IMR_IM24)
123 #define LL_EXTI_LINE_24 EXTI_IMR_IM24
124 #endif
125 #if defined(EXTI_IMR_IM25)
126 #define LL_EXTI_LINE_25 EXTI_IMR_IM25
127 #endif
128 #if defined(EXTI_IMR_IM26)
129 #define LL_EXTI_LINE_26 EXTI_IMR_IM26
130 #endif
131 #if defined(EXTI_IMR_IM27)
132 #define LL_EXTI_LINE_27 EXTI_IMR_IM27
133 #endif
134 #if defined(EXTI_IMR_IM28)
135 #define LL_EXTI_LINE_28 EXTI_IMR_IM28
136 #endif
137 #if defined(EXTI_IMR_IM29)
138 #define LL_EXTI_LINE_29 EXTI_IMR_IM29
139 #endif
140 #if defined(EXTI_IMR_IM30)
141 #define LL_EXTI_LINE_30 EXTI_IMR_IM30
142 #endif
143 #if defined(EXTI_IMR_IM31)
144 #define LL_EXTI_LINE_31 EXTI_IMR_IM31
145 #endif
146 #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM
149 #define LL_EXTI_LINE_ALL ((uint32_t)0xFFFFFFFFU)
151 #if defined(USE_FULL_LL_DRIVER)
152 #define LL_EXTI_LINE_NONE ((uint32_t)0x00000000U)
153 #endif /*USE_FULL_LL_DRIVER*/
154 
158 #if defined(USE_FULL_LL_DRIVER)
159 
163 #define LL_EXTI_MODE_IT ((uint8_t)0x00U)
164 #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U)
165 #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U)
173 #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U)
174 #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U)
175 #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U)
176 #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U)
183 #endif /*USE_FULL_LL_DRIVER*/
184 
185 
190 /* Exported macro ------------------------------------------------------------*/
205 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
206 
212 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
224 /* Exported functions --------------------------------------------------------*/
268 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
269 {
270  SET_BIT(EXTI->IMR, ExtiLine);
271 }
272 
309 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
310 {
311  CLEAR_BIT(EXTI->IMR, ExtiLine);
312 }
313 
314 
351 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
352 {
353  return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
354 }
355 
356 
398 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
399 {
400  SET_BIT(EXTI->EMR, ExtiLine);
401 
402 }
403 
404 
438 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
439 {
440  CLEAR_BIT(EXTI->EMR, ExtiLine);
441 }
442 
443 
477 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
478 {
479  return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
480 
481 }
482 
483 
529 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
530 {
531  SET_BIT(EXTI->RTSR, ExtiLine);
532 
533 }
534 
535 
573 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
574 {
575  CLEAR_BIT(EXTI->RTSR, ExtiLine);
576 
577 }
578 
579 
610 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
611 {
612  return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
613 }
614 
615 
661 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
662 {
663  SET_BIT(EXTI->FTSR, ExtiLine);
664 }
665 
666 
703 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
704 {
705  CLEAR_BIT(EXTI->FTSR, ExtiLine);
706 }
707 
708 
739 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
740 {
741  return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
742 }
743 
744 
788 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
789 {
790  SET_BIT(EXTI->SWIER, ExtiLine);
791 }
792 
793 
834 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
835 {
836  return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
837 }
838 
839 
872 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
873 {
874  return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
875 }
876 
877 
910 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
911 {
912  WRITE_REG(EXTI->PR, ExtiLine);
913 }
914 
915 
920 #if defined(USE_FULL_LL_DRIVER)
925 uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
926 uint32_t LL_EXTI_DeInit(void);
927 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
928 
929 
933 #endif /* USE_FULL_LL_DRIVER */
934 
943 #endif /* EXTI */
944 
949 #ifdef __cplusplus
950 }
951 #endif
952 
953 #endif /* __STM32F4xx_LL_EXTI_H */
954 
__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
Enable ExtiLine Event request for Lines in range 0 to 31 @rmtoll EMR EMx LL_EXTI_EnableEvent_0_31.
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
Indicate if ExtiLine Event request is enabled for Lines in range 0 to 31 @rmtoll EMR EMx LL_EXTI_IsEn...
__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
Disable ExtiLine Event request for Lines in range 0 to 31 @rmtoll EMR EMx LL_EXTI_DisableEvent_0_31.
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
Check if falling edge trigger is enabled for Lines in range 0 to 31 @rmtoll FTSR FTx LL_EXTI_IsEnable...
__STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
Disable ExtiLine Falling Edge Trigger for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
Enable ExtiLine Falling Edge Trigger for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
Clear ExtLine Flags for Lines in range 0 to 31.
__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
Check if the ExtLine Flag is set or not for Lines in range 0 to 31.
__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
Read ExtLine Combination Flag for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
Enable ExtiLine Interrupt request for Lines in range 0 to 31.
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
Indicate if ExtiLine Interrupt request is enabled for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
Disable ExtiLine Interrupt request for Lines in range 0 to 31.
uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct)
Initialize the EXTI registers according to the specified parameters in EXTI_InitStruct.
uint32_t LL_EXTI_DeInit(void)
De-initialize the EXTI registers to their default reset values.
void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct)
Set each LL_EXTI_InitTypeDef field to default value.
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
Check if rising edge trigger is enabled for Lines in range 0 to 31 @rmtoll RTSR RTx LL_EXTI_IsEnabled...
__STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
Disable ExtiLine Rising Edge Trigger for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
Generate a software Interrupt Event for Lines in range 0 to 31.
FunctionalState LineCommand