ST7789V คืออะไร?
ST7789V เป็นไดรเวอร์ source และ gate สำหรับ TFT LCD ของ Sitronix ที่มี หน่วยความจำเฟรมในตัว (GRAM) เนื่องจากภาพอยู่ในไดรเวอร์ ไมโครคอนโทรลเลอร์จึงส่งเฉพาะพิกเซลที่เปลี่ยนและไม่ต้องมีเฟรมบัฟเฟอร์ของตัวเอง นี่คือเหตุผลที่โมดูล ST7789V นิยมบน ESP32, STM32, RP2040 และบอร์ดระดับ Arduino
ควรใช้อินเทอร์เฟซใด?
อินเทอร์เฟซ | จำนวนขา | การใช้งานทั่วไป |
|---|---|---|
4-wire SPI | 4–5 | โมดูลส่วนใหญ่ เดินสายง่าย สูงสุด ~60 MHz |
8080 แบบขนาน (MCU) | 12–20 | รีเฟรชเต็มจอเร็วขึ้นบน MCU ที่มี FSMC/FMC |
RGB | 18–24 | พบน้อยในโมดูลขนาดเล็ก รีเฟรชแบบวิดีโอ |
ปัญหาการเริ่มใช้งานที่พบบ่อย
- จอขาวหรือดำ: ตรวจสอบไทมิ่งรีเซ็ต และหลัง SLPOUT ต้องหน่วง 120 ms ก่อน DISPON
- สีผิด: สลับ INVON/INVOFF และบิต BGR ใน MADCTL
- ภาพเลื่อน: ตั้งจุดเริ่มคอลัมน์/แถวให้ถูกต้องสำหรับจอ 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

TFT LCD 2.8" 240×320 SPI (PJ2801H22-23H10P200)
- ขนาด
- 2.8"
- ความละเอียด
- 240×320
- ความสว่าง
- 200 nit

TFT LCD 2.4" 240×320 SPI (PJ2401I24-22H30P250)
- ขนาด
- 2.4"
- ความละเอียด
- 240×320
- ความสว่าง
- 250 nit

TFT LCD 2.4" 240×320 MCU (PJ2401I02-22H38P300)
- ขนาด
- 2.4"
- ความละเอียด
- 240×320
- ความสว่าง
- 300 nit

TFT LCD IPS 2.4" 240×320 SPI / MCU / RGB (PJ2401H28-22H45P200)
- ขนาด
- 2.4"
- ความละเอียด
- 240×320
- ความสว่าง
- 200 nit

TFT LCD IPS 2.4" 240×320 SPI / MCU / RGB (PJ2401H25-22H45P200)
- ขนาด
- 2.4"
- ความละเอียด
- 240×320
- ความสว่าง
- 200 nit

TFT LCD 2" 240×320 SPI / MCU (PJ2003L02-22H22P300)
- ขนาด
- 2"
- ความละเอียด
- 240×320
- ความสว่าง
- 300 nit
การแก้ปัญหาและคำถามที่พบบ่อยของ ST7789V
ทำไมสีบนจอ ST7789 ของฉันกลับด้าน?
จอ IPS ส่วนใหญ่ที่ใช้ ST7789V ต้องเปิดการกลับสีของจอ (คำสั่ง 0x21, INVON) หากสีดูเหมือนฟิล์มเนกาทีฟ ให้สลับการกลับสี หากสีแดงและสีน้ำเงินสลับกัน ให้เปลี่ยนบิต RGB/BGR ใน MADCTL (0x36)
ST7789V รองรับคล็อก SPI ได้เท่าใด?
โมดูลจำนวนมากทำงานได้อย่างเสถียรที่ SPI 40–62.5 MHz เมื่อสายสั้น เริ่มที่ 20 MHz ยืนยันภาพ แล้วค่อยเพิ่มพร้อมตรวจสอบภาพเสียหาย
ทำไมภาพ 240×240 ของฉันเลื่อนไป 80 พิกเซล?
หน่วยความจำเฟรมของ ST7789V คือ 240×320 บนจอ 240×240 การหมุนบางแบบต้องมีออฟเซ็ตแถวหรือคอลัมน์ (มักเป็น 80) ใน CASET/RASET ไลบรารีส่วนใหญ่มีการตั้งค่า rowstart/colstart สำหรับเรื่องนี้