Fix lcd bug (#443)

* fix: fixed the issue that the LCD does not light up when some devices are turned on.

* fix:  fix task sys_evt  stack overflow.
This commit is contained in:
virgil
2025-04-04 15:33:17 +08:00
committed by GitHub
parent 70883058e8
commit 464633e7a1
3 changed files with 32 additions and 0 deletions

View File

@ -82,6 +82,13 @@
#define DISPLAY_BACKLIGHT_PIN GPIO_NUM_8
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false
/* Touch */
#define BSP_TOUCH_I2C_NUM (1)
#define BSP_TOUCH_GPIO_INT (IO_EXPANDER_PIN_NUM_5)
#define BSP_TOUCH_I2C_SDA (GPIO_NUM_39)
#define BSP_TOUCH_I2C_SCL (GPIO_NUM_38)
#define BSP_TOUCH_I2C_CLK (400000)
/* Settings */
#define DRV_LCD_PIXEL_CLK_HZ (40 * 1000 * 1000)
#define DRV_LCD_CMD_BITS (32)

View File

@ -86,6 +86,29 @@ private:
},
};
ESP_ERROR_CHECK(i2c_new_master_bus(&i2c_bus_cfg, &i2c_bus_));
// pulldown for lcd i2c
const gpio_config_t io_config = {
.pin_bit_mask = (1ULL << BSP_TOUCH_I2C_SDA) | (1ULL << BSP_TOUCH_I2C_SCL) | (1ULL << BSP_SPI3_HOST_PCLK) | (1ULL << BSP_SPI3_HOST_DATA0) | (1ULL << BSP_SPI3_HOST_DATA1)
| (1ULL << BSP_SPI3_HOST_DATA2) | (1ULL << BSP_SPI3_HOST_DATA3) | (1ULL << BSP_LCD_SPI_CS) | (1UL << DISPLAY_BACKLIGHT_PIN),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.intr_type = GPIO_INTR_DISABLE,
};
gpio_config(&io_config);
gpio_set_level(BSP_TOUCH_I2C_SDA, 0);
gpio_set_level(BSP_TOUCH_I2C_SCL, 0);
gpio_set_level(BSP_LCD_SPI_CS, 0);
gpio_set_level(DISPLAY_BACKLIGHT_PIN, 0);
gpio_set_level(BSP_SPI3_HOST_PCLK, 0);
gpio_set_level(BSP_SPI3_HOST_DATA0, 0);
gpio_set_level(BSP_SPI3_HOST_DATA1, 0);
gpio_set_level(BSP_SPI3_HOST_DATA2, 0);
gpio_set_level(BSP_SPI3_HOST_DATA3, 0);
}
esp_err_t IoExpanderSetLevel(uint16_t pin_mask, uint8_t level) {

View File

@ -18,3 +18,5 @@ CONFIG_ESP32S3_DATA_CACHE_64KB=y
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS=y
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096