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
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
16 * <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2>
\r
19 /* Define to prevent recursive inclusion -------------------------------------*/
\r
20 #ifndef __IAR_STM32F407ZG_SK_H
\r
21 #define __IAR_STM32F407ZG_SK_H
\r
27 /* Includes ------------------------------------------------------------------*/
\r
28 #include "stm32f4xx.h"
\r
52 BUTTON_MODE_GPIO = 0,
\r
53 BUTTON_MODE_EXTI = 1
\r
54 } ButtonMode_TypeDef;
\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
68 #define LED2_PIN GPIO_Pin_7
\r
69 #define LED2_GPIO_PORT GPIOF
\r
70 #define LED2_GPIO_CLK RCC_AHB1Periph_GPIOF
\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
76 #define LED4_PIN GPIO_Pin_9
\r
77 #define LED4_GPIO_PORT GPIOF
\r
78 #define LED4_GPIO_CLK RCC_AHB1Periph_GPIOF
\r
84 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_BUTTON
\r
87 #define BUTTONn 8 /**/
\r
90 * @brief Wakeup push-button
\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
101 * @brief Tamper push-button
\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
112 * @brief Key push-button
\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
122 * @brief Joystick Right
\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
132 * @brief Joystick Left
\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
142 * @brief Joystick Up
\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
152 * @brief Joystick Down
\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
162 * @brief Joystick Sel
\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
177 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_COM
\r
183 * @brief Definition for COM port1, connected to USART6
\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
200 * @brief Definition for COM port2, connected to USART3
\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
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
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
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
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
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
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
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
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
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
287 /** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_SD_FLASH
\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
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
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
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
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
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
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
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
333 * @brief SD FLASH SDIO Interface
\r
335 #define SD_SDIO_DMA_STREAM3 3
\r
336 //#define SD_SDIO_DMA_STREAM6 6
\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
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
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
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
387 /** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Macros
\r
395 /** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Functions
\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
413 #endif /* __IAR_STM32F407ZG_SK_H */
\r
430 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
\r