编译器平台及例程说明
编译器平台说明
1. Toolchain : MDK-ARM Community Version: 5.30.0.0(Kile V5)
2. Encoding : Encode in UTF-8 without signature
3. Device Specific Packs : Keil.STM32H7xx_DFP.2.7.0.pack
4. Preprocessor Symbols Define : USE_HAL_DRIVER, STM32H743xx
USE_HAL_DRIVER : 允许使用HAL库驱动
STM32H743xx : STM32H743xx芯片
5. Chip Type : STM32H743VIT6, Flash:2MByte, ROM:1MByte
6. 在stm32h7xx_hal_conf.h文件中HSE_VALUE为外部高速振荡器,默认25MHZ。此值必须与硬件保持一致。
例程说明
1. 独立按键扫描实现单击、长按、组合单击事件(可重注册或取消按键事件)
一、宏定义说明
#define USER_KEY1_PIN USER_KEY1_Pin
#define USER_KEY2_PIN USER_KEY2_Pin
#define Read_Key1_State() HAL_GPIO_ReadPin(USER_KEY1_GPIO_Port, USER_KEY1_PIN)
#define Read_Key2_State() HAL_GPIO_ReadPin(USER_KEY2_GPIO_Port, USER_KEY2_PIN)
typedef void (* KeyFunc)(void);
#define KEY_VALID_COUNT_MAX (220)
#define KEY_NONE_ACTION (0x0003)
#define KEY_COUNT_CLICK (10)
#define KEY_COUNT_LONG_PRESS (80)
#define LONG_PRESS(key) ((key) | 0x8000)
#define IS_KEY_LONG_PRESS(key , code) (((code) & 0x8000) && ((key) == ((code) & 0x7FFF)))
typedef enum
{
KEY_USER1_CLICK_EVENT = 0,
KEY_USER2_CLICK_EVENT = 1,
KEY_USER_CLICK_EVENT = 2,
KEY_USER1_LONG_PRESS_EVENT = 3,
KEY_USER2_LONG_PRESS_EVENT =