// // 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); }