]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / CORTEX_M4F_STM32F407ZG-SK / board / iar_stm32f407zg_sk.h
1 /**\r
2   ******************************************************************************\r
3   * @file    iar_stm32f407zg_sk.h\r
4   * @brief   This file contains definitions for Leds, push-buttons\r
5   *          and COM ports hardware resources.\r
6   ******************************************************************************\r
7   * @copy\r
8   *\r
9   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
10   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
11   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
12   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
13   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
14   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
15   *\r
16   * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>\r
17   */ \r
18   \r
19 /* Define to prevent recursive inclusion -------------------------------------*/\r
20 #ifndef __IAR_STM32F407ZG_SK_H\r
21 #define __IAR_STM32F407ZG_SK_H\r
22 \r
23 #ifdef __cplusplus\r
24  extern "C" {\r
25 #endif\r
26 \r
27 /* Includes ------------------------------------------------------------------*/\r
28 #include "stm32f4xx.h"\r
29    \r
30 typedef enum \r
31 {\r
32   LED1 = 0,\r
33   LED2 = 1,\r
34   LED3 = 2,\r
35   LED4 = 3\r
36 } Led_TypeDef;\r
37 \r
38 typedef enum \r
39 {  \r
40   BUTTON_WAKEUP = 0,\r
41   BUTTON_TAMPER = 1,\r
42   BUTTON_USER = 2,\r
43   BUTTON_RIGHT = 3,\r
44   BUTTON_LEFT = 4,\r
45   BUTTON_UP = 5,\r
46   BUTTON_DOWN = 6,\r
47   BUTTON_SEL = 7\r
48 } Button_TypeDef;\r
49 \r
50 typedef enum \r
51 {  \r
52   BUTTON_MODE_GPIO = 0,\r
53   BUTTON_MODE_EXTI = 1\r
54 } ButtonMode_TypeDef;\r
55 \r
56 typedef enum \r
57 {\r
58   COM1 = 0,\r
59   COM2 = 1\r
60 } COM_TypeDef;   \r
61 \r
62 #define LEDn                             4\r
63 \r
64 #define LED1_PIN                         GPIO_Pin_6\r
65 #define LED1_GPIO_PORT                   GPIOF\r
66 #define LED1_GPIO_CLK                    RCC_AHB1Periph_GPIOF  \r
67   \r
68 #define LED2_PIN                         GPIO_Pin_7\r
69 #define LED2_GPIO_PORT                   GPIOF\r
70 #define LED2_GPIO_CLK                    RCC_AHB1Periph_GPIOF  \r
71   \r
72 #define LED3_PIN                         GPIO_Pin_8\r
73 #define LED3_GPIO_PORT                   GPIOF\r
74 #define LED3_GPIO_CLK                    RCC_AHB1Periph_GPIOF  \r
75   \r
76 #define LED4_PIN                         GPIO_Pin_9\r
77 #define LED4_GPIO_PORT                   GPIOF\r
78 #define LED4_GPIO_CLK                    RCC_AHB1Periph_GPIOF\r
79 \r
80 /**\r
81   * @}\r
82   */ \r
83   \r
84 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_BUTTON\r
85   * @{\r
86   */  \r
87 #define BUTTONn                          8 /**/\r
88 \r
89 /**\r
90  * @brief Wakeup push-button\r
91  */\r
92 #define WAKEUP_BUTTON_PIN                GPIO_Pin_0\r
93 #define WAKEUP_BUTTON_GPIO_PORT          GPIOA\r
94 #define WAKEUP_BUTTON_GPIO_CLK           RCC_AHB1Periph_GPIOA\r
95 #define WAKEUP_BUTTON_EXTI_LINE          EXTI_Line0\r
96 #define WAKEUP_BUTTON_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOA\r
97 #define WAKEUP_BUTTON_EXTI_PIN_SOURCE    EXTI_PinSource0\r
98 #define WAKEUP_BUTTON_EXTI_IRQn          EXTI0_IRQn \r
99 \r
100 /**\r
101  * @brief Tamper push-button\r
102  */\r
103 #define TAMPER_BUTTON_PIN                GPIO_Pin_13\r
104 #define TAMPER_BUTTON_GPIO_PORT          GPIOC\r
105 #define TAMPER_BUTTON_GPIO_CLK           RCC_AHB1Periph_GPIOC\r
106 #define TAMPER_BUTTON_EXTI_LINE          EXTI_Line13\r
107 #define TAMPER_BUTTON_EXTI_PORT_SOURCE   EXTI_PortSourceGPIOC\r
108 #define TAMPER_BUTTON_EXTI_PIN_SOURCE    EXTI_PinSource13\r
109 #define TAMPER_BUTTON_EXTI_IRQn          EXTI15_10_IRQn \r
110 \r
111 /**\r
112  * @brief Key push-button\r
113  */\r
114 #define USER_BUTTON_PIN                   GPIO_Pin_6\r
115 #define USER_BUTTON_GPIO_PORT             GPIOG\r
116 #define USER_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOG\r
117 #define USER_BUTTON_EXTI_LINE             EXTI_Line6\r
118 #define USER_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOG\r
119 #define USER_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource6\r
120 #define USER_BUTTON_EXTI_IRQn             EXTI9_5_IRQn\r
121 /**\r
122  * @brief Joystick Right\r
123  */\r
124 #define RIGHT_BUTTON_PIN                   GPIO_Pin_3\r
125 #define RIGHT_BUTTON_GPIO_PORT             GPIOC\r
126 #define RIGHT_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOC\r
127 #define RIGHT_BUTTON_EXTI_LINE             EXTI_Line3\r
128 #define RIGHT_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOC\r
129 #define RIGHT_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource3\r
130 #define RIGHT_BUTTON_EXTI_IRQn             EXTI3_IRQn\r
131 /**\r
132  * @brief Joystick Left\r
133  */\r
134 #define LEFT_BUTTON_PIN                   GPIO_Pin_11\r
135 #define LEFT_BUTTON_GPIO_PORT             GPIOG\r
136 #define LEFT_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOG\r
137 #define LEFT_BUTTON_EXTI_LINE             EXTI_Line11\r
138 #define LEFT_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOG\r
139 #define LEFT_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource11\r
140 #define LEFT_BUTTON_EXTI_IRQn             EXTI15_10_IRQn\r
141 /**\r
142  * @brief Joystick Up\r
143  */\r
144 #define UP_BUTTON_PIN                   GPIO_Pin_7\r
145 #define UP_BUTTON_GPIO_PORT             GPIOG\r
146 #define UP_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOG\r
147 #define UP_BUTTON_EXTI_LINE             EXTI_Line7\r
148 #define UP_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOG\r
149 #define UP_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource7\r
150 #define UP_BUTTON_EXTI_IRQn             EXTI9_5_IRQn\r
151 /**\r
152  * @brief Joystick Down\r
153  */\r
154 #define DOWN_BUTTON_PIN                   GPIO_Pin_8\r
155 #define DOWN_BUTTON_GPIO_PORT             GPIOG\r
156 #define DOWN_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOG\r
157 #define DOWN_BUTTON_EXTI_LINE             EXTI_Line8\r
158 #define DOWN_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOG\r
159 #define DOWN_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource8\r
160 #define DOWN_BUTTON_EXTI_IRQn             EXTI9_5_IRQn\r
161 /**\r
162  * @brief Joystick Sel\r
163  */\r
164 #define SEL_BUTTON_PIN                   GPIO_Pin_15\r
165 #define SEL_BUTTON_GPIO_PORT             GPIOG\r
166 #define SEL_BUTTON_GPIO_CLK              RCC_AHB1Periph_GPIOG\r
167 #define SEL_BUTTON_EXTI_LINE             EXTI_Line15\r
168 #define SEL_BUTTON_EXTI_PORT_SOURCE      EXTI_PortSourceGPIOG\r
169 #define SEL_BUTTON_EXTI_PIN_SOURCE       EXTI_PinSource15\r
170 #define SEL_BUTTON_EXTI_IRQn             EXTI15_10_IRQn\r
171 \r
172 \r
173 /**\r
174   * @}\r
175   */ \r
176 \r
177 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_COM\r
178   * @{\r
179   */\r
180 #define COMn                             2\r
181 \r
182 /**\r
183  * @brief Definition for COM port1, connected to USART6\r
184  */ \r
185 #define EVAL_COM1                        USART6\r
186 #define EVAL_COM1_CLK                    RCC_APB2Periph_USART6\r
187 #define EVAL_COM1_TX_PIN                 GPIO_Pin_6\r
188 #define EVAL_COM1_TX_GPIO_PORT           GPIOC\r
189 #define EVAL_COM1_TX_GPIO_CLK            RCC_AHB1Periph_GPIOC\r
190 #define EVAL_COM1_TX_SOURCE              GPIO_PinSource6\r
191 #define EVAL_COM1_TX_AF                  GPIO_AF_USART6\r
192 #define EVAL_COM1_RX_PIN                 GPIO_Pin_9\r
193 #define EVAL_COM1_RX_GPIO_PORT           GPIOG\r
194 #define EVAL_COM1_RX_GPIO_CLK            RCC_AHB1Periph_GPIOG\r
195 #define EVAL_COM1_RX_SOURCE              GPIO_PinSource9\r
196 #define EVAL_COM1_RX_AF                  GPIO_AF_USART6\r
197 #define EVAL_COM1_IRQn                   USART6_IRQn\r
198 \r
199 /**\r
200  * @brief Definition for COM port2, connected to USART3\r
201  */ \r
202 #define EVAL_COM2                        USART3\r
203 #define EVAL_COM2_CLK                    RCC_APB1Periph_USART3\r
204 #define EVAL_COM2_TX_PIN                 GPIO_Pin_8\r
205 #define EVAL_COM2_TX_GPIO_PORT           GPIOD\r
206 #define EVAL_COM2_TX_GPIO_CLK            RCC_AHB1Periph_GPIOD\r
207 #define EVAL_COM2_TX_SOURCE              GPIO_PinSource8\r
208 #define EVAL_COM2_TX_AF                  GPIO_AF_USART3\r
209 #define EVAL_COM2_RX_PIN                 GPIO_Pin_9\r
210 #define EVAL_COM2_RX_GPIO_PORT           GPIOD\r
211 #define EVAL_COM2_RX_GPIO_CLK            RCC_AHB1Periph_GPIOD\r
212 #define EVAL_COM2_RX_SOURCE              GPIO_PinSource9\r
213 #define EVAL_COM2_RX_AF                  GPIO_AF_USART3\r
214 #define EVAL_COM2_RTS_PIN                GPIO_Pin_12\r
215 #define EVAL_COM2_RTS_GPIO_PORT          GPIOD\r
216 #define EVAL_COM2_RTS_GPIO_CLK           RCC_AHB1Periph_GPIOD\r
217 #define EVAL_COM2_RTS_SOURCE             GPIO_PinSource12\r
218 #define EVAL_COM2_RTS_AF                 GPIO_AF_USART3\r
219 #define EVAL_COM2_CTS_PIN                GPIO_Pin_11\r
220 #define EVAL_COM2_CTS_GPIO_PORT          GPIOD\r
221 #define EVAL_COM2_CTS_GPIO_CLK           RCC_AHB1Periph_GPIOD\r
222 #define EVAL_COM2_CTS_SOURCE             GPIO_PinSource11\r
223 #define EVAL_COM2_CTS_AF                 GPIO_AF_USART3\r
224 #define EVAL_COM2_IRQn                   USART3_IRQn\r
225 \r
226 /**\r
227   * @BUZZER\r
228   */ \r
229 #define BUZZER_GPIO_PIN                  GPIO_Pin_10\r
230 #define BUZZER_GPIO_PORT                 GPIOA\r
231 #define BUZZER_GPIO_CLK                  RCC_AHB1Periph_GPIOA\r
232 #define BUZZER_PIN_SOURCE                GPIO_PinSource10\r
233 #define BUZZER_TIM                       TIM1\r
234 #define RCC_APB2PERIPH_BUZZER_TIM        RCC_APB2Periph_TIM1\r
235 #define BUZZER_PIN_AF                    GPIO_AF_TIM1\r
236 \r
237 /**\r
238   * @USB OTG\r
239   */ \r
240 #define OTG_FS_VBUS_PIN                    GPIO_Pin_9\r
241 #define OTG_FS_VBUS_PORT                   GPIOA\r
242 #define OTG_FS_VBUS_CLK                    RCC_AHB1Periph_GPIOA\r
243 #define OTG_FS_VBUS_SOURCE                 GPIO_PinSource9\r
244 \r
245 #define USB_FS_VBUSON_PIN                  GPIO_Pin_2\r
246 #define USB_FS_VBUSON_PORT                 GPIOC\r
247 #define USB_FS_VBUSON_CLK                  RCC_AHB1Periph_GPIOC\r
248 #define USB_FS_VBUSON_SOURCE               GPIO_PinSource2\r
249 \r
250 #define USB_FS_FAULT_PIN                   GPIO_Pin_10\r
251 #define USB_FS_FAULT_PORT                  GPIOB\r
252 #define USB_FS_FAULT_CLK                   RCC_AHB1Periph_GPIOB\r
253 #define USB_FS_FAULT_SOURCE                GPIO_PinSource10\r
254 \r
255 /**\r
256   * @USB HOST\r
257   */ \r
258 #define OTG_HS_VBUS_PIN                    GPIO_Pin_13\r
259 #define OTG_HS_VBUS_PORT                   GPIOB\r
260 #define OTG_HS_VBUS_CLK                    RCC_AHB1Periph_GPIOB\r
261 #define OTG_HS_VBUS_SOURCE                 GPIO_PinSource13\r
262 \r
263 #define USB_HS_VBUSON_PIN                  GPIO_Pin_3\r
264 #define USB_HS_VBUSON_PORT                 GPIOE\r
265 #define USB_HS_VBUSON_CLK                  RCC_AHB1Periph_GPIOE\r
266 #define USB_HS_VBUSON_SOURCE               GPIO_PinSource3\r
267 \r
268 #define USB_HS_FAULT_PIN                   GPIO_Pin_13\r
269 #define USB_HS_FAULT_PORT                  GPIOD\r
270 #define USB_HS_FAULT_CLK                   RCC_AHB1Periph_GPIOD\r
271 #define USB_HS_FAULT_SOURCE                GPIO_PinSource13\r
272 \r
273 #define OTG_HS_ID_PIN                      GPIO_Pin_12\r
274 #define OTG_HS_ID_PORT                     GPIOB\r
275 #define OTG_HS_ID_CLK                      RCC_AHB1Periph_GPIOB\r
276 #define OTG_HS_ID_SOURCE                   GPIO_PinSource12\r
277 \r
278 /**\r
279   * @TRIMER\r
280   */ \r
281 #define TRIMER_PIN                      GPIO_Pin_0\r
282 #define TRIMER_PORT                     GPIOC\r
283 #define TRIMER_CLK                      RCC_AHB1Periph_GPIOC\r
284 #define TRIMER_SOURCE                   GPIO_PinSource0\r
285 #define TRIMER_CHANNEL                  ADC_Channel_10\r
286 \r
287 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_SD_FLASH\r
288   * @{\r
289   */ \r
290 /**\r
291   * @SD\r
292   */ \r
293 #define SD_CP_PIN                       GPIO_Pin_3\r
294 #define SD_CP_PORT                      GPIOD\r
295 #define SD_CP_CLK                       RCC_AHB1Periph_GPIOD\r
296 #define SD_CP_SOURCE                    GPIO_PinSource3\r
297 \r
298 #define SD_WP_PIN                       GPIO_Pin_4\r
299 #define SD_WP_PORT                      GPIOE\r
300 #define SD_WP_CLK                       RCC_AHB1Periph_GPIOE\r
301 #define SD_WP_SOURCE                    GPIO_PinSource4\r
302 \r
303 #define SD_CMD_PIN                      GPIO_Pin_2\r
304 #define SD_CMD_PORT                     GPIOD\r
305 #define SD_CMD_CLK                      RCC_AHB1Periph_GPIOD\r
306 #define SD_CMD_SOURCE                   GPIO_PinSource2\r
307 \r
308 #define SD_D0_PIN                       GPIO_Pin_8\r
309 #define SD_D0_PORT                      GPIOC\r
310 #define SD_D0_CLK                       RCC_AHB1Periph_GPIOC\r
311 #define SD_D0_SOURCE                    GPIO_PinSource8\r
312 \r
313 #define SD_D1_PIN                       GPIO_Pin_9\r
314 #define SD_D1_PORT                      GPIOC\r
315 #define SD_D1_CLK                       RCC_AHB1Periph_GPIOC\r
316 #define SD_D1_SOURCE                    GPIO_PinSource9\r
317 \r
318 #define SD_D2_PIN                       GPIO_Pin_10\r
319 #define SD_D2_PORT                      GPIOC\r
320 #define SD_D2_CLK                       RCC_AHB1Periph_GPIOC\r
321 #define SD_D2_SOURCE                    GPIO_PinSource10\r
322 \r
323 #define SD_D3_PIN                       GPIO_Pin_11\r
324 #define SD_D3_PORT                      GPIOC\r
325 #define SD_D3_CLK                       RCC_AHB1Periph_GPIOC\r
326 #define SD_D3_SOURCE                    GPIO_PinSource11\r
327 \r
328 #define SD_CLK_PIN                      GPIO_Pin_12\r
329 #define SD_CLK_PORT                     GPIOC\r
330 #define SD_CLK_CLK                      RCC_AHB1Periph_GPIOC\r
331 #define SD_CLK_SOURCE                   GPIO_PinSource12\r
332 /**\r
333   * @brief  SD FLASH SDIO Interface\r
334   */ \r
335 #define SD_SDIO_DMA_STREAM3               3\r
336 //#define SD_SDIO_DMA_STREAM6           6\r
337 \r
338 #ifdef SD_SDIO_DMA_STREAM3\r
339  #define SD_SDIO_DMA_STREAM            DMA2_Stream3\r
340  #define SD_SDIO_DMA_CHANNEL           DMA_Channel_4\r
341  #define SD_SDIO_DMA_FLAG_FEIF         DMA_FLAG_FEIF3\r
342  #define SD_SDIO_DMA_FLAG_DMEIF        DMA_FLAG_DMEIF3\r
343  #define SD_SDIO_DMA_FLAG_TEIF         DMA_FLAG_TEIF3\r
344  #define SD_SDIO_DMA_FLAG_HTIF         DMA_FLAG_HTIF3\r
345  #define SD_SDIO_DMA_FLAG_TCIF         DMA_FLAG_TCIF3 \r
346 #elif defined SD_SDIO_DMA_STREAM6\r
347  #define SD_SDIO_DMA_STREAM            DMA2_Stream6\r
348  #define SD_SDIO_DMA_CHANNEL           DMA_Channel_4\r
349  #define SD_SDIO_DMA_FLAG_FEIF         DMA_FLAG_FEIF6\r
350  #define SD_SDIO_DMA_FLAG_DMEIF        DMA_FLAG_DMEIF6\r
351  #define SD_SDIO_DMA_FLAG_TEIF         DMA_FLAG_TEIF6\r
352  #define SD_SDIO_DMA_FLAG_HTIF         DMA_FLAG_HTIF6\r
353  #define SD_SDIO_DMA_FLAG_TCIF         DMA_FLAG_TCIF6 \r
354 #endif /* SD_SDIO_DMA_STREAM3 */\r
355 \r
356 /**\r
357   * @}\r
358   */ \r
359   \r
360 /**\r
361   * @CAN\r
362   */ \r
363 #define CAN_TX_PIN                      GPIO_Pin_9\r
364 #define CAN_TX_PORT                     GPIOB\r
365 #define CAN_TX_CLK                      RCC_AHB1Periph_GPIOB\r
366 #define CAN_TX_AF                       GPIO_AF_CAN1\r
367 #define CAN_TX_SOURCE                   GPIO_PinSource9\r
368 \r
369 #define CAN_RX_PIN                      GPIO_Pin_8\r
370 #define CAN_RX_PORT                     GPIOB\r
371 #define CAN_RX_CLK                      RCC_AHB1Periph_GPIOB\r
372 #define CAN_RX_AF                       GPIO_AF_CAN1\r
373 #define CAN_RX_SOURCE                   GPIO_PinSource8\r
374 \r
375 #define CAN_CTRL_PIN                    GPIO_Pin_6\r
376 #define CAN_CTRL_PORT                   GPIOD\r
377 #define CAN_CTRL_CLK                    RCC_AHB1Periph_GPIOD\r
378 #define CAN_CTRL_SOURCE                 GPIO_PinSource6\r
379 \r
380 /**\r
381   * @}\r
382   */  \r
383 /**\r
384   * @}\r
385   */ \r
386   \r
387 /** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Macros\r
388   * @{\r
389   */  \r
390 /**\r
391   * @}\r
392   */ \r
393 \r
394 \r
395 /** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Functions\r
396   * @{\r
397   */\r
398 void STM_EVAL_LEDInit(Led_TypeDef Led);\r
399 void STM_EVAL_LEDOn(Led_TypeDef Led);\r
400 void STM_EVAL_LEDOff(Led_TypeDef Led);\r
401 void STM_EVAL_LEDToggle(Led_TypeDef Led);\r
402 void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);\r
403 uint32_t STM_EVAL_PBGetState(Button_TypeDef Button);\r
404 void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct); \r
405 /**\r
406   * @}\r
407   */\r
408   \r
409 #ifdef __cplusplus\r
410 }\r
411 #endif\r
412 \r
413 #endif /* __IAR_STM32F407ZG_SK_H */\r
414 /**\r
415   * @}\r
416   */ \r
417 \r
418 /**\r
419   * @}\r
420   */ \r
421 \r
422 /**\r
423   * @}\r
424   */\r
425 \r
426 /**\r
427   * @}\r
428   */  \r
429 \r
430 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r