diff --git a/src/gpio.c b/src/gpio.c --- a/src/gpio.c +++ b/src/gpio.c @@ -32,8 +32,22 @@ void gpio_init(void) GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GATE_DRIVE_GPIO_Port, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = SW_A_Pin|SW_BTN_Pin|SW_C_Pin|SW_D_Pin + |SW_B_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; + GPIO_InitStruct.Pull = GPIO_PULLUP; + HAL_GPIO_Init(GPIOA, &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_RED, 1); - HAL_GPIO_WritePin(GATE_DRIVE, 1); + HAL_GPIO_WritePin(LED_RED, 0); + HAL_GPIO_WritePin(GATE_DRIVE, 0); }