#include <Arduino.h>
#include <LovyanGFX.hpp>
// Custom setup class for LovyanGFX
class LGFX : public lgfx::LGFX_Device
{
lgfx::Panel_ILI9341 _panel_instance;
lgfx::Bus_SPI _bus_instance;
lgfx::Light_PWM _light_instance;
public:
LGFX(void)
{
{
auto cfg = _bus_instance.config();
cfg.spi_host = VSPI_HOST;
cfg.spi_mode = 0;
cfg.freq_write = 40000000;
cfg.freq_read = 16000000;
cfg.spi_3wire = false;
cfg.use_lock = true;
cfg.dma_channel = 1;
cfg.pin_sclk = 18; // SPI SCK pin
cfg.pin_mosi = 23; // SPI MOSI pin
cfg.pin_miso = 19; // SPI MISO pin (optional)
cfg.pin_dc = 2; // Data/Command pin
_bus_instance.config(cfg);
_panel_instance.setBus(&_bus_instance);
}
{
auto cfg = _panel_instance.config();
cfg.pin_cs = 15; // Chip select pin
cfg.pin_rst = 4; // Reset pin
cfg.pin_busy = -1; // Busy pin (not used)
cfg.panel_width = 240;
cfg.panel_height = 320;
cfg.offset_x = 0;
cfg.offset_y = 0;
cfg.offset_rotation = 0;
cfg.dummy_read_pixel = 8;
cfg.dummy_read_bits = 1;
cfg.invert = false;
cfg.rgb_order = false;
cfg.dlen_16bit = false;
cfg.bus_shared = true;
_panel_instance.config(cfg);
}
{
auto cfg = _light_instance.config();
cfg.pin_bl = 33; // Backlight pin
cfg.invert = false;
cfg.freq = 44100;
cfg.pwm_channel = 7;
_light_instance.config(cfg);
_panel_instance.setLight(&_light_instance);
}
setPanel(&_panel_instance);
}
};
LGFX tft;
void setup() {
Serial.begin(115200);
tft.init();
tft.setRotation(0); // Set rotation to 0, adjust as needed
tft.fillScreen(TFT_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.println("Hello, world!");
}
void loop() {
// Nothing to do in loop
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4