#pragma once #define LGFX_USE_V1 #include class LGFX : public lgfx::LGFX_Device { lgfx::Panel_ST7789 _panel_instance; lgfx::Bus_SPI _bus_instance; lgfx::Light_PWM _light_instance; lgfx::Touch_CST816S _touch_instance; public: LGFX(void) { { auto cfg = _bus_instance.config(); // SPI cfg.spi_host = VSPI_HOST; cfg.spi_mode = 0; cfg.freq_write = 40000000; cfg.freq_read = 16000000; cfg.spi_3wire = true; cfg.use_lock = true; cfg.dma_channel = SPI_DMA_CH_AUTO; cfg.pin_sclk = 18; cfg.pin_mosi = 19; cfg.pin_miso = -1; cfg.pin_dc = 2; _bus_instance.config(cfg); _panel_instance.setBus(&_bus_instance); } { auto cfg = _panel_instance.config(); cfg.pin_cs = 5; cfg.pin_rst = 15; cfg.pin_busy = -1; cfg.panel_width = 240; cfg.panel_height = 300; cfg.offset_x = 0; cfg.offset_y = 0; cfg.offset_rotation = 2; cfg.dummy_read_pixel = 8; cfg.dummy_read_bits = 1; cfg.readable = true; 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 = 4; cfg.invert = false; cfg.freq = 44100; cfg.pwm_channel = 7; _light_instance.config(cfg); _panel_instance.setLight(&_light_instance); } //*/ //* { auto cfg = _touch_instance.config(); cfg.x_min = 0; cfg.x_max = 240; cfg.y_min = 0; cfg.y_max = 280; cfg.pin_int = 13; cfg.bus_shared = false; cfg.offset_rotation = 0; // I2C cfg.i2c_port = 0; cfg.i2c_addr = 0x15; cfg.pin_sda = 21; cfg.pin_scl = 22; cfg.freq = 400000; _touch_instance.config(cfg); _panel_instance.setTouch(&_touch_instance); } //*/ setPanel(&_panel_instance); } };