My Project
Loading...
Searching...
No Matches
stm32f3xx_ll_exti.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef __STM32F3xx_LL_EXTI_H
21#define __STM32F3xx_LL_EXTI_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32f3xx.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)
57typedef struct
58{
59
60 uint32_t Line_0_31;
62#if defined(EXTI_32_63_SUPPORT)
63
64 uint32_t Line_32_63;
66#endif
67
68 FunctionalState LineCommand;
71 uint8_t Mode;
74 uint8_t Trigger;
76} LL_EXTI_InitTypeDef;
77
81#endif /*USE_FULL_LL_DRIVER*/
82
83/* Exported constants --------------------------------------------------------*/
91#define LL_EXTI_LINE_0 EXTI_IMR_IM0
92#define LL_EXTI_LINE_1 EXTI_IMR_IM1
93#define LL_EXTI_LINE_2 EXTI_IMR_IM2
94#define LL_EXTI_LINE_3 EXTI_IMR_IM3
95#define LL_EXTI_LINE_4 EXTI_IMR_IM4
96#define LL_EXTI_LINE_5 EXTI_IMR_IM5
97#define LL_EXTI_LINE_6 EXTI_IMR_IM6
98#define LL_EXTI_LINE_7 EXTI_IMR_IM7
99#define LL_EXTI_LINE_8 EXTI_IMR_IM8
100#define LL_EXTI_LINE_9 EXTI_IMR_IM9
101#define LL_EXTI_LINE_10 EXTI_IMR_IM10
102#define LL_EXTI_LINE_11 EXTI_IMR_IM11
103#define LL_EXTI_LINE_12 EXTI_IMR_IM12
104#define LL_EXTI_LINE_13 EXTI_IMR_IM13
105#define LL_EXTI_LINE_14 EXTI_IMR_IM14
106#define LL_EXTI_LINE_15 EXTI_IMR_IM15
107#if defined(EXTI_IMR_IM16)
108#define LL_EXTI_LINE_16 EXTI_IMR_IM16
109#endif
110#define LL_EXTI_LINE_17 EXTI_IMR_IM17
111#if defined(EXTI_IMR_IM18)
112#define LL_EXTI_LINE_18 EXTI_IMR_IM18
113#endif
114#define LL_EXTI_LINE_19 EXTI_IMR_IM19
115#if defined(EXTI_IMR_IM20)
116#define LL_EXTI_LINE_20 EXTI_IMR_IM20
117#endif
118#if defined(EXTI_IMR_IM21)
119#define LL_EXTI_LINE_21 EXTI_IMR_IM21
120#endif
121#if defined(EXTI_IMR_IM22)
122#define LL_EXTI_LINE_22 EXTI_IMR_IM22
123#endif
124#define LL_EXTI_LINE_23 EXTI_IMR_IM23
125#if defined(EXTI_IMR_IM24)
126#define LL_EXTI_LINE_24 EXTI_IMR_IM24
127#endif
128#if defined(EXTI_IMR_IM25)
129#define LL_EXTI_LINE_25 EXTI_IMR_IM25
130#endif
131#if defined(EXTI_IMR_IM26)
132#define LL_EXTI_LINE_26 EXTI_IMR_IM26
133#endif
134#if defined(EXTI_IMR_IM27)
135#define LL_EXTI_LINE_27 EXTI_IMR_IM27
136#endif
137#if defined(EXTI_IMR_IM28)
138#define LL_EXTI_LINE_28 EXTI_IMR_IM28
139#endif
140#if defined(EXTI_IMR_IM29)
141#define LL_EXTI_LINE_29 EXTI_IMR_IM29
142#endif
143#if defined(EXTI_IMR_IM30)
144#define LL_EXTI_LINE_30 EXTI_IMR_IM30
145#endif
146#if defined(EXTI_IMR_IM31)
147#define LL_EXTI_LINE_31 EXTI_IMR_IM31
148#endif
149#define LL_EXTI_LINE_ALL_0_31 EXTI_IMR_IM
151#if defined(EXTI_32_63_SUPPORT)
152#define LL_EXTI_LINE_32 EXTI_IMR2_IM32
153#if defined(EXTI_IMR2_IM33)
154#define LL_EXTI_LINE_33 EXTI_IMR2_IM33
155#endif
156#if defined(EXTI_IMR2_IM34)
157#define LL_EXTI_LINE_34 EXTI_IMR2_IM34
158#endif
159#if defined(EXTI_IMR2_IM35)
160#define LL_EXTI_LINE_35 EXTI_IMR2_IM35
161#endif
162#if defined(EXTI_IMR2_IM36)
163#define LL_EXTI_LINE_36 EXTI_IMR2_IM36
164#endif
165#if defined(EXTI_IMR2_IM37)
166#define LL_EXTI_LINE_37 EXTI_IMR2_IM37
167#endif
168#if defined(EXTI_IMR2_IM38)
169#define LL_EXTI_LINE_38 EXTI_IMR2_IM38
170#endif
171#if defined(EXTI_IMR2_IM39)
172#define LL_EXTI_LINE_39 EXTI_IMR2_IM39
173#endif
174#if defined(EXTI_IMR2_IM40)
175#define LL_EXTI_LINE_40 EXTI_IMR2_IM40
176#endif
177#define LL_EXTI_LINE_ALL_32_63 EXTI_IMR2_IM
179#endif
180
181#define LL_EXTI_LINE_ALL (0xFFFFFFFFU)
183#if defined(USE_FULL_LL_DRIVER)
184#define LL_EXTI_LINE_NONE (0x00000000U)
185#endif /*USE_FULL_LL_DRIVER*/
186
190#if defined(USE_FULL_LL_DRIVER)
191
195#define LL_EXTI_MODE_IT ((uint8_t)0x00U)
196#define LL_EXTI_MODE_EVENT ((uint8_t)0x01U)
197#define LL_EXTI_MODE_IT_EVENT ((uint8_t)0x02U)
205#define LL_EXTI_TRIGGER_NONE ((uint8_t)0x00U)
206#define LL_EXTI_TRIGGER_RISING ((uint8_t)0x01U)
207#define LL_EXTI_TRIGGER_FALLING ((uint8_t)0x02U)
208#define LL_EXTI_TRIGGER_RISING_FALLING ((uint8_t)0x03U)
215#endif /*USE_FULL_LL_DRIVER*/
216
217
222/* Exported macro ------------------------------------------------------------*/
237#define LL_EXTI_WriteReg(__REG__, __VALUE__) WRITE_REG(EXTI->__REG__, (__VALUE__))
238
244#define LL_EXTI_ReadReg(__REG__) READ_REG(EXTI->__REG__)
256/* Exported functions --------------------------------------------------------*/
307__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
308{
309 SET_BIT(EXTI->IMR, ExtiLine);
310}
311#if defined(EXTI_32_63_SUPPORT)
330__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
331{
332 SET_BIT(EXTI->IMR2, ExtiLine);
333}
334#endif
335
379__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
380{
381 CLEAR_BIT(EXTI->IMR, ExtiLine);
382}
383
384#if defined(EXTI_32_63_SUPPORT)
403__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
404{
405 CLEAR_BIT(EXTI->IMR2, ExtiLine);
406}
407#endif
408
452__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
453{
454 return (READ_BIT(EXTI->IMR, ExtiLine) == (ExtiLine));
455}
456
457#if defined(EXTI_32_63_SUPPORT)
476__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
477{
478 return (READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine));
479}
480#endif
481
530__STATIC_INLINE void LL_EXTI_EnableEvent_0_31(uint32_t ExtiLine)
531{
532 SET_BIT(EXTI->EMR, ExtiLine);
533
534}
535
536#if defined(EXTI_32_63_SUPPORT)
552__STATIC_INLINE void LL_EXTI_EnableEvent_32_63(uint32_t ExtiLine)
553{
554 SET_BIT(EXTI->EMR2, ExtiLine);
555}
556#endif
557
598__STATIC_INLINE void LL_EXTI_DisableEvent_0_31(uint32_t ExtiLine)
599{
600 CLEAR_BIT(EXTI->EMR, ExtiLine);
601}
602
603#if defined(EXTI_32_63_SUPPORT)
619__STATIC_INLINE void LL_EXTI_DisableEvent_32_63(uint32_t ExtiLine)
620{
621 CLEAR_BIT(EXTI->EMR2, ExtiLine);
622}
623#endif
624
665__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_0_31(uint32_t ExtiLine)
666{
667 return (READ_BIT(EXTI->EMR, ExtiLine) == (ExtiLine));
668
669}
670
671#if defined(EXTI_32_63_SUPPORT)
687__STATIC_INLINE uint32_t LL_EXTI_IsEnabledEvent_32_63(uint32_t ExtiLine)
688{
689 return (READ_BIT(EXTI->EMR2, ExtiLine) == (ExtiLine));
690}
691#endif
692
740__STATIC_INLINE void LL_EXTI_EnableRisingTrig_0_31(uint32_t ExtiLine)
741{
742 SET_BIT(EXTI->RTSR, ExtiLine);
743
744}
745
746#if defined(EXTI_32_63_SUPPORT)
763__STATIC_INLINE void LL_EXTI_EnableRisingTrig_32_63(uint32_t ExtiLine)
764{
765 SET_BIT(EXTI->RTSR2, ExtiLine);
766}
767#endif
768
808__STATIC_INLINE void LL_EXTI_DisableRisingTrig_0_31(uint32_t ExtiLine)
809{
810 CLEAR_BIT(EXTI->RTSR, ExtiLine);
811
812}
813
814#if defined(EXTI_32_63_SUPPORT)
832__STATIC_INLINE void LL_EXTI_DisableRisingTrig_32_63(uint32_t ExtiLine)
833{
834 CLEAR_BIT(EXTI->RTSR2, ExtiLine);
835}
836#endif
837
870__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_0_31(uint32_t ExtiLine)
871{
872 return (READ_BIT(EXTI->RTSR, ExtiLine) == (ExtiLine));
873}
874
875#if defined(EXTI_32_63_SUPPORT)
886__STATIC_INLINE uint32_t LL_EXTI_IsEnabledRisingTrig_32_63(uint32_t ExtiLine)
887{
888 return (READ_BIT(EXTI->RTSR2, ExtiLine) == (ExtiLine));
889}
890#endif
891
939__STATIC_INLINE void LL_EXTI_EnableFallingTrig_0_31(uint32_t ExtiLine)
940{
941 SET_BIT(EXTI->FTSR, ExtiLine);
942}
943
944#if defined(EXTI_32_63_SUPPORT)
962__STATIC_INLINE void LL_EXTI_EnableFallingTrig_32_63(uint32_t ExtiLine)
963{
964 SET_BIT(EXTI->FTSR2, ExtiLine);
965}
966#endif
967
1006__STATIC_INLINE void LL_EXTI_DisableFallingTrig_0_31(uint32_t ExtiLine)
1007{
1008 CLEAR_BIT(EXTI->FTSR, ExtiLine);
1009}
1010
1011#if defined(EXTI_32_63_SUPPORT)
1028__STATIC_INLINE void LL_EXTI_DisableFallingTrig_32_63(uint32_t ExtiLine)
1029{
1030 CLEAR_BIT(EXTI->FTSR2, ExtiLine);
1031}
1032#endif
1033
1066__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_0_31(uint32_t ExtiLine)
1067{
1068 return (READ_BIT(EXTI->FTSR, ExtiLine) == (ExtiLine));
1069}
1070
1071#if defined(EXTI_32_63_SUPPORT)
1082__STATIC_INLINE uint32_t LL_EXTI_IsEnabledFallingTrig_32_63(uint32_t ExtiLine)
1083{
1084 return (READ_BIT(EXTI->FTSR2, ExtiLine) == (ExtiLine));
1085}
1086#endif
1087
1133__STATIC_INLINE void LL_EXTI_GenerateSWI_0_31(uint32_t ExtiLine)
1134{
1135 SET_BIT(EXTI->SWIER, ExtiLine);
1136}
1137
1138#if defined(EXTI_32_63_SUPPORT)
1154__STATIC_INLINE void LL_EXTI_GenerateSWI_32_63(uint32_t ExtiLine)
1155{
1156 SET_BIT(EXTI->SWIER2, ExtiLine);
1157}
1158#endif
1159
1202__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_0_31(uint32_t ExtiLine)
1203{
1204 return (READ_BIT(EXTI->PR, ExtiLine) == (ExtiLine));
1205}
1206
1207#if defined(EXTI_32_63_SUPPORT)
1220__STATIC_INLINE uint32_t LL_EXTI_IsActiveFlag_32_63(uint32_t ExtiLine)
1221{
1222 return (READ_BIT(EXTI->PR2, ExtiLine) == (ExtiLine));
1223}
1224#endif
1225
1260__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_0_31(uint32_t ExtiLine)
1261{
1262 return (uint32_t)(READ_BIT(EXTI->PR, ExtiLine));
1263}
1264
1265#if defined(EXTI_32_63_SUPPORT)
1266
1279__STATIC_INLINE uint32_t LL_EXTI_ReadFlag_32_63(uint32_t ExtiLine)
1280{
1281 return (uint32_t)(READ_BIT(EXTI->PR2, ExtiLine));
1282}
1283#endif
1284
1319__STATIC_INLINE void LL_EXTI_ClearFlag_0_31(uint32_t ExtiLine)
1320{
1321 WRITE_REG(EXTI->PR, ExtiLine);
1322}
1323
1324#if defined(EXTI_32_63_SUPPORT)
1337__STATIC_INLINE void LL_EXTI_ClearFlag_32_63(uint32_t ExtiLine)
1338{
1339 WRITE_REG(EXTI->PR2, ExtiLine);
1340}
1341#endif
1342
1347#if defined(USE_FULL_LL_DRIVER)
1352uint32_t LL_EXTI_Init(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1353uint32_t LL_EXTI_DeInit(void);
1354void LL_EXTI_StructInit(LL_EXTI_InitTypeDef *EXTI_InitStruct);
1355
1356
1360#endif /* USE_FULL_LL_DRIVER */
1361
1370#endif /* EXTI */
1371
1376#ifdef __cplusplus
1377}
1378#endif
1379
1380#endif /* __STM32F3xx_LL_EXTI_H */
1381
#define __STATIC_INLINE
Definition: cmsis_armcc.h:59
#define CLEAR_BIT(REG, BIT)
Definition: stm32f3xx.h:192
#define SET_BIT(REG, BIT)
Definition: stm32f3xx.h:190
#define WRITE_REG(REG, VAL)
Definition: stm32f3xx.h:198
#define READ_BIT(REG, BIT)
Definition: stm32f3xx.h:194
FunctionalState
Definition: stm32f3xx.h:170
#define EXTI
Definition: stm32f303xe.h:952
CMSIS STM32F3xx Device Peripheral Access Layer Header File.