Files @ f94ab6abb81d
Branch filter:

Location: therm-ng/src/gpio.c

Ethan Zonca
Initial import
//
// GPIO: configure general-purpose inputs/outputs
//

#include "stm32f3xx_hal.h"

#include "gpio.h"


// Initialize GPIOs
void gpio_init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;

	// GPIO Ports Clock Enable
	__GPIOA_CLK_ENABLE();
	__GPIOB_CLK_ENABLE();
	__GPIOF_CLK_ENABLE();


	// Configure LED GPIO pins
	GPIO_InitStruct.Pin = LED_PIN;
	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);


	GPIO_InitStruct.Pin = SW_A_Pin|SW_B_Pin|SW_C_Pin|SW_D_Pin;
	GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
	GPIO_InitStruct.Pull = GPIO_PULLUP;
	HAL_GPIO_Init(SW_C_GPIO_Port, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = SW_BTN_Pin;
	GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
	GPIO_InitStruct.Pull = GPIO_PULLUP;
	HAL_GPIO_Init(SW_BTN_GPIO_Port, &GPIO_InitStruct);


	/* EXTI interrupt init*/
	HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
	HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);

	HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
	HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

	// Define startup State
	HAL_GPIO_WritePin(LED, 0);

}