Dzbj_ESP32-S3_Key/设备运行日志.md
Rdzleo 75586b3744 ESP32-S3按键版电子吧唧功能完整实现
1、按键驱动重构:从GPIO中断改为iot_button组件,支持BOOT/KEY2的单击/双击/长按6种事件;
2、新增按键导航管理器(key_nav):9种上下文状态机,统一分发按键事件到对应界面业务逻辑;
3、BLE模块改造:广播默认关闭由按键触发,新增设备间图片传输(GATT Client),支持扫描配对→MTU协商→分包发送;
4、新增6个UI界面:配对(Peiwang)、更新(Update)、发送等待(ImageShar)、接收等待(ImageReception)、发送中(Sharing)、接收中(Receiving);
5、新增电池指示器组件(battery_ui):支持多界面真实电量显示,3秒渐隐效果;
6、Home界面重构:移除手势事件,改为airhub背景图+电池指示器;
7、Img界面重构:移除触摸事件,新增删除二次确认边框机制;
8、禁用ScreenSet/ScreenChar界面(保留文件),禁用触摸初始化(保留代码可恢复);
9、sleep_mgr简化:移除ScreenSet亮度UI依赖,按键唤醒由key_nav统一处理;
10、新增9张图片资源(airhub背景、配对、传输状态、电池图标等);

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:35:05 +08:00

23 KiB
Raw Permalink Blame History

