kosmos/source/firmware/arch/stm32f4xx/board/stm32f4-discovery/include/stm32f4-discovery.h

267 lines
4.9 KiB
C
Executable File

/*! \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 <stddef.h>
#include <stdint.h>
#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,
};
#ifdef TEST_APP
static const struct driver uart_1 = {
#else
const struct driver uart_1 = {
#endif
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
};
#ifdef TEST_APP
static const struct driver led_3 = {
#else
const struct driver led_3 = {
#endif
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
};
#ifdef TEST_APP
static const struct driver led_4 = {
#else
const struct driver led_4 = {
#endif
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
};
#ifdef TEST_APP
static const struct driver led_5 = {
#else
const struct driver led_5 = {
#endif
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
};
#ifdef TEST_APP
static const struct driver led_6 = {
#else
const struct driver led_6 = {
#endif
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_ */