1 /** 2 ****************************************************************************** 3 * @file stm32f10x_exti.h 4 * @author MCD Application Team 5 * @version V3.4.0 6 * @date 10/15/2010 7 * @brief This file contains all the functions prototypes for the EXTI firmware 8 * library. 9 ****************************************************************************** 10 * @copy 11 * 12 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE 14 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY 15 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING 16 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE 17 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 18 * 19 * <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2> 20 */ 21 22 /* Define to prevent recursive inclusion -------------------------------------*/ 23 #ifndef __STM32F10x_EXTI_H 24 #define __STM32F10x_EXTI_H 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 /* Includes ------------------------------------------------------------------*/ 31 #include "stm32f10x.h" 32 33 /** @addtogroup STM32F10x_StdPeriph_Driver 34 * @{ 35 */ 36 37 /** @addtogroup EXTI 38 * @{ 39 */ 40 41 /** @defgroup EXTI_Exported_Types 42 * @{ 43 */ 44 45 /** 46 * @brief EXTI mode enumeration 47 */ 48 49 typedef enum 50 { 51 EXTI_Mode_Interrupt = 0x00, 52 EXTI_Mode_Event = 0x04 53 }EXTIMode_TypeDef; 54 55 #define IS_EXTI_MODE(MODE) (((MODE) == EXTI_Mode_Interrupt) || ((MODE) == EXTI_Mode_Event)) 56 57 /** 58 * @brief EXTI Trigger enumeration 59 */ 60 61 typedef enum 62 { 63 EXTI_Trigger_Rising = 0x08, 64 EXTI_Trigger_Falling = 0x0C, 65 EXTI_Trigger_Rising_Falling = 0x10 66 }EXTITrigger_TypeDef; 67 68 #define IS_EXTI_TRIGGER(TRIGGER) (((TRIGGER) == EXTI_Trigger_Rising) || \ 69 ((TRIGGER) == EXTI_Trigger_Falling) || \ 70 ((TRIGGER) == EXTI_Trigger_Rising_Falling)) 71 /** 72 * @brief EXTI Init Structure definition 73 */ 74 75 typedef struct 76 { 77 uint32_t EXTI_Line; /*!< Specifies the EXTI lines to be enabled or disabled. 78 This parameter can be any combination of @ref EXTI_Lines */ 79 80 EXTIMode_TypeDef EXTI_Mode; /*!< Specifies the mode for the EXTI lines. 81 This parameter can be a value of @ref EXTIMode_TypeDef */ 82 83 EXTITrigger_TypeDef EXTI_Trigger; /*!< Specifies the trigger signal active edge for the EXTI lines. 84 This parameter can be a value of @ref EXTIMode_TypeDef */ 85 86 FunctionalState EXTI_LineCmd; /*!< Specifies the new state of the selected EXTI lines. 87 This parameter can be set either to ENABLE or DISABLE */ 88 }EXTI_InitTypeDef; 89 90 /** 91 * @} 92 */ 93 94 /** @defgroup EXTI_Exported_Constants 95 * @{ 96 */ 97 98 /** @defgroup EXTI_Lines 99 * @{ 100 */ 101 102 #define EXTI_Line0 ((uint32_t)0x00001) /*!< External interrupt line 0 */ 103 #define EXTI_Line1 ((uint32_t)0x00002) /*!< External interrupt line 1 */ 104 #define EXTI_Line2 ((uint32_t)0x00004) /*!< External interrupt line 2 */ 105 #define EXTI_Line3 ((uint32_t)0x00008) /*!< External interrupt line 3 */ 106 #define EXTI_Line4 ((uint32_t)0x00010) /*!< External interrupt line 4 */ 107 #define EXTI_Line5 ((uint32_t)0x00020) /*!< External interrupt line 5 */ 108 #define EXTI_Line6 ((uint32_t)0x00040) /*!< External interrupt line 6 */ 109 #define EXTI_Line7 ((uint32_t)0x00080) /*!< External interrupt line 7 */ 110 #define EXTI_Line8 ((uint32_t)0x00100) /*!< External interrupt line 8 */ 111 #define EXTI_Line9 ((uint32_t)0x00200) /*!< External interrupt line 9 */ 112 #define EXTI_Line10 ((uint32_t)0x00400) /*!< External interrupt line 10 */ 113 #define EXTI_Line11 ((uint32_t)0x00800) /*!< External interrupt line 11 */ 114 #define EXTI_Line12 ((uint32_t)0x01000) /*!< External interrupt line 12 */ 115 #define EXTI_Line13 ((uint32_t)0x02000) /*!< External interrupt line 13 */ 116 #define EXTI_Line14 ((uint32_t)0x04000) /*!< External interrupt line 14 */ 117 #define EXTI_Line15 ((uint32_t)0x08000) /*!< External interrupt line 15 */ 118 #define EXTI_Line16 ((uint32_t)0x10000) /*!< External interrupt line 16 Connected to the PVD Output */ 119 #define EXTI_Line17 ((uint32_t)0x20000) /*!< External interrupt line 17 Connected to the RTC Alarm event */ 120 #define EXTI_Line18 ((uint32_t)0x40000) /*!< External interrupt line 18 Connected to the USB Device/USB OTG FS 121 Wakeup from suspend event */ 122 #define EXTI_Line19 ((uint32_t)0x80000) /*!< External interrupt line 19 Connected to the Ethernet Wakeup event */ 123 124 #define IS_EXTI_LINE(LINE) ((((LINE) & (uint32_t)0xFFF00000) == 0x00) && ((LINE) != (uint16_t)0x00)) 125 #define IS_GET_EXTI_LINE(LINE) (((LINE) == EXTI_Line0) || ((LINE) == EXTI_Line1) || \ 126 ((LINE) == EXTI_Line2) || ((LINE) == EXTI_Line3) || \ 127 ((LINE) == EXTI_Line4) || ((LINE) == EXTI_Line5) || \ 128 ((LINE) == EXTI_Line6) || ((LINE) == EXTI_Line7) || \ 129 ((LINE) == EXTI_Line8) || ((LINE) == EXTI_Line9) || \ 130 ((LINE) == EXTI_Line10) || ((LINE) == EXTI_Line11) || \ 131 ((LINE) == EXTI_Line12) || ((LINE) == EXTI_Line13) || \ 132 ((LINE) == EXTI_Line14) || ((LINE) == EXTI_Line15) || \ 133 ((LINE) == EXTI_Line16) || ((LINE) == EXTI_Line17) || \ 134 ((LINE) == EXTI_Line18) || ((LINE) == EXTI_Line19)) 135 136 137 /** 138 * @} 139 */ 140 141 /** 142 * @} 143 */ 144 145 /** @defgroup EXTI_Exported_Macros 146 * @{ 147 */ 148 149 /** 150 * @} 151 */ 152 153 /** @defgroup EXTI_Exported_Functions 154 * @{ 155 */ 156 157 void EXTI_DeInit(void); 158 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); 159 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct); 160 void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); 161 FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line); 162 void EXTI_ClearFlag(uint32_t EXTI_Line); 163 ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); 164 void EXTI_ClearITPendingBit(uint32_t EXTI_Line); 165 166 #ifdef __cplusplus 167 } 168 #endif 169 170 #endif /* __STM32F10x_EXTI_H */ 171 /** 172 * @} 173 */ 174 175 /** 176 * @} 177 */ 178 179 /** 180 * @} 181 */ 182 183 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/ 184