mirror of
				https://github.com/IcedRooibos/py32f0-template.git
				synced 2025-10-31 01:42:04 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|   ******************************************************************************
 | |
|   * @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 <stdio.h>
 | |
| #include "py32f0xx_ll_rcc.h"
 | |
| #include "py32f0xx_ll_bus.h"
 | |
| #include "py32f0xx_ll_system.h"
 | |
| #include "py32f0xx_ll_exti.h"
 | |
| #include "py32f0xx_ll_cortex.h"
 | |
| #include "py32f0xx_ll_utils.h"
 | |
| #include "py32f0xx_ll_pwr.h"
 | |
| #include "py32f0xx_ll_dma.h"
 | |
| #include "py32f0xx_ll_gpio.h"
 | |
| #include "py32f0xx_ll_usart.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                         LL_GPIO_PIN_12
 | |
| #define USER_BUTTON_GPIO_PORT                   GPIOA
 | |
| #define USER_BUTTON_GPIO_CLK_ENABLE()           LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA)
 | |
| #define USER_BUTTON_GPIO_CLK_DISABLE()          LL_IOP_GRP1_DisableClock(LL_IOP_GRP1_PERIPH_GPIOA)
 | |
| #define USER_BUTTON_EXTI_IRQn                   EXTI4_15_IRQn
 | |
| #define USER_BUTTON_EXTI_LINE                   LL_EXTI_LINE_12
 | |
| #define USER_BUTTON_EXTI_LINE_ENABLE()          LL_EXTI_EnableIT(USER_BUTTON_EXTI_LINE)
 | |
| #define USER_BUTTON_EXTI_FALLING_TRIG_ENABLE()  LL_EXTI_EnableFallingTrig(USER_BUTTON_EXTI_LINE)
 | |
| #define USER_BUTTON_IRQHANDLER                  EXTI4_15_IRQHandler
 | |
| 
 | |
| /* 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)
 | |
| 
 | |
| 
 | |
| 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 */
 | 
