ST7789V とは?
ST7789V は Sitronix 製の TFT LCD ソース・ゲートドライバで、フレームメモリ(GRAM)を内蔵しています。画像はドライバ内に保持されるため、マイコンは変化したピクセルだけを送ればよく、自前のフレームバッファは不要です。そのため ST7789V モジュールは ESP32、STM32、RP2040、Arduino クラスのボードで人気があります。
どのインターフェースを使うべきか
インターフェース | ピン数 | 主な用途 |
|---|---|---|
4-wire SPI | 4–5 | ほとんどのモジュール。配線が簡単、最大 約 60 MHz |
8080 パラレル(MCU) | 12–20 | FSMC/FMC 搭載 MCU での高速な全画面リフレッシュ |
RGB | 18–24 | 小型モジュールではまれ。動画のようなリフレッシュ |
よくある立ち上げの問題
- 白画面または黒画面:リセットのタイミングと、SLPOUT の後 DISPON の前に 120 ms 待っているかを確認します。
- 色がおかしい: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 トラブルシューティングと FAQ
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 の設定として提供しています。