什么是 ST7789V?
ST7789V 是矽创(Sitronix)的 TFT LCD 源极和栅极驱动,集成帧存储(GRAM)。由于图像保存在驱动内部,单片机只需发送变化的像素,不需要自己的帧缓冲。这就是 ST7789V 模组在 ESP32、STM32、RP2040 和 Arduino 类主板上流行的原因。
该用哪种接口?
接口 | 引脚数 | 典型用途 |
|---|---|---|
4 线 SPI | 4–5 | 大多数模组;接线简单,最高约 60 MHz |
8080 并口(MCU) | 12–20 | 在带 FSMC/FMC 的 MCU 上整屏刷新更快 |
RGB | 18–24 | 小模组上少见;类似视频的刷新 |
常见点屏问题
- 白屏或黑屏:检查复位时序,并确认 SLPOUT 之后延时 120 ms 再发 DISPON。
- 颜色错误:切换 INVON/INVOFF 以及 MADCTL 中的 BGR 位。
- 画面偏移:为 240×240 和 135×240 面板设置正确的列/行起始地址。
- 撕裂:如果模组引出了 TE 引脚,请使用它。
逐步检查清单请参见我们的 TFT 白屏排障指南。
ST7789V 初始化代码
// Reference init sequence. Adjust MADCTL, inversion and offsets per panel.
write_cmd(0x01); // SWRESET
delay_ms(150);
write_cmd(0x11); // SLPOUT
delay_ms(120);
write_cmd(0x3A); write_data(0x55); // COLMOD: 16-bit RGB565
write_cmd(0x36); write_data(0x00); // MADCTL: rotation / RGB order
write_cmd(0x21); // INVON: most IPS panels need inversion
write_cmd(0x13); // NORON
write_cmd(0x29); // DISPON
delay_ms(20);ST7789V 库支持
| 库 | 驱动 / 类 | 备注 |
|---|---|---|
| TFT_eSPI (Arduino) | ST7789_DRIVER | |
| LovyanGFX (Arduino / ESP-IDF) | lgfx::Panel_ST7789 | |
| ESP-IDF esp_lcd | esp_lcd_new_panel_st7789() (built in) | |
| 备注 | 许多 ST7789 面板需要开启颜色反转。 |
User_Setup_ST7789V.h · LGFX_ST7789V.hpp. 引脚为占位符;增加经过测试的配置后会邮件通知你。
使用 ST7789V 的开发板
使用 ST7789V 的显示模组

2.8" 240×320 TFT LCD,SPI 接口(PJ2801H22-23H10P200)
- 尺寸
- 2.8"
- 分辨率
- 240×320
- 亮度
- 200 nits

2.4" 240×320 TFT LCD,SPI 接口(PJ2401I24-22H30P250)
- 尺寸
- 2.4"
- 分辨率
- 240×320
- 亮度
- 250 nits

2.4" 240×320 TFT LCD,MCU 接口(PJ2401I02-22H38P300)
- 尺寸
- 2.4"
- 分辨率
- 240×320
- 亮度
- 300 nits

2.4" 240×320 IPS TFT LCD,SPI / MCU / RGB 接口(PJ2401H28-22H45P200)
- 尺寸
- 2.4"
- 分辨率
- 240×320
- 亮度
- 200 nits

2.4" 240×320 IPS TFT LCD,SPI / MCU / RGB 接口(PJ2401H25-22H45P200)
- 尺寸
- 2.4"
- 分辨率
- 240×320
- 亮度
- 200 nits

2" 240×320 TFT LCD,SPI / MCU 接口(PJ2003L02-22H22P300)
- 尺寸
- 2"
- 分辨率
- 240×320
- 亮度
- 300 nits
ST7789V 排障与常见问题
为什么我的 ST7789 显示屏颜色反了?
大多数采用 ST7789V 的 IPS 面板需要开启显示反转(命令 0x21,INVON)。如果颜色像照片底片,切换反转;如果红蓝互换,修改 MADCTL(0x36)中的 RGB/BGR 位。
ST7789V 能承受多高的 SPI 时钟?
许多模组在接线较短时,40–62.5 MHz SPI 都能稳定工作。先从 20 MHz 开始确认画面,再逐步提高并检查是否花屏。
为什么我的 240×240 画面偏移了 80 像素?
ST7789V 的帧存储是 240×320。在 240×240 面板上,某些旋转方向需要在 CASET/RASET 中加行或列偏移(通常为 80);大多数库把它作为 rowstart/colstart 设置提供。