Rdzleo f9dc7d4861 feat: 触屏版迁移到按键版,两键实现全部交互功能
1. 按键驱动重构:GPIO中断+手动去抖 → iot_button组件(单击/双击/长按)
2. 新增key_nav按键导航管理器:上下文状态机 + Set界面焦点蓝色边框高亮
3. 移除所有触摸手势/点击事件(ScreenHome/ScreenImg/ScreenSet)
4. 应援灯颜色切换优化:DISPOFF→直接写GRAM→DISPON,消除分band刷新
5. 亮度调节按键化:BOOT +10% / KEY -10% / KEY长按退出
6. 休眠管理适配:按键唤醒统一由key_nav处理
7. 新增迁移总结文档 docs/touch-to-button-migration.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 14:57:14 +08:00

26 lines
870 B
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "esp_err.h"
// 按键引脚定义
#define PIN_BTN_BOOT 9 // GPIO9 BOOT按键低电平有效
#define PIN_BTN_KEY2 8 // GPIO8 KEY2按键低电平有效
// 按键事件类型
typedef enum {
BTN_EVT_CLICK, // 单击
BTN_EVT_DOUBLE_CLICK, // 双击
BTN_EVT_LONG_PRESS, // 长按(达到阈值时触发一次)
} btn_event_type_t;
// 按键事件回调函数类型
typedef void (*btn_event_cb_t)(int gpio_num, btn_event_type_t event, void *usr_data);
// 初始化按键驱动基于iot_button组件
esp_err_t button_init(void);
// 注册BOOT按键事件回调单击/双击/长按统一回调)
void button_on_boot_event(btn_event_cb_t cb, void *usr_data);
// 注册KEY2按键事件回调单击/双击/长按统一回调)
void button_on_key2_event(btn_event_cb_t cb, void *usr_data);