|
|
|
#include <libopencm3/stm32/gpio.h>
|
|
|
|
|
|
|
|
#include <gpio.h>
|
|
|
|
|
|
|
|
int gpio_init(void)
|
|
|
|
{
|
|
|
|
/* Set up GPIOs for SPI 1 */
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO4);
|
|
|
|
gpio_set(GPIOA, GPIO4);
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO5 | GPIO6 | GPIO7);
|
|
|
|
gpio_set_af(GPIOA, GPIO_AF0, GPIO5 | GPIO6 | GPIO7);
|
|
|
|
|
|
|
|
/* Set up GPIOs for user console (USART 1) */
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO9 | GPIO10);
|
|
|
|
gpio_set_af(GPIOA, GPIO_AF1, GPIO9 | GPIO10);
|
|
|
|
|
|
|
|
/* Set up GPIOs for admin console (USART 2) */
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2 | GPIO3);
|
|
|
|
gpio_set_af(GPIOA, GPIO_AF1, GPIO2 | GPIO3);
|
|
|
|
|
|
|
|
/* Set up GPIOs for reset. */
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO1);
|
|
|
|
gpio_set_output_options(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_25MHZ, GPIO1);
|
|
|
|
|
|
|
|
/* Set up GPIOs for timers */
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8);
|
|
|
|
gpio_set_af(GPIOA, GPIO_AF2, GPIO8);
|
|
|
|
|
|
|
|
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO1);
|
|
|
|
gpio_set_af(GPIOA, GPIO_AF2, GPIO1);
|
|
|
|
|
|
|
|
gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO4);
|
|
|
|
gpio_set_af(GPIOB, GPIO_AF1, GPIO4);
|
|
|
|
|
|
|
|
gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO1);
|
|
|
|
gpio_set_af(GPIOB, GPIO_AF2, GPIO1);
|
|
|
|
|
|
|
|
gpio_mode_setup(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO8);
|
|
|
|
gpio_set(GPIOC, GPIO8);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void gpio_cleanup(void)
|
|
|
|
{
|
|
|
|
}
|