STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_ll_exti.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef __STM32L4xx_LL_EXTI_H
22 #define __STM32L4xx_LL_EXTI_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx.h"
30 
35 #if defined (EXTI)
36 
41 /* Private types -------------------------------------------------------------*/
42 /* Private variables ---------------------------------------------------------*/
43 /* Private constants ---------------------------------------------------------*/
44 /* Private Macros ------------------------------------------------------------*/
45 #if defined(USE_FULL_LL_DRIVER)
46 
52 #endif /*USE_FULL_LL_DRIVER*/
53 /* Exported types ------------------------------------------------------------*/
54 #if defined(USE_FULL_LL_DRIVER)
55 
58 typedef struct
59 {
60 
61  uint32_t Line_0_31;
64  uint32_t Line_32_63;
67  FunctionalState LineCommand;
70  uint8_t Mode;
73  uint8_t Trigger;
76 
80 #endif /*USE_FULL_LL_DRIVER*/
81 
82 /* Exported constants --------------------------------------------------------*/
90 #define LL_EXTI_LINE_0 EXTI_IMR1_IM0
91 #define LL_EXTI_LINE_1 EXTI_IMR1_IM1
92 #define LL_EXTI_LINE_2 EXTI_IMR1_IM2
93 #define LL_EXTI_LINE_3 EXTI_IMR1_IM3
94 #define LL_EXTI_LINE_4 EXTI_IMR1_IM4
95 #define LL_EXTI_LINE_5 EXTI_IMR1_IM5
96 #define LL_EXTI_LINE_6 EXTI_IMR1_IM6
97 #define LL_EXTI_LINE_7 EXTI_IMR1_IM7
98 #define LL_EXTI_LINE_8 EXTI_IMR1_IM8
99 #define LL_EXTI_LINE_9 EXTI_IMR1_IM9
100 #define LL_EXTI_LINE_10 EXTI_IMR1_IM10
101 #define LL_EXTI_LINE_11 EXTI_IMR1_IM11
102 #define LL_EXTI_LINE_12 EXTI_IMR1_IM12
103 #define LL_EXTI_LINE_13 EXTI_IMR1_IM13
104 #define LL_EXTI_LINE_14 EXTI_IMR1_IM14
105 #define LL_EXTI_LINE_15 EXTI_IMR1_IM15
106 #if defined(EXTI_IMR1_IM16)
107 #define LL_EXTI_LINE_16 EXTI_IMR1_IM16
108 #endif
109 #define LL_EXTI_LINE_17 EXTI_IMR1_IM17
110 #if defined(EXTI_IMR1_IM18)
111 #define LL_EXTI_LINE_18 EXTI_IMR1_IM18
112 #endif
113 #define LL_EXTI_LINE_19 EXTI_IMR1_IM19
114 #if defined(EXTI_IMR1_IM20)
115 #define LL_EXTI_LINE_20 EXTI_IMR1_IM20
116 #endif
117 #if defined(EXTI_IMR1_IM21)
118 #define LL_EXTI_LINE_21 EXTI_IMR1_IM21
119 #endif
120 #if defined(EXTI_IMR1_IM22)
121 #define LL_EXTI_LINE_22 EXTI_IMR1_IM22
122 #endif
123 #define LL_EXTI_LINE_23 EXTI_IMR1_IM23
124 #if defined(EXTI_IMR1_IM24)
125 #define LL_EXTI_LINE_24 EXTI_IMR1_IM24
126 #endif
127 #if defined(EXTI_IMR1_IM25)
128 #define LL_EXTI_LINE_25 EXTI_IMR1_IM25
129 #endif
130 #if defined(EXTI_IMR1_IM26)
131 #define LL_EXTI_LINE_26 EXTI_IMR1_IM26
132 #endif
133 #if defined(EXTI_IMR1_IM27)
134 #define LL_EXTI_LINE_27 EXTI_IMR1_IM27
135 #endif
136 #if defined(EXTI_IMR1_IM28)
137 #define LL_EXTI_LINE_28 EXTI_IMR1_IM28
138 #endif
139 #if defined(EXTI_IMR1_IM29)
140 #define LL_EXTI_LINE_29 EXTI_IMR1_IM29
141 #endif
142 #if defined(EXTI_IMR1_IM30)
143 #define LL_EXTI_LINE_30 EXTI_IMR1_IM30
144 #endif
145 #if defined(EXTI_IMR1_IM31)
146 #define LL_EXTI_LINE_31 EXTI_IMR1_IM31
147 #endif
148 #define LL_EXTI_LINE_ALL_0_31 EXTI_IMR1_IM
150 #define LL_EXTI_LINE_32 EXTI_IMR2_IM32
151 #if defined(EXTI_IMR2_IM33)
152 #define LL_EXTI_LINE_33 EXTI_IMR2_IM33
153 #endif
154 #if defined(EXTI_IMR2_IM34)
155 #define LL_EXTI_LINE_34 EXTI_IMR2_IM34
156 #endif
157 #if defined(EXTI_IMR2_IM35)
158 #define LL_EXTI_LINE_35 EXTI_IMR2_IM35
159 #endif
160 #if defined(EXTI_IMR2_IM36)
161 #define LL_EXTI_LINE_36 EXTI_IMR2_IM36
162 #endif
163 #if defined(EXTI_IMR2_IM37)
164 #define LL_EXTI_LINE_37 EXTI_IMR2_IM37
165 #endif
166 #if defined(EXTI_IMR2_IM38)
167 #define LL_EXTI_LINE_38 EXTI_IMR2_IM38
168 #endif
169 #if defined(EXTI_IMR2_IM39)
170 #define LL_EXTI_LINE_39 EXTI_IMR2_IM39
171 #endif
172 #if defined(EXTI_IMR2_IM40)
173 #define LL_EXTI_LINE_40 EXTI_IMR2_IM40
174 #endif
175 #define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM
178 #define LL_EXTI_LINE_ALL (0xFFFFFFFFU)
180 #if defined(USE_FULL_LL_DRIVER)
181 #define LL_EXTI_LINE_NONE (0x00000000U)
182 #endif /*USE_FULL_LL_DRIVER*/
183 
189 #if defined(USE_FULL_LL_DRIVER)
190 
194 #define LL_EXTI_MODE_IT ((uint8_t)0x00U)
195 #define LL_EXTI_MODE_EVENT ((uint8_t)0x01U)
196 #define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U)
204 #define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U)
205 #define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U)
206 #define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U)
207 #define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U)
214 #endif /*USE_FULL_LL_DRIVER*/
215 
216 
221 /* Exported macro ------------------------------------------------------------*/
236 #define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
237 
243 #define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
244 
255 /* Exported functions --------------------------------------------------------*/
306 __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
307 {
308  SET_BIT(EXTI->IMR1, ExtiLine);
309 }
330 __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
331 {
332  SET_BIT(EXTI->IMR2, ExtiLine);
333 }
334 
378 __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
379 {
380  CLEAR_BIT(EXTI->IMR1, ExtiLine);
381 }
382 
403 __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
404 {
405  CLEAR_BIT(EXTI->IMR2, ExtiLine);
406 }
407 
451 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
452 {
453  return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
454 }
455 
476 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
477 {
478  return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
479 }
480 
529 __STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
530 {
531  SET_BIT(EXTI->EMR1, ExtiLine);
532 
533 }
534 
552 __STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
553 {
554  SET_BIT(EXTI->EMR2, ExtiLine);
555 }
556 
597 __STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
598 {
599  CLEAR_BIT(EXTI->EMR1, ExtiLine);
600 }
601 
619 __STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
620 {
621  CLEAR_BIT(EXTI->EMR2, ExtiLine);
622 }
623 
664 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
665 {
666  return ((READ_BIT(EXTI->EMR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
667 
668 }
669 
687 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
688 {
689  return ((READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
690 }
691 
739 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
740 {
741  SET_BIT(EXTI->RTSR1, ExtiLine);
742 
743 }
744 
761 __STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
762 {
763  SET_BIT(EXTI->RTSR2, ExtiLine);
764 }
765 
805 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
806 {
807  CLEAR_BIT(EXTI->RTSR1, ExtiLine);
808 
809 }
810 
828 __STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
829 {
830  CLEAR_BIT(EXTI->RTSR2, ExtiLine);
831 }
832 
865 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
866 {
867  return ((READ_BIT(EXTI->RTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
868 }
869 
880 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
881 {
882  return ((READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
883 }
884 
932 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
933 {
934  SET_BIT(EXTI->FTSR1, ExtiLine);
935 }
936 
954 __STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
955 {
956  SET_BIT(EXTI->FTSR2, ExtiLine);
957 }
958 
997 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
998 {
999  CLEAR_BIT(EXTI->FTSR1, ExtiLine);
1000 }
1001 
1018 __STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
1019 {
1020  CLEAR_BIT(EXTI->FTSR2, ExtiLine);
1021 }
1022 
1055 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
1056 {
1057  return ((READ_BIT(EXTI->FTSR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1058 }
1059 
1070 __STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
1071 {
1072  return ((READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1073 }
1074 
1120 __STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
1121 {
1122  SET_BIT(EXTI->SWIER1, ExtiLine);
1123 }
1124 
1140 __STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
1141 {
1142  SET_BIT(EXTI->SWIER2, ExtiLine);
1143 }
1144 
1187 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
1188 {
1189  return ((READ_BIT(EXTI->PR1, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1190 }
1191 
1204 __STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
1205 {
1206  return ((READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine)) ? 1UL : 0UL);
1207 }
1208 
1243 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
1244 {
1245  return (uint32_t)(READ_BIT(EXTI->PR1, ExtiLine));
1246 }
1247 
1260 __STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
1261 {
1262  return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine));
1263 }
1264 
1299 __STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
1300 {
1301  WRITE_REG(EXTI->PR1, ExtiLine);
1302 }
1303 
1316 __STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
1317 {
1318  WRITE_REG(EXTI->PR2, ExtiLine);
1319 }
1320 
1321 
1326 #if defined(USE_FULL_LL_DRIVER)
1327 
1331 uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1332 uint32_t LL_EXTI_DeInit(void);
1333 void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1334 
1335 
1339 #endif /* USE_FULL_LL_DRIVER */
1340 
1349 #endif /* EXTI */
1350 
1355 #ifdef __cplusplus
1356 }
1357 #endif
1358 
1359 #endif /* __STM32L4xx_LL_EXTI_H */
1360 
1361 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
Indicate if ExtiLine Event request is enabled for Lines in range 32 to 63 EMR2 EMx LL_EXTI_IsEnabled...
__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
Disable ExtiLine Event request for Lines in range 0 to 31 EMR1 EMx LL_EXTI_DisableEvent_0_31.
__STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
Disable ExtiLine Rising Edge Trigger for Lines in range 32 to 63.
__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_DisableEvent_32_63(uint32_t ExtiLine)
Disable ExtiLine Event request for Lines in range 32 to 63 EMR2 EMx LL_EXTI_DisableEvent_32_63.
__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
Enable ExtiLine Rising Edge Trigger for Lines in range 0 to 31.
uint32_t LL_EXTI_DeInit(void)
De-initialize the EXTI registers to their default reset values.
__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 EMR1 EMx LL_EXTI_IsEnabledE...
__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
Read ExtLine Combination Flag for Lines in range 32 to 63.
__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_32_63(uint32_t ExtiLine)
Check if the ExtLine Flag is set or not for Lines in range 32 to 63.
__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 void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
Disable ExtiLine Falling Edge Trigger for Lines in range 32 to 63.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
Check if falling edge trigger is enabled for Lines in range 32 to 63 FTSR2 FTx LL_EXTI_IsEnabledFall...
__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.
uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct)
Initialize the EXTI registers according to the specified parameters in EXTI_InitStruct.
__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
Enable ExtiLine Event request for Lines in range 0 to 31 EMR1 EMx LL_EXTI_EnableEvent_0_31.
__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 uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
Indicate if ExtiLine Interrupt request is enabled for Lines in range 32 to 63.
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
Check if rising edge trigger is enabled for Lines in range 32 to 63 RTSR2 RTx LL_EXTI_IsEnabledRisin...
__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
Disable ExtiLine Interrupt request for Lines in range 0 to 31.
__STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
Generate a software Interrupt Event for Lines in range 32 to 63.
__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
Enable ExtiLine Interrupt request 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.
__STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
Enable ExtiLine Event request for Lines in range 32 to 63 EMR2 EMx LL_EXTI_EnableEvent_32_63.
__STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
Enable ExtiLine Falling Edge Trigger for Lines in range 32 to 63.
__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 RTSR1 RTx LL_EXTI_IsEnabledRising...
__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 uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
Check if falling edge trigger is enabled for Lines in range 0 to 31 FTSR1 FTx LL_EXTI_IsEnabledFalli...
__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
Enable ExtiLine Interrupt request for Lines in range 32 to 63.
__STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
Enable ExtiLine Rising Edge Trigger for Lines in range 32 to 63.
FunctionalState LineCommand
__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
Disable ExtiLine Interrupt request for Lines in range 32 to 63.
void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct)
Set each LL_EXTI_InitTypeDef field to default value.
__STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
Clear ExtLine Flags for Lines in range 32 to 63.