#ifndef __HAL_GPIO_H
#define __HAL_GPIO_H

#include "stm32f4xx.h"

#define HAL_GPIO_BEEP_PORT GPIOF
#define HAL_GPIO_BEEP_PIN  GPIO_Pin_8
// #define HAL_GPIO_LED0_PORT   GPIOF
// #define HAL_GPIO_LED0_PIN    GPIO_Pin_9
#define HAL_GPIO_LED1_PORT   GPIOF
#define HAL_GPIO_LED1_PIN    GPIO_Pin_10
#define HAL_GPIO_KEY_UP_PORT GPIOA
#define HAL_GPIO_KEY_UP_PIN  GPIO_Pin_0
#define HAL_GPIO_KEY0_PORT   GPIOE
#define HAL_GPIO_KEY0_PIN    GPIO_Pin_4
#define HAL_GPIO_KEY1_PORT   GPIOE
#define HAL_GPIO_KEY1_PIN    GPIO_Pin_3
#define HAL_GPIO_KEY2_PORT   GPIOE
#define HAL_GPIO_KEY2_PIN    GPIO_Pin_2

// #define HAL_GPIO_LED0(on_off)      ((on_off == 0) ? (GPIO_ResetBits(HAL_GPIO_LED0_PORT, HAL_GPIO_LED0_PIN)) : (GPIO_SetBits(HAL_GPIO_LED0_PORT, HAL_GPIO_LED0_PIN)))
#define HAL_GPIO_LED1(on_off)      ((on_off == 0) ? (GPIO_ResetBits(HAL_GPIO_LED1_PORT, HAL_GPIO_LED1_PIN)) : (GPIO_SetBits(HAL_GPIO_LED1_PORT, HAL_GPIO_LED1_PIN)))
#define HAL_GPIO_BEEP(beep_status) ((beep_status == 0) ? (GPIO_ResetBits(HAL_GPIO_BEEP_PORT, HAL_GPIO_BEEP_PIN)) : (GPIO_SetBits(HAL_GPIO_BEEP_PORT, HAL_GPIO_BEEP_PIN)))

void hal_gpio_init(void);

#endif // __HAL_GPIO_H