/** ****************************************************************************** * @file py32f0xx_bsp_button.h * @author MCU Application Team * @brief ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef PY32F003_BSP_BUTTON_H #define PY32F003_BSP_BUTTON_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "py32f0xx_hal.h" typedef enum { BUTTON_USER = 0, /* Alias */ BUTTON_KEY = BUTTON_USER } Button_TypeDef; typedef enum { BUTTON_MODE_GPIO = 0, BUTTON_MODE_EXTI = 1 } ButtonMode_TypeDef; #define BUTTONn 1 /** * @brief User push-button */ #define USER_BUTTON_PIN GPIO_PIN_12 #define USER_BUTTON_GPIO_PORT GPIOA #define USER_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() #define USER_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() #define USER_BUTTON_EXTI_IRQn EXTI4_15_IRQn /* Aliases */ #define KEY_BUTTON_PIN USER_BUTTON_PIN #define KEY_BUTTON_GPIO_PORT USER_BUTTON_GPIO_PORT #define KEY_BUTTON_GPIO_CLK_ENABLE() USER_BUTTON_GPIO_CLK_ENABLE() #define KEY_BUTTON_GPIO_CLK_DISABLE() USER_BUTTON_GPIO_CLK_DISABLE() #define KEY_BUTTON_EXTI_IRQn USER_BUTTON_EXTI_IRQn #define BUTTONx_GPIO_CLK_ENABLE(__INDEX__) do { if((__INDEX__) == 0) USER_BUTTON_GPIO_CLK_ENABLE();} while(0) #define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) (((__INDEX__) == 0) ? USER_BUTTON_GPIO_CLK_DISABLE() : 0) /** @defgroup Functions * @{ */ uint32_t BSP_GetVersion(void); void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode); void BSP_PB_DeInit(Button_TypeDef Button); uint32_t BSP_PB_GetState(Button_TypeDef Button); #ifdef __cplusplus } #endif #endif /* PY32F003_BSP_BUTTON_H */