1、按键驱动重构:dzbj_button改为iot_button组件,支持BOOT/KEY2单击/双击/长按,回调通过xTaskCreate派发避免阻塞esp_timer; 2、新增按键导航管理器(key_nav):9种上下文状态机,统一分发按键事件到对应界面; 3、BLE改造:广播默认关闭由按键触发启停,新增设备间GATT Client图片传输(扫描→连接→MTU协商→分包发送),WRITE_EVT区分APP/设备传图跳转不同界面; 4、新增模式切换按键抑制:NVS标志+2秒时间窗,防止AI↔吧唧切换时幽灵按键触发配网或白屏; 5、AI模式BOOT单击回调添加抑制检查,吧唧模式key_nav_boot_click同步添加; 6、新增6个UI界面:配对(Peiwang)、更新(Update)、发送等待/接收等待/发送中/接收中; 7、新增电池指示器组件(battery_ui):多界面真实电量显示+3秒渐隐; 8、Home/Img界面重构:移除触摸手势事件,改为airhub背景+按键导航; 9、禁用触摸(DZBJ_ENABLE_TOUCH=0),保留代码可恢复; 10、sleep_mgr简化:按键唤醒由key_nav统一处理; Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
#ifndef _DZBJ_GPIO_H_
|
||
#define _DZBJ_GPIO_H_
|
||
|
||
// dzbj LCD/Touch GPIO 定义(从 dzbj 项目移植)
|
||
// 注意:I2C_MASTER_NUM 改为 I2C_NUM_1,与主项目共享总线
|
||
|
||
// 触摸功能开关(0=禁用,1=启用)
|
||
// 本项目不使用触摸屏功能,禁用以节约资源(I2C 触摸控制器初始化、GPIO、LVGL 输入驱动、内存)
|
||
#define DZBJ_ENABLE_TOUCH 0
|
||
|
||
#include "esp_lvgl_port.h"
|
||
|
||
#define PIN_NUM_SCL 18 // I2C SCL
|
||
#define PIN_NUM_SDA 17 // I2C SDA
|
||
#define I2C_MASTER_FREQ_HZ 100000
|
||
#define I2C_MASTER_NUM I2C_NUM_1 // 改为 I2C_NUM_1,与主项目音频编解码器共享
|
||
|
||
// LCD QSPI 引脚
|
||
#define PIN_LCD_EN 1 // 背光使能(PWM)
|
||
#define PIN_LCD_D0 11 // 数据0
|
||
#define PIN_LCD_D1 13 // 数据1
|
||
#define PIN_LCD_D2 14 // 数据2
|
||
#define PIN_LCD_D3 21 // 数据3
|
||
#define PIN_LCD_CLK 12 // 时钟
|
||
#define PIN_LCD_CS 47 // 片选
|
||
#define PIN_LCD_RST 7 // 复位
|
||
|
||
#define LCD_HIGH 360
|
||
#define LCD_WID 360
|
||
|
||
// 触摸引脚
|
||
#define PIN_TP_RST 6 // 触摸复位
|
||
#define PIN_TP_INT 5 // 触摸中断
|
||
|
||
#define LCD_TAG "LCD"
|
||
#define SPI_LCD_HOST SPI2_HOST
|
||
|
||
#define PIN_MOTOR_EN -1 // 电机使能(未使用)
|
||
#define PIN_BAT_ADC 3 // 电池ADC检测引脚
|
||
|
||
#endif // _DZBJ_GPIO_H_
|