1. ST7789屏幕与ESP32的基础配置
第一次用ESP32驱动ST7789屏幕时,我被它丰富的显示效果惊艳到了。这块240x320分辨率的TFT屏幕虽然尺寸不大,但色彩表现和刷新率都很不错,特别适合做嵌入式设备的显示模块。不过要实现垂直滚屏这种动态效果,光初始化屏幕可不够,得先打好基础。
初始化配置就像盖房子打地基,我这里分享一个经过实战检验的初始化方案。首先是SPI通信的建立,建议用硬件SPI接口,速度能跑到40MHz。引脚配置要注意MOSI、SCLK这些标准SPI信号线不能接错,DC(数据/命令选择)和RESET引脚也必不可少。下面是我的初始化代码关键部分:
c复制int st7789_init() {
// 硬件SPI初始化(VSPI默认引脚)
spi_bus_config_t buscfg = {
.miso_io_num = -1, // 不需要MISO
.mosi_io_num = 23,
.sclk_io_num = 18,
.quadwp_io_num = -1,
.quadhd_io_num = -1
};
spi_device_interface_config_t devcfg = {
.clock_speed_hz = 40 * 1000 * 1000,
.mode = 0,
.spics_io_num = 5,
.queue_size = 7
};
spi_bus_initialize(VSPI_HOST, &buscfg, 1);
spi_bus_add_device(VSPI_HOST, &devcfg, &spi);
// 关键寄存器配置
send_command(0x36); // MADCTL
send_data(0x00); // 方向控制
send_command(0x3A); // 像素格式
send_data(0x55); // 16位色
// 更多初始化命令...
}
实际项目中遇到过屏幕花屏的问题
