中级会员
- 积分
- 462
- 金钱
- 462
- 注册时间
- 2014-8-14
- 在线时间
- 129 小时
|
本帖最后由 Cindre鞡 于 2024-9-11 14:23 编辑
硬件平台:原子ESP32开发板(因为这个即有IO按键也有ic扩展按键)
-----------------------------------------------------------------------------
按键功能:1.单个按键单击,返回CLICK事件
2.单个按键长按,返回HOLD事件
3.单个按键连续长按,连续返回HOLD事件
4.组合按键单击,返回CK_CLICK事件
5.组合按键长按,返回CK_HOLD事件
7.组合按键连续长按,连续返回CK_HOLD事件
8.连续时间采集判断消抖
9.允许一定抖动次数
注:长按和连续长按功能只能二选一
-----------------------------------------------------------------------------
按键类型支持:IO按键,AD按键,电容按键,ic扩展按键
-----------------------------------------------------------------------------
驱动代码有大量注释,方便理解其逻辑
主程序调用示例:
- void KEY_Task(void *pvParameters)
- {
- uint8_t key_value = 0;
- for(;;)
- {
- vTaskDelay(1);
-
- key_value = KEY_Read();
-
- switch(key_value)
- {
- case KEY_BOOT_CLICK:
- {
-
- }
- break;
-
- case KEY_BOOT_HOLD:
- {
-
- }
- break;
- case KEY_0_CLICK:
- {
-
- }
- break;
-
- case KEY_0_HOLD:
- {
-
- }
- break;
- case KEY_CK1_CLICK:
- {
- DebugPrintf("Key CK1 Click\r\n");
- }
- break;
-
- case KEY_CK1_HOLD:
- {
- DebugPrintf("Key CK1 Hold\r\n");
- }
- break;
- }
-
- }
- }
复制代码
按键驱动源码:
key.zip
(2.65 KB, 下载次数: 19)
|
|