From b603b00110fefcdae0725d20add1b9cec1835abc Mon Sep 17 00:00:00 2001 From: CQ793 <2609616396@qq.com> Date: Tue, 7 Jul 2026 10:00:12 +0800 Subject: [PATCH] Content: fixed C7 format --- .../esp32-s3-touch-lcd-7c/config.json | 5 ++- .../esp32_s3_touch_lcd_7c.cc | 37 +++++++++++-------- .../waveshare_audio_codec.cc | 4 +- .../waveshare_audio_codec.h | 2 +- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/main/boards/waveshare/esp32-s3-touch-lcd-7c/config.json b/main/boards/waveshare/esp32-s3-touch-lcd-7c/config.json index a8b58492..844debe6 100644 --- a/main/boards/waveshare/esp32-s3-touch-lcd-7c/config.json +++ b/main/boards/waveshare/esp32-s3-touch-lcd-7c/config.json @@ -1,10 +1,11 @@ { + "manufacturer": "waveshare", "target": "esp32s3", "builds": [ { "name": "waveshare-s3-touch-lcd-7c", "sdkconfig_append": [ - "CONFIG_BOARD_TYPE_ESP32S3_Touch_LCD_7C=y", + "CONFIG_BOARD_TYPE_WAVESHARE_ESP32_S3_TOUCH_LCD_7C=y", "CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y", "CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=\"partitions/v2/32m.csv\"", "CONFIG_USE_DEVICE_AEC=y", @@ -13,4 +14,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/main/boards/waveshare/esp32-s3-touch-lcd-7c/esp32_s3_touch_lcd_7c.cc b/main/boards/waveshare/esp32-s3-touch-lcd-7c/esp32_s3_touch_lcd_7c.cc index 991191c6..a9049a68 100644 --- a/main/boards/waveshare/esp32-s3-touch-lcd-7c/esp32_s3_touch_lcd_7c.cc +++ b/main/boards/waveshare/esp32-s3-touch-lcd-7c/esp32_s3_touch_lcd_7c.cc @@ -64,14 +64,15 @@ private: power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_->OnEnterSleepMode([this]() { GetDisplay()->SetPowerSaveMode(true); - GetBacklight()->SetBrightness(5); }); + GetBacklight()->SetBrightness(5); + }); power_save_timer_->OnExitSleepMode([this]() { GetDisplay()->SetPowerSaveMode(false); - GetBacklight()->RestoreBrightness();}); + GetBacklight()->RestoreBrightness(); + }); power_save_timer_->SetEnabled(true); } - void InitializeGpio() { // Zero-initialize the GPIO configuration structure gpio_config_t io_conf = {}; @@ -212,7 +213,7 @@ private: DISPLAY_MIRROR_Y, DISPLAY_SWAP_XY); backlight_ = new CustomBacklight(io_expander); - backlight_->RestoreBrightness(); + backlight_->RestoreBrightness(); } void InitializeTouch() { @@ -241,7 +242,7 @@ private: tp_io_config.dc_bit_offset = 0; tp_io_config.lcd_cmd_bits = 16; tp_io_config.flags.disable_control_phase = 1; - + esp_lcd_new_panel_io_i2c(i2c_bus_, &tp_io_config, &tp_io_handle); ESP_LOGI(TAG, "Initialize touch controller"); @@ -268,17 +269,17 @@ public: virtual AudioCodec* GetAudioCodec() override { static WaveshareAudioCodec audio_codec( - i2c_bus_, - AUDIO_INPUT_SAMPLE_RATE, + i2c_bus_, + AUDIO_INPUT_SAMPLE_RATE, AUDIO_OUTPUT_SAMPLE_RATE, - BSP_I2S_MCLK, - BSP_I2S_SCLK, - BSP_I2S_LCLK, - BSP_I2S_DOUT, + BSP_I2S_MCLK, + BSP_I2S_SCLK, + BSP_I2S_LCLK, + BSP_I2S_DOUT, BSP_I2S_DSIN, - BSP_PA_PIN, - BSP_CODEC_ES8389_ADDR, - BSP_CODEC_ES7210_ADDR, + BSP_PA_PIN, + BSP_CODEC_ES8389_ADDR, + BSP_CODEC_ES7210_ADDR, AUDIO_INPUT_REFERENCE ); return &audio_codec; @@ -294,6 +295,12 @@ public: virtual bool GetBatteryLevel(int& level, bool& charging, bool& discharging) override { static bool last_discharging = false; + if (bq27220_ == NULL) { + level = 0; + charging = false; + discharging = false; + return false; + } charging = (bq27220_get_current(bq27220_) > 0); discharging = !charging; if (discharging != last_discharging) { @@ -303,7 +310,7 @@ public: level = bq27220_get_state_of_charge(bq27220_); return true; } - + virtual void SetPowerSaveLevel(PowerSaveLevel level) override { if (level != PowerSaveLevel::LOW_POWER) { power_save_timer_->WakeUp(); diff --git a/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.cc b/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.cc index b5d8e72d..6913f02d 100644 --- a/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.cc +++ b/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.cc @@ -165,7 +165,7 @@ void WaveshareAudioCodec::CreateDuplexChannels(gpio_num_t mclk, gpio_num_t bclk, .big_endian = false, .bit_order_lsb = false, .skip_mask = false, - .total_slot = I2S_TDM_AUTO_SLOT_NUM + .total_slot = I2S_TDM_AUTO_SLOT_NUM }, .gpio_cfg = { .mclk = mclk, @@ -237,7 +237,7 @@ void WaveshareAudioCodec::EnableOutput(bool enable) { if (pa_pin_ != GPIO_NUM_NC) { gpio_set_level(pa_pin_, 1); } - } + } else { ESP_ERROR_CHECK(esp_codec_dev_close(output_dev_)); if (pa_pin_ != GPIO_NUM_NC) { diff --git a/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.h b/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.h index 9aeef451..42f6a8db 100644 --- a/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.h +++ b/main/boards/waveshare/esp32-s3-touch-lcd-7c/waveshare_audio_codec.h @@ -22,7 +22,7 @@ private: esp_codec_dev_handle_t input_dev_ = nullptr; gpio_num_t pa_pin_ = GPIO_NUM_NC; std::mutex data_if_mutex_; - + void CreateDuplexChannels(gpio_num_t mclk, gpio_num_t bclk, gpio_num_t ws, gpio_num_t dout, gpio_num_t din); virtual int Read(int16_t* dest, int samples) override;