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