[STM32]按键使用记录
2026/5/31 22:31:29 网站建设 项目流程

按键编程记录 | 创建于2025/12/15

说明:记录下遇到的按键使用方法
大体思想都是通用的

最常见的阻塞软件延时

这个是参考正点原子的

// 宏定义 获取按键1对应IO口的电平 #define KEY1_LEVEL HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) #define KEY2_LEVEL HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) uint8_t Key_GetNum(void) { static uint8_t key_up = 1; // 按键抬起标志位 uint8_t key_num = 0xff; // 返回的键值,默认0xff if(key_up && (KEY1_LEVEL || KEY2_LEVEL)) { delay_ms(20); // 消抖时间20ms key_up = 0; // 按键抬起标志位置0,认为按键已按下 // 再度检测引脚电平 if(KEY1_LEVEL) key_num = 1; if(KEY2_LEVEL) key_num = 2; } else if(!KEY1_LEVEL && !KEY2_LEVEL) { key_up = 1; // 若按键都没按下,标志位解锁 } return key_num; // 返回键值 }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询