以下日志时电子吧唧模式切换到AI对话模式的日志 I (5650) DZBJ_BAT: ADC原始值=2806, ADC电压=2347mV, 电池电压=4694mV, 电量=100% I (8660) KEY_NAV: BOOT+KEY2组合键检测跳过KEY2长按业务 I (8680) KEY_NAV: BOOT+KEY2组合键检测跳过BOOT长按业务 I (9460) DZBJ_BTN: BOOT+KEY2组合键2秒触发模式切换 I (9460) DZBJ_BTN: 执行模式切换... I (9460) DZBJ_BTN: 吧唧模式 → AI模式 I (9470) DeviceMode: 模式切换为 AI即将重启... ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0xc (RTC_SW_CPU_RST),boot:0xb (SPI_FAST_FLASH_BOOT) Saved PC:0x40379ce1 --- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162 SPIWP:0xee mode:DIO, clock div:1 load:0x3fce2820,len:0x56c load:0x403c8700,len:0x4 load:0x403c8704,len:0xb88 load:0x403cb700,len:0x2df4 entry 0x403c88f4 I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京 I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条 I (49) coexist: coex firmware version: 831ec70 I (49) coexist: coexist rom version e7ae62f I (49) main_task: Started on CPU0 I (59) main_task: Calling app_main() I (79) BackgroundTask: background_task started I (79) BluetoothProvisioning: 蓝牙配网对象创建完成 I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) Airhub1: Initializing I2C master bus for audio codec... I (79) Airhub1: Scanning I2C bus for devices... I (79) Airhub1: I2C设备在线: 0x18 I (79) Airhub1: I2C设备在线: 0x40 I (79) Airhub1: I2C scan completed. Found 2 devices I (79) DZBJ: 开始初始化显示硬件... I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (79) st77916: LCD panel create success, version: 1.0.1 W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence I (329) LCD: LCD GRAM cleared (black filled) I (329) DZBJ: LCD 硬件初始化完成 I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0) I (329) LVGL: Starting LVGL task I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single) I (329) DZBJ: LVGL 初始化完成 I (449) Airhub1: 🤖 AI对话模式启动 I (449) Airhub1: 初始化按钮... I (449) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms) I (449) Airhub1: Boot button initialized on GPIO0 I (449) Airhub1: Volume up button initialized on GPIO-1 I (449) Airhub1: Volume down button initialized on GPIO-1 I (449) Airhub1: 故事按键已初始化GPIO引脚 =4 I (449) Airhub1: 所有按键已成功初始化! I (449) Airhub1: IMU传感器未初始化跳过IoT注册 I (449) Airhub1: Initializing battery monitor... I (449) Airhub1: ADC calibration initialized I (449) Airhub1: 电池状态监控已初始化GPIO:3 I (449) Airhub1: 非生产测试模式且不在对话状态,姿态传感器业务已禁用以节约资源 I (449) PowerSaveTimer: Power save timer enabled I (449) Airhub1: 🔋 PowerSaveTimer已启用20秒无活动将进入低功耗模式 I (449) Airhub1: 电容触摸板按钮已禁用 (ENABLE_TOUCH_PAD_BUTTONS=0) I (449) Application: 打印设置设备状态日志: starting I (449) Application: 正常启动流程,将执行开机播报和网络连接播报 I (449) Airhub1: Initializing audio codec (duplex)... I (449) Airhub1: Creating BoxAudioCodec (ES8311+ES7210, without reference) ... I (449) BoxAudioCodec: Duplex channels created I (459) ES8311: Work in Slave mode I (459) gpio: GPIO[48]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (459) ES7210: Work in Slave mode I (469) ES7210: Enable ES7210_INPUT_MIC1 I (469) ES7210: Enable ES7210_INPUT_MIC2 I (479) BoxAudioCodec: BoxAudioDevice initialized (duplex) I (479) Airhub1: Audio codec initialized successfully I (479) Application: 检测到WiFi板卡将opus编码器复杂度设置为3 I (479) OpusResampler: Resampler configured with input sample rate 16000, output sample rate 8000, and channels 1 I (479) I2S_IF: channel mode 2 bits:16/16 channel:2 mask:1 I (479) I2S_IF: TDM Mode 0 bits:16/16 channel:2 sample_rate:16000 mask:1 I (479) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1 I (479) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1 I (479) ES7210: Bits 16 I (489) ES7210: Enable ES7210_INPUT_MIC1 I (489) ES7210: Enable ES7210_INPUT_MIC2 I (499) ES7210: Unmuted I (499) Adev_Codec: Open codec device OK I (499) BoxAudioCodec: Input opened: sr=16000 ch=1 mask=0x1 ref=0 I (499) AudioCodec: Set input enable to true I (499) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1 I (499) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1 I (519) Adev_Codec: Open codec device OK I (519) AudioCodec: Set output enable to true I (519) AudioCodec: Audio codec started I (619) Airhub1: ADC: 2348, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V I (619) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (719) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V I (719) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (719) Airhub1: BOOT button clicked I (719) Airhub1: 🔄 BOOT按键触发设备状态=1WiFi连接状态=未连接 I (719) Airhub1: 🔄 开始重置WiFi配置清除已保存的WiFi凭据 I (719) Airhub1: 已清除所有WiFi凭据设备将进入配网模式 I (719) WifiBoard: 🔄 重置WiFi配置设备将重启进入配网模式 I (819) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V I (819) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (939) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V I (939) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (1039) Airhub1: ADC: 2347, 原始电压: 2.35V, 计算电池电压: 10.19V, 电量: 100%, 满电电压: 4.20V I (1039) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (1139) Airhub1: ADC: 2346, 原始电压: 2.35V, 计算电池电压: 10.18V, 电量: 100%, 满电电压: 4.20V I (1139) BluetoothMAC: Bluetooth MAC Address: d0:cf:13:03:bb:f2 I (1229) WifiBoard: 🔄 正在重启设备... ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0xc (RTC_SW_CPU_RST),boot:0xb (SPI_FAST_FLASH_BOOT) Saved PC:0x40379ce1 --- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162 SPIWP:0xee mode:DIO, clock div:1 load:0x3fce2820,len:0x56c load:0x403c8700,len:0x4 load:0x403c8704,len:0xb88 load:0x403cb700,len:0x2df4 entry 0x403c88f4 I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京 I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条 I (49) coexist: coex firmware version: 831ec70 I (49) coexist: coexist rom version e7ae62f I (49) main_task: Started on CPU0 I (59) main_task: Calling app_main() I (79) BackgroundTask: background_task started I (79) BluetoothProvisioning: 蓝牙配网对象创建完成 I (79) WifiBoard: force_ap is set to 1, will clear in StartNetwork() I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) Airhub1: Initializing I2C master bus for audio codec... I (79) Airhub1: Scanning I2C bus for devices... I (79) Airhub1: I2C设备在线: 0x18 I (79) Airhub1: I2C设备在线: 0x40 I (79) Airhub1: I2C scan completed. Found 2 devices I (79) DZBJ: 开始初始化显示硬件... I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (79) st77916: LCD panel create success, version: 1.0.1 W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence I (329) LCD: LCD GRAM cleared (black filled) I (329) DZBJ: LCD 硬件初始化完成 I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0) I (329) LVGL: Starting LVGL task I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single) I (329) DZBJ: LVGL 初始化完成 I (449) Airhub1: 🤖 AI对话模式启动 I (449) Airhub1: 初始化按钮... I (449) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms) I (449) Airhub1: Boot button initialized on GPIO0 I (449) Airhub1: Volume up button initialized on GPIO-1 I (449) Airhub1: Volume down button initialized on GPIO-1 I (449) Airhub1: 故事按键已初始化GPIO引脚 =4 I (449) Airhub1: 所有按键已成功初始化! I (449) Airhub1: IMU传感器未初始化跳过IoT注册 I (449) Airhub1: 配网模式跳过电池检测、IMU传感器、低功耗管理 I (449) Airhub1: 电容触摸板按钮已禁用 (ENABLE_TOUCH_PAD_BUTTONS=0) I (449) Application: 打印设置设备状态日志: starting I (449) Application: 正常启动流程,将执行开机播报和网络连接播报 I (449) Airhub1: Initializing audio codec (output only)... I (449) Airhub1: Creating BoxAudioCodec (ES8311, without reference) ... I (449) BoxAudioCodec: TX-only channel created (provisioning mode) I (449) ES8311: Work in Slave mode I (459) gpio: GPIO[48]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (459) BoxAudioCodec: BoxAudioDevice initialized (output only) I (459) Airhub1: Audio codec initialized successfully I (459) Application: 配网模式:跳过 Opus 编码器、输入重采样器、麦克风输入 I (459) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:1 I (459) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:1 I (469) Adev_Codec: Open codec device OK I (479) AudioCodec: Set output enable to true I (479) AudioCodec: Audio codec started (output only, provisioning mode) I (479) AudioCodec: 将运行时输出音量设置为80 I (479) Application: 设备启动完成,播放开机播报语音 I (489) WifiBoard: force_ap cleared to 0 I (489) WifiBoard: 🔵 进入配网模式 - BLE蓝牙配网 I (489) WifiBoard: 🔵 进入配网模式 - 使用BLE蓝牙配网 I (489) WifiBoard: 🔵 正在启动BLE蓝牙配网服务... I (489) Application: 🎵 测试模式:音频开始播放,等待播放完成 I (489) Application: 测试模式:音频播放完成 I (489) BluetoothProvisioning: 🔄 配网状态变化: IDLE -> INITIALIZING I (489) BluetoothProvisioning: 初始化WiFi... I (489) pp: pp rom version: e7ae62f I (489) net80211: net80211 rom version: e7ae62f I (499) wifi:wifi driver task: 3fcd90ac, prio:23, stack:6656, core=0 I (499) wifi:wifi firmware version: 3263cda I (499) wifi:wifi certification version: v7.0 I (499) wifi:config NVS flash: enabled I (499) wifi:config nano formatting: disabled I (499) wifi:Init data frame dynamic rx buffer num: 32 I (499) wifi:Init dynamic rx mgmt buffer num: 5 I (499) wifi:Init management short buffer num: 32 I (499) wifi:Init static tx buffer num: 8 I (499) wifi:Init tx cache buffer num: 32 I (499) wifi:Init static tx FG buffer num: 2 I (499) wifi:Init static rx buffer size: 1600 I (499) wifi:Init static rx buffer num: 10 I (499) wifi:Init dynamic rx buffer num: 32 I (509) wifi_init: rx ba win: 16 I (509) wifi_init: accept mbox: 6 I (509) wifi_init: tcpip mbox: 32 I (509) wifi_init: udp mbox: 6 I (509) wifi_init: tcp mbox: 6 I (509) wifi_init: tcp tx win: 5760 I (509) wifi_init: tcp rx win: 5760 I (509) wifi_init: tcp mss: 1440 I (509) wifi_init: WiFi/LWIP prefer SPIRAM I (509) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10 I (539) wifi:mode : sta (d0:cf:13:03:bb:f0) I (539) wifi:enable tsf I (539) BluetoothProvisioning: WiFi初始化完成 I (539) BluetoothProvisioning: 初始化蓝牙控制器... I (539) BLE_INIT: BT controller compile version [2edb0b0] I (539) BLE_INIT: Using main XTAL as clock source I (539) BLE_INIT: Feature Config, ADV:1, BLE_50:1, DTM:1, SCAN:1, CCA:0, SMP:1, CONNECT:1 I (539) BLE_INIT: Bluetooth MAC: d0:cf:13:03:bb:f2 I (549) BluetoothProvisioning: 初始化Bluedroid协议栈... I (559) BluetoothProvisioning: 注册 BLE GAP/GATTS 回调... I (559) BluetoothProvisioning: GATTS App 注册成功, gatts_if=3 I (559) BluetoothProvisioning: Service 创建成功, handle=40 I (559) BluetoothProvisioning: WRITE 特征添加成功, handle=42 I (559) BluetoothProvisioning: NOTIFY 特征添加成功, handle=44 I (559) BluetoothProvisioning: CCCD 添加成功, handle=45 I (559) BluetoothProvisioning: GATT Service 启动成功 I (559) BluetoothProvisioning: 注册WiFi事件处理器... I (559) BluetoothProvisioning: 🔄 配网状态变化: INITIALIZING -> IDLE I (559) BluetoothProvisioning: 蓝牙配网初始化完成 (GATT Server 模式) I (559) BluetoothProvisioning: 蓝牙MAC地址: d0:cf:13:03:bb:f2 I (559) WifiBoard: 🔍 BLE Initialize返回结果: true I (559) BluetoothProvisioning: 🔵 开始启动蓝牙配网服务 (GATT Server)... I (559) BluetoothProvisioning: 🔍 检查初始化状态: initialized_ = true I (559) BluetoothProvisioning: MAC地址发送状态已重置 I (559) BluetoothProvisioning: 🔄 MAC地址发送状态已重置 I (559) BluetoothProvisioning: 🧹 清除之前的WiFi凭据... I (559) BluetoothProvisioning: WiFi凭据清除完成准备接收新的配网信息 I (559) BluetoothProvisioning: 📡 蓝牙设备名称: Airhub_d0:cf:13:03:bb:f2 I (559) BluetoothProvisioning: 📡 广播数据构建完成,长度: 29 字节 I (559) BluetoothProvisioning: 📡 扫描响应数据构建完成,长度: 7 字节 I (559) BluetoothProvisioning: 📡 广播数据设置完成,配置扫描响应数据 I (559) BluetoothProvisioning: 📡 扫描响应数据设置完成,启动广播 I (569) BluetoothProvisioning: 广播启动成功 I (569) BluetoothProvisioning: 🔄 配网状态变化: IDLE -> ADVERTISING I (569) BluetoothProvisioning: 蓝牙配网广播已启动,等待客户端连接... I (569) WifiBoard: BLE蓝牙配网启动成功 I (569) WifiBoard: 📱 请使用支持BLE的手机APP连接设备进行配网 W (569) Application: Alert BLE配网模式: 请使用手机APP搜索Airhub_开头的蓝牙设备 [happy] I (579) AI_CHAT_UI: GIF表情切换: happy I (579) WifiBoard: Starting BLE provisioning monitor... I (579) WifiBoard: 🔍 BLE配网启动结果: 成功 I (579) WifiBoard: BLE配网启动成功等待手机连接 I (579) Application: 配网模式:跳过协议初始化、位置检测等网络业务 I (579) Application: 打印设置设备状态日志: idle I (599) AI_CHAT_UI: GIF表情切换: neutral I (599) main_task: Returned from app_main() I (599) Application: 开始播放下行音频: 样本=960 采样率=16000 I (13089) AudioCodec: Set output enable to false I (17689) BluetoothProvisioning: 📱 客户端已连接, conn_id=0, addr=6d:db:7f:0c:40:a7 I (17689) BluetoothProvisioning: 🔍 [DEBUG] 设置client_connected_为true I (17689) BluetoothProvisioning: MAC地址发送状态已重置 I (17689) BluetoothProvisioning: 🔄 MAC地址发送状态已重置 I (17689) BluetoothProvisioning: 🔄 配网状态变化: ADVERTISING -> CONNECTED I (17689) WifiBoard: BLE client connected I (17689) BluetoothProvisioning: 🔍 [DEBUG] BLE连接处理完成client_connected_=true I (17689) BluetoothProvisioning: 广播已停止 I (18089) BluetoothProvisioning: 连接参数更新: status=0, conn_int=24, latency=0, timeout=400 I (18659) BluetoothProvisioning: MTU 更新: 512 I (18749) BluetoothProvisioning: 连接参数更新: status=0, conn_int=6, latency=0, timeout=500 I (18869) BluetoothProvisioning: 连接参数更新: status=0, conn_int=24, latency=0, timeout=400 I (19229) BluetoothProvisioning: NOTIFY 已启用 I (19379) BluetoothProvisioning: 📱 手机请求获取WiFi列表开始扫描

以下日志时AI对话模式切换到电子吧唧模式的日志 I (2858) wifi:Init static tx FG buffer num: 2 I (2858) wifi:Init static rx buffer size: 1600 I (2858) wifi:Init static rx buffer num: 10 I (2858) wifi:Init dynamic rx buffer num: 32 I (2858) wifi_init: rx ba win: 16 I (2858) wifi_init: accept mbox: 6 I (2858) wifi_init: tcpip mbox: 32 I (2858) wifi_init: udp mbox: 6 I (2858) wifi_init: tcp mbox: 6 I (2858) wifi_init: tcp tx win: 5760 I (2858) wifi_init: tcp rx win: 5760 I (2858) wifi_init: tcp mss: 1440 I (2858) wifi_init: WiFi/LWIP prefer SPIRAM I (2858) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10 I (2888) wifi:mode : sta (d0:cf:13:03:bb:f0) I (2888) wifi:enable tsf I (2898) Application: 开始播放下行音频: 样本=960 采样率=16000 I (5308) wifi: 发现可连接 AP: airhub, BSSID: 70:2a:d7:85:bc:eb, RSSI: -38, Channel: 1, Authmode: 3 I (5308) WifiBoard: Starting WiFi connection, playing network connection sound W (5308) wifi:Password length matches WPA2 standards, authmode threshold changes from OPEN to WPA2 I (5398) wifi🆕<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1, snd_ch_cfg:0x0 I (5398) wifi:state: init -> auth (0xb0) I (5428) wifi:state: auth -> assoc (0x0) I (5458) wifi:state: assoc -> run (0x10) I (5518) wifi:connected with airhub, aid = 4, channel 1, BW20, bssid = 70:2a:d7:85:bc:eb I (5518) wifi:security: WPA2-PSK, phy: bgn, rssi: -42 I (5518) wifi:pm start, type: 1

I (5518) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us I (5518) wifi:set rx beacon pti, rx_bcn_pti: 14, bcn_timeout: 25000, mt_pti: 14, mt_time: 10000 I (5538) wifi:idx:0 (ifx:0, 70:2a:d7:85:bc:eb), tid:0, ssn:0, winSize:64 I (5578) wifi:AP's beacon interval = 102400 us, DTIM period = 1 I (6068) DZBJ_BTN: BOOT+KEY2组合键2秒触发模式切换 I (6068) DZBJ_BTN: 执行模式切换... I (6068) DZBJ_BTN: AI模式 → 吧唧模式 I (6078) DeviceMode: 模式切换为 吧唧,即将重启... I (6548) Airhub1: 📤 设备状态上报已启用每30秒上报一次 I (6578) wifi:state: run -> init (0x0) I (6578) wifi:pm stop, total sleep time: 562763 us / 1055555 us

I (6578) wifi:idx:0, tid:0 I (6578) wifi🆕<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1, snd_ch_cfg:0x0 I (6578) wifi: Reconnecting airhub (attempt 1 / 5) I (6638) wifi:flush txq I (6638) wifi:stop sw txq I (6638) wifi:lmac stop hw txq ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0xc (RTC_SW_CPU_RST),boot:0x2b (SPI_FAST_FLASH_BOOT) Saved PC:0x40379ce1 --- 0x40379ce1: esp_restart_noos at /Users/rdzleo/esp/esp-idf/components/esp_system/port/soc/esp32s3/system_internal.c:162 SPIWP:0xee mode:DIO, clock div:1 load:0x3fce2820,len:0x56c load:0x403c8700,len:0x4 load:0x403c8704,len:0xb88 load:0x403cb700,len:0x2df4 entry 0x403c88f4 I (48) WeatherApi: 初始化天气API配置 - 默认城市: 北京 I (48) WeatherApi: WiFi位置缓存限制已设置为: 5 条 I (49) coexist: coex firmware version: 831ec70 I (49) coexist: coexist rom version e7ae62f I (49) main_task: Started on CPU0 I (59) main_task: Calling app_main() I (79) Application: 🎴 吧唧模式:跳过 WiFi/协议/音频初始化 I (79) Application: 打印设置设备状态日志: idle I (79) BluetoothProvisioning: 蓝牙配网对象创建完成 I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) button: IoT Button Version: 3.5.0 I (79) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (79) Airhub1: Initializing I2C master bus for audio codec... I (79) Airhub1: Scanning I2C bus for devices... I (79) Airhub1: I2C设备在线: 0x18 I (79) Airhub1: I2C设备在线: 0x40 I (79) Airhub1: I2C scan completed. Found 2 devices I (79) DZBJ: 开始初始化显示硬件... I (79) gpio: GPIO[7]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (79) st77916: LCD panel create success, version: 1.0.1 W (209) st77916: The 3Ah command has been used and will be overwritten by external initialization sequence I (329) LCD: LCD GRAM cleared (black filled) I (329) DZBJ: LCD 硬件初始化完成 I (329) DZBJ: 屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0) I (329) LVGL: Starting LVGL task I (329) LCD: LVGL buffer: 14400 bytes (W:360, Lines:20, DMA, single) I (329) DZBJ: LVGL 初始化完成 I (339) DZBJ: UI 初始化完成 I (439) DZBJ: 背光已点亮dzbj 显示模块初始化完成 I (439) Airhub1: 🎴 电子吧唧模式启动 I (439) Airhub1: 初始化吧唧模式按钮... I (439) KEY_NAV: 导航上下文切换: 0 I (439) KEY_NAV: 按键导航初始化完成 I (439) DZBJ_BTN: BOOT 1200ms长按事件注册成功 I (439) DZBJ_BTN: BOOT+KEY2组合键模式切换注册成功(2000ms) I (439) Airhub1: Boot button initialized on GPIO0 I (439) Airhub1: 吧唧模式按钮初始化完成 I (439) Airhub1: 初始化电子吧唧模式外设... I (539) Airhub1: 吧唧模式 BOOT 单击 I (539) IMG_LIST: 开始扫描SPIFFS中的图片文件 E (549) IMG_LIST: 无法打开SPIFFS目录 E (549) IMG_LIST: 图片列表未初始化或为空 I (549) ScreenImg: SPIFFS无可用图片显示默认UI图片 I (549) KEY_NAV: 导航上下文切换: 1 I (549) FATFS: SPIFFS: Total size: 2763761, Used: 78061 I (599) IMG_LIST: 开始扫描SPIFFS中的图片文件 I (599) IMG_LIST: 发现图片文件: 03.jpg I (599) IMG_LIST: 发现图片文件: 02.jpg I (599) IMG_LIST: 发现图片文件: default.jpg I (649) IMG_LIST: 图片列表初始化完成,共发现 3 张图片 I (649) IMG_LIST: 设置默认图片索引: 2 I (649) button: IoT Button Version: 3.5.0 I (649) gpio: GPIO[4]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 I (649) DZBJ_BTN: 按键初始化完成 (KEY2=GPIO4, 长按1200ms, 双击300ms) I (649) DZBJ_BAT: ADC校准初始化成功 I (649) DZBJ_BAT: 电池ADC初始化完成 (GPIO3, ADC1_CH2, 分压比=2) I (649) DZBJ_BAT: ADC原始值=2797, ADC电压=2339mV, 电池电压=4678mV, 电量=100% I (649) DZBJ_BAT: 电池监控任务已启动更新间隔5000ms I (649) BLE_INIT: BT controller compile version [2edb0b0] I (649) BLE_INIT: Using main XTAL as clock source I (659) BLE_INIT: Feature Config, ADV:1, BLE_50:1, DTM:1, SCAN:1, CCA:0, SMP:1, CONNECT:1 I (659) BLE_INIT: Bluetooth MAC: d0:cf:13:03:bb:f2 I (659) phy_init: phy_version 701,f4f1da3a,Mar 3 2025,15:50:10 I (699) DZBJ_BLE: GATT server register, status 0, app_id 0 I (709) DZBJ_BLE: 图片传输服务创建成功,句柄: 28 I (709) DZBJ_BLE: 图片写入特征创建成功,句柄: 42 I (709) DZBJ_BLE: 图片编辑特征创建成功,句柄: 44 I (709) DZBJ_BLE: BLE MAC: d0:cf:13:03:bb:f2 I (709) DZBJ_BLE: 蓝牙设备名称: Airhub_d0:cf:13:03:bb:f2 I (709) DZBJ_BLE: Advertising data set, status 0 I (709) DZBJ_BLE: Scan response data set, status 0 I (709) DZBJ_BLE: Advertising start successfully I (709) BLE_XFER: GATTC注册成功, if=4 I (709) BLE_XFER: 设备间传输模块初始化完成 I (709) SLEEP: 休眠管理器初始化完成(超时=10s I (709) Airhub1: 电子吧唧模式初始化完成 I (709) main_task: Returned from app_main() I (5649) DZBJ_BAT: ADC原始值=2791, ADC电压=2335mV, 电池电压=4670mV, 电量=100% I (10649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100% I (15649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100% I (18019) KEY_NAV: 导航上下文切换: 0 I (20649) DZBJ_BAT: ADC原始值=2794, ADC电压=2337mV, 电池电压=4674mV, 电量=100%