#include "dzbj_init.h" #include "dzbj_gpio.h" #include "lcd.h" #include "pages_pwm.h" #include "ui/ui.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #define TAG "DZBJ" void dzbj_display_init(i2c_master_bus_handle_t i2c_bus) { ESP_LOGI(TAG, "开始初始化 dzbj 显示模块..."); // 1. LCD 硬件初始化(QSPI ST77916) lcd_init(); ESP_LOGI(TAG, "LCD 硬件初始化完成"); #if DZBJ_ENABLE_TOUCH // 2. 传入 I2C 总线句柄(与音频编解码器共享) lcd_set_i2c_bus(i2c_bus); // 3. 触摸控制器初始化(CST816S) touch_init(); #else (void)i2c_bus; ESP_LOGI(TAG, "屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0)"); #endif // 4. LVGL 初始化(显示) lvgl_lcd_init(); ESP_LOGI(TAG, "LVGL 初始化完成"); // 5. SquareLine UI 初始化 ui_init(); ESP_LOGI(TAG, "UI 初始化完成"); // 6. 等待首帧渲染完成 vTaskDelay(pdMS_TO_TICKS(100)); // 7. 点亮背光 pwm_init(); ESP_LOGI(TAG, "背光已点亮,dzbj 显示模块初始化完成"); }