ST7789V là gì?
ST7789V là driver source và gate cho TFT LCD của Sitronix với bộ nhớ khung tích hợp (GRAM). Vì hình ảnh nằm trong driver, vi điều khiển chỉ gửi các pixel thay đổi và không cần frame buffer riêng. Đó là lý do module ST7789V phổ biến trên ESP32, STM32, RP2040 và các board loại Arduino.
Nên dùng giao tiếp nào?
Giao tiếp | Số chân | Ứng dụng điển hình |
|---|---|---|
4-wire SPI | 4–5 | Hầu hết module; đấu dây đơn giản, đến ~60 MHz |
Song song 8080 (MCU) | 12–20 | Làm mới toàn màn hình nhanh hơn trên MCU có FSMC/FMC |
RGB | 18–24 | Hiếm trên module nhỏ; làm mới như video |
Các vấn đề khởi chạy phổ biến
- Màn hình trắng hoặc đen: kiểm tra timing reset và sau SLPOUT phải có độ trễ 120 ms trước DISPON.
- Sai màu: bật/tắt INVON/INVOFF và bit BGR trong MADCTL.
- Ảnh bị lệch: đặt đúng điểm bắt đầu cột/hàng cho tấm nền 240×240 và 135×240.
- Xé hình: dùng chân TE nếu module có đưa chân này ra.
Xem hướng dẫn khắc phục màn hình TFT bị trắng để có danh sách kiểm tra từng bước.
Mã khởi tạo 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);Hỗ trợ thư viện cho ST7789V
| Thư viện | Driver / loại | Ghi chú |
|---|---|---|
| TFT_eSPI (Arduino) | ST7789_DRIVER | |
| LovyanGFX (Arduino / ESP-IDF) | lgfx::Panel_ST7789 | |
| ESP-IDF esp_lcd | esp_lcd_new_panel_st7789() (built in) | |
| Lưu ý | Nhiều tấm nền ST7789 cần bật đảo màu. |
User_Setup_ST7789V.h · LGFX_ST7789V.hpp. Chân chỉ là tạm thời; chúng tôi sẽ gửi email khi bổ sung cấu hình đã kiểm thử.
Board phát triển dùng ST7789V
Module màn hình dùng ST7789V

TFT LCD 2,8" 240×320, SPI (PJ2801H22-23H10P200)
- Kích thước
- 2.8"
- Độ phân giải
- 240×320
- Độ sáng
- 200 nit

TFT LCD 2,4" 240×320, SPI (PJ2401I24-22H30P250)
- Kích thước
- 2.4"
- Độ phân giải
- 240×320
- Độ sáng
- 250 nit

TFT LCD 2,4" 240×320, MCU (PJ2401I02-22H38P300)
- Kích thước
- 2.4"
- Độ phân giải
- 240×320
- Độ sáng
- 300 nit

TFT LCD IPS 2,4" 240×320, SPI / MCU / RGB (PJ2401H28-22H45P200)
- Kích thước
- 2.4"
- Độ phân giải
- 240×320
- Độ sáng
- 200 nit

TFT LCD IPS 2,4" 240×320, SPI / MCU / RGB (PJ2401H25-22H45P200)
- Kích thước
- 2.4"
- Độ phân giải
- 240×320
- Độ sáng
- 200 nit

TFT LCD 2" 240×320, SPI / MCU (PJ2003L02-22H22P300)
- Kích thước
- 2"
- Độ phân giải
- 240×320
- Độ sáng
- 300 nit
ST7789V: xử lý sự cố & FAQ
Vì sao màu trên màn hình ST7789 của tôi bị đảo?
Hầu hết tấm nền IPS dùng ST7789V cần bật đảo màu hiển thị (lệnh 0x21, INVON). Nếu màu trông như phim âm bản, hãy bật/tắt đảo màu; nếu đỏ và xanh dương bị hoán đổi, hãy đổi bit RGB/BGR trong MADCTL (0x36).
ST7789V chịu được clock SPI bao nhiêu?
Nhiều module hoạt động ổn định ở SPI 40–62,5 MHz với dây ngắn. Bắt đầu ở 20 MHz, xác nhận hình ảnh, rồi tăng dần trong khi kiểm tra lỗi hiển thị.
Vì sao ảnh 240×240 của tôi bị lệch 80 pixel?
Bộ nhớ khung của ST7789V là 240×320. Trên tấm nền 240×240, một số hướng xoay cần độ lệch hàng hoặc cột (thường là 80) trong CASET/RASET; hầu hết thư viện cung cấp tùy chọn rowstart/colstart cho việc này.