ESP32-2432S022

ESP32-2432s022に日本語を表示する。

esp32-2432s022に表示するプログラムが見つからないので作ってみた。

TFT_eSPでは動かない事が判明したので、LovyanGFXで作成

esp32-2432s022のフォルダにLGFX_2432S022.hppを入れる。

 
--------------- esp32-2432s022.ino -----------------------
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
#include "LGFX_2432S022.hpp"    // ヘッダ
//LGFX_ESP32_2432S022 lcd;
LGFX_2432S022 lcd;
void setup()
{
  lcd.init();
  lcd.setRotation(1);           // 画面の向き(0〜3で変更可)
  lcd.fillScreen(TFT_BLACK);
  // ★ 日本語対応フォントを指定(ゴシック体)
  lcd.setFont(&fonts::lgfxJapanGothic_20);
  lcd.setTextColor(TFT_WHITE, TFT_BLACK);
  lcd.setCursor(10, 40);
  lcd.println("こんにちは");
  lcd.setCursor(10, 80);
  lcd.println("おむつモニター");
  // 1行だけにしたければ、これだけでもOK
  // lcd.drawString("こんにちは", 10, 40);
}
void loop()
{
  // 何もしない
}
 
 
 
 
---------------- LGFX_2432S022.hpp -----------------------------
 
#pragma once
#define LGFX_USE_V1
#include <LovyanGFX.hpp>
class LGFX_2432S022 : public lgfx::LGFX_Device {
  lgfx::Bus_Parallel8 _bus_instance;
  lgfx::Panel_ST7789  _panel_instance;
public:
  LGFX_2432S022(void) {
    { // バス設定(8bitパラレル)
      auto cfg = _bus_instance.config();
      cfg.freq_write = 25000000;  // 書き込み周波数
      cfg.pin_wr = 4;
      cfg.pin_rd = 2;
      cfg.pin_rs = 16;            // DC
      cfg.pin_d0 = 15;
      cfg.pin_d1 = 13;
      cfg.pin_d2 = 12;
      cfg.pin_d3 = 14;
      cfg.pin_d4 = 27;
      cfg.pin_d5 = 25;
      cfg.pin_d6 = 33;
      cfg.pin_d7 = 32;
      _bus_instance.config(cfg);
      _panel_instance.setBus(&_bus_instance);
    }
    { // パネル設定(ST7789 240x320)
      auto cfg = _panel_instance.config();
      cfg.pin_cs  = 17;
      cfg.pin_rst = -1;
      cfg.pin_busy = -1;
      cfg.panel_width  = 240;
      cfg.panel_height = 320;
      cfg.offset_x = 0;
      cfg.offset_y = 0;
      cfg.offset_rotation = 0;
      cfg.readable   = false;
      cfg.invert     = false;
      cfg.rgb_order  = false;
      cfg.dlen_16bit = false;
      cfg.bus_shared = true;
      _panel_instance.config(cfg);
    }
    setPanel(&_panel_instance);
  }
};