/*! \file stm32f4-discovery.h * \author tkl * \date Mai 7, 2012 * \brief Header file of the board definition for the STM32F4-Discovery board. */ #ifndef BSP_STM32F4_DISCOVERY_H_ #define BSP_STM32F4_DISCOVERY_H_ #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ #include #include #include "driver.h" #include "gpio.h" #include "timer.h" #include "uart.h" #include "ringbuffer.h" #include "sys_tick.h" #include "stm32f4xx.h" #include "stm32f4_gpio.h" #include "stm32f4_uart.h" #include "stm32_sys_tick.h" // SYSTEM TICK static const enum stm32_sys_tick_time_base stm23_sys_tick_time_base = STM32_SYS_TICK_TIME_BASE_MS; static const struct stm32_sys_tick stm32_sys_tick = { &stm23_sys_tick_time_base, NULL, NULL }; static const struct loki_timer timer_1 = { (void*)&stm32_sys_tick, &timer_fp }; static char console_linear_buffer[80]; static struct ringbuffer console_buffer = { console_linear_buffer, console_linear_buffer, console_linear_buffer, sizeof(console_linear_buffer), 0 }; static const GPIO_InitTypeDef stm32f4_discovery_uart1_gpio = { GPIO_Pin_6 | GPIO_Pin_7, GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_UP }; static const USART_InitTypeDef stm32f4_discovery_uart1_usart_init = { 115200, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, USART_Mode_Tx | USART_Mode_Rx, USART_HardwareFlowControl_None, }; static const NVIC_InitTypeDef stm32f4_discovery_uart1_nvic_init = { USART1_IRQn, 0, 0, ENABLE, }; static const struct stm32f4_uart stm32f4_uart1 = { &stm32f4_discovery_uart1_gpio, GPIOB, GPIO_PinSource7, GPIO_PinSource6, &stm32f4_discovery_uart1_usart_init, USART1, USART_IT_RXNE /* | USART_IT_TXE*/, &stm32f4_discovery_uart1_nvic_init, }; static const struct uart __uart_1 = { &stm32f4_uart1, &stm32f4_uart_fp, &console_buffer, }; const struct driver uart_1 = { DRIVER_TYPE_UART, &__uart_1, }; // LED 3 static const GPIO_InitTypeDef stm32_f4_discovery_led_3_gpio = { GPIO_Pin_12, GPIO_Mode_OUT, GPIO_Speed_100MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL }; static const struct stm32f4_gpio stm32_f4_discovery_led_3 = { GPIOD, &stm32_f4_discovery_led_3_gpio, NULL, NULL, NULL, NULL }; static const struct gpio __led_3 = { (void*)&stm32_f4_discovery_led_3, &gpio_fp }; const struct driver led_3 = { DRIVER_TYPE_GPIO, &__led_3, }; // LED 4 static const GPIO_InitTypeDef stm32_f4_discovery_led_4_gpio = { GPIO_Pin_13, GPIO_Mode_OUT, GPIO_Speed_100MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL }; static const struct stm32f4_gpio stm32_f4_discovery_led_4 = { GPIOD, &stm32_f4_discovery_led_4_gpio, NULL, NULL, NULL, NULL }; static const struct gpio __led_4 = { (void*)&stm32_f4_discovery_led_4, &gpio_fp }; const struct driver led_4 = { DRIVER_TYPE_GPIO, &__led_4, }; // LED 5 static const GPIO_InitTypeDef stm32_f4_discovery_led_5_gpio = { GPIO_Pin_14, GPIO_Mode_OUT, GPIO_Speed_100MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL }; static const struct stm32f4_gpio stm32_f4_discovery_led_5 = { GPIOD, &stm32_f4_discovery_led_5_gpio, NULL, NULL, NULL, NULL }; static const struct gpio __led_5 = { (void*)&stm32_f4_discovery_led_5, &gpio_fp }; static const struct driver led_5 = { DRIVER_TYPE_GPIO, &__led_5, }; // LED 6 static const GPIO_InitTypeDef stm32_f4_discovery_led_6_gpio = { GPIO_Pin_15, GPIO_Mode_OUT, GPIO_Speed_100MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL }; static const struct stm32f4_gpio stm32_f4_discovery_led_6 = { GPIOD, &stm32_f4_discovery_led_6_gpio, NULL, NULL, NULL, NULL }; static const struct gpio __led_6 = { (void*)&stm32_f4_discovery_led_6, &gpio_fp }; const struct driver led_6 = { DRIVER_TYPE_GPIO, &__led_6, }; // BUTTON static const GPIO_InitTypeDef stm32_f4_discovery_user_button_gpio = { GPIO_Pin_0, GPIO_Mode_IN, GPIO_Speed_100MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL }; static const EXTI_InitTypeDef stm32_f4_discovery_user_button_exti = { EXTI_Line0, EXTI_Mode_Interrupt, EXTI_Trigger_Rising_Falling, ENABLE }; static const NVIC_InitTypeDef stm32_f4_discovery_user_button_nvic = { EXTI0_IRQn, 0x0F, 0x0F, ENABLE }; static const struct stm32f4_gpio stm32_f4_discovery_user_button = { GPIOA, &stm32_f4_discovery_user_button_gpio, &stm32_f4_discovery_user_button_exti, &stm32_f4_discovery_user_button_nvic, NULL, NULL }; static const struct gpio user_button = { (void*)&stm32_f4_discovery_user_button, &gpio_fp }; //! \brief Setup the hardware of the stm32f4-discovery board. void board_init(void); #endif /* BSP_STM32F4_DISCOVERY_H_ */