ESP32S3N16R8驱动ST7701S屏幕(vscode+PlatfoemIO)

1.开发板配置

本人开发板使用ESP32S3-wroom1-n16r8最小系统板

由于基于vscode与PlatformIO框架开发,无espidf框架,因此无法直接烧录程序,配置开发板参数如下:

在platformio.ini文件中,配置使用esp32-s3-devkitc-1开发板型号,自行指定flash和psram运行模式,启用psram并指定大小,开启串口调试即可

[env:esp32s3_wroom]
platform = espressif32
board = esp32-s3-devkitc-1  ; 使用N16版本的板型
framework = arduinoboard_build.arduino.partitions = default_16MB.csv
; 指定FLASH和PSRAM的运行模式
board_build.arduino.memory_type = qio_opi
; 指定FLASH容量为16MB
board_upload.flash_size = 16MB
upload_speed = 921600
upload_port = COM17      ; 根据实际端口修改
monitor_speed = 115200
build_flags = -DBOARD_HAS_PSRAM   ; 启用PSRAM-DPSRAM_SIZE=8      ; 指定8MB PSRAM-DARDUINO_USB_MODE=1              ;开启串口调试-DARDUINO_USB_CDC_ON_BOOT=1-DARDUINO_RUNNING_CORE=1-DARDUINO_EVENT_RUNNING_CORE=1lib_deps = bodmer/TFT_eSPI@^2.5.43moononournation/GFX Library for Arduino@^1.5.4

主要博文:VS Code+platformio配置ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)工程 - Macrored - 博客园

2.安装GFX显示屏库

直接搜索gfx下滑即可,选择加入到工程文件中

 之后选择自己的工程文件夹添加即可

3.修改配置文件

打开该目录,基于个人开发板可能文件目录不同,将PDQ文件夹下所有h文件复制到主文件夹下(main.cpp同级目录)

 

4.之后修改其中两个文件,开启esp32s3 rgb配置

5.修改配置引脚

在第四步同一文件夹下,修改配置spi引脚

之后根据自身显示屏尺寸外形,选择对应rgb引脚配置函数,我使用的为2寸方形屏幕,因此使用option4

之后根据实际硬件接线,修改该函数下引脚配置

 Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(13 /* DE */, 12 /* VSYNC */, 11 /* HSYNC */, 14 /* PCLK */,10 /* R0 */, 9 /* R1 */, 8 /* R2 */, 7 /* R3 */, 6 /* R4 */,5 /* G0 */, 4 /* G1 */, 3 /* G2 */, 2 /* G3 */, 1 /* G4 */, 17 /* G5 */,40 /* B0 */, 39 /* B1 */, 38 /* B2 */, 47 /* B3 */, 45 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 640 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type11_init_operations, sizeof(st7701_type11_init_operations));

 

屏幕引脚序号屏幕引脚定义esp32s3引脚序号
1leda3.3引脚可拉高
2ledkgnd
3vcc3.3拉高
4gnggnd
5gnggnd
6gnggnd
7gnggnd
8gnggnd
9gnggnd
10gnggnd
11gnggnd
12gnggnd
13gnggnd
14vs12
15hs11
16pclk14
17de13
18b040
19b139
20b238
21b347
22b445
23g05
24g14
25g23
26g32
27g41
28g517
29r010
30r19
31r28
32r37
33r46
34rest46(屏幕初始化)19引脚不可用
35cs15
36scl16
37sda21
38gndgnd
39vcc3.3拉高
     3.3拉高引脚20 19 18

此时特别注意屏幕中RESET引脚,后续修改屏幕底层驱动时,不同厂家屏幕,屏幕底层驱动初始化需要RESET引脚电平触发。

6.修改屏幕分辨率

根据自身购买屏幕分辨率,修改对应参数

7.修改屏幕初始化函数(需要商家提供资料)

打开屏幕初始化函数

根据自身屏幕驱动资料,修改对应寄存器配置内容(该函数中不可调用延时等函数,用宏定义即可),商家屏幕部分驱动资料:

RST即为屏幕的RESET引脚,如需配置电平初始化,在屏幕启动函数之前单独配置电平即可,延时函数推荐使用微秒级延时函数。

之后根据商家资料,更改每个指令中寄存器配置内容,注意com与dat不同函数区别。

main.cpp中,step函数配置RESET引脚即可 

8.配置主函数

主函数中配置对应指令,烧录程序即可。

9.注意事项

1.打开开发板的PSRAM功能并配置

2.如果出现竖状彩色条纹花屏,检查以下配置内容:

  显示屏初始化函数 st7701_type11_init_operations

  显示屏底层驱动中寄存器配置

  显示屏分辨率,引脚配置

  显示屏初始化引脚RESET引脚

3.注意显示屏模式rgb656还是rgb888,涉及显示屏初始化驱动函数内容修改

10.附上相关文件代码

main.cpp

#include <Arduino_GFX_Library.h>
#include <Arduino_GFX_dev_device.h>
/*
#include <Arduino_DataBus.h>
#include <Arduino_G.h>
#include <Arduino_GFX.h>
#include <Arduino_TFT.h>
#include <Arduino_TFT_18bit.h>
#include <YCbCr2RGB.h>
#include <gfxfont.h>
*/// 使用extern声明外部变量
//extern Arduino_DataBus *bus;          // 声明外部数据总线
//extern Arduino_ESP32RGBPanel *rgbpanel; // 声明外部RGB面板
//extern Arduino_RGB_Display *gfx;      // 声明外部RGB显示对象const int RESET=46;   //定义屏幕复位引脚,涉及屏幕初始化     
void setup() {Serial.begin(115200);Serial.println("ESP32-S3 启动");Serial.println("初始化GPIO引脚...");pinMode(20, OUTPUT);    pinMode(18, OUTPUT); pinMode(48, OUTPUT); digitalWrite(20, HIGH);digitalWrite(18, HIGH);digitalWrite(48,HIGH);Serial.println("GPIO引脚初始化完成");Serial.println("开始初始化显示屏...");//显示屏初始化 RST引脚配置pinMode(RESET, OUTPUT);digitalWrite(RESET, HIGH);    delayMicroseconds(1000);		digitalWrite(RESET, LOW);  delayMicroseconds(5000);digitalWrite(RESET, HIGH);  delayMicroseconds(50000);if (!gfx->begin()) {Serial.println("显示屏初始化失败!");} else {Serial.println("显示屏初始化成功!");}// 初始化显示gfx->fillScreen(WHITE);delay(1000);
}void loop() {gfx->fillScreen(RED);delay(1000);gfx->fillScreen(GREEN);delay(1000);gfx->fillScreen(BLUE);delay(1000);gfx->drawCircle(250, 250, 50, RED);  Serial.println("ok");  // 在屏幕中心画圆delay(1000);/* gfx->fillCircle(240, 240, 40, GREEN);  // 填充圆delay(1000);gfx->drawRect(190, 190, 100, 100, BLUE); // 画矩形delay(1000); */
}

platformIO.ini


[env:esp32s3_wroom]
platform = espressif32
board = esp32-s3-devkitc-1  ; 使用N16版本的板型
framework = arduinoboard_build.arduino.partitions = default_16MB.csv
; 指定FLASH和PSRAM的运行模式
board_build.arduino.memory_type = qio_opi
; 指定FLASH容量为16MB
board_upload.flash_size = 16MB
upload_speed = 921600
upload_port = COM17      ; 根据实际端口修改
monitor_speed = 115200
build_flags = -DBOARD_HAS_PSRAM   ; 启用PSRAM-DPSRAM_SIZE=8      ; 指定8MB PSRAM-DARDUINO_USB_MODE=1-DARDUINO_USB_CDC_ON_BOOT=1-DARDUINO_RUNNING_CORE=1-DARDUINO_EVENT_RUNNING_CORE=1lib_deps = bodmer/TFT_eSPI@^2.5.43moononournation/GFX Library for Arduino@^1.5.4

  屏幕初始化底层驱动函数(Arduino_RGB_Display.h文件中)

static const uint8_t st7701_type11_init_operations[] = {BEGIN_WRITE,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,WRITE_COMMAND_8, 0xEF,WRITE_BYTES, 1, 0x08,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x10,WRITE_C8_D16, 0xC0, 0x4F, 0x00,WRITE_C8_D16, 0xC1, 0x11, 0x0C,WRITE_C8_D16, 0xC2, 0x07, 0x0A,WRITE_COMMAND_8, 0xC3,WRITE_BYTES, 3, 0x83, 0x33, 0x1B,//WRITE_C8_D8, 0xCC, 0x10, // changed by manufactureWRITE_COMMAND_8, 0xB0, // Positive Voltage Gamma ControlWRITE_BYTES, 16,0x00, 0x0F, 0x18, 0x0D,0x12, 0x07, 0x05, 0x08,0x07, 0x21, 0x30, 0x10,0x0F, 0x26, 0x2F, 0x1F,WRITE_COMMAND_8, 0xB1, // Negative Voltage Gamma ControlWRITE_BYTES, 16,0x00, 0x1B, 0x20, 0x0C,0x0E, 0x03, 0x08, 0x08,0x08, 0x22, 0x05, 0x11,0x0F, 0x2A, 0x32, 0x1F,// PAGE1WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x11,WRITE_C8_D8, 0xB0, 0x35, // Vop=4.7375vWRITE_C8_D8, 0xB1, 0x52, // VCOM=32WRITE_C8_D8, 0xB2, 0x81, // VGH=15vWRITE_C8_D8, 0xB3, 0x80,WRITE_C8_D8, 0xB5, 0x4E, // VGL=-10.17vWRITE_C8_D8, 0xB7, 0x85,WRITE_C8_D8, 0xB8, 0x21, // AVDD=6.6 & AVCL=-4.6WRITE_C8_D8, 0xC0, 0x09,WRITE_C8_D8, 0xC1, 0x78,WRITE_C8_D8, 0xC2, 0x78,WRITE_C8_D8, 0xD0, 0x88,WRITE_COMMAND_8, 0xE0,WRITE_BYTES, 3, 0x00, 0xA0, 0x02,WRITE_COMMAND_8, 0xE1,WRITE_BYTES, 11,0x06, 0xA0, 0x08, 0xA0,0x05, 0xA0, 0x07, 0xA0,0x00, 0x44, 0x44,WRITE_COMMAND_8, 0xE2,WRITE_BYTES, 13,0x20, 0x20, 0x40, 0x40,0x96, 0xA0, 0x00, 0x00,0x96, 0xA0, 0x00, 0x00,0x00,WRITE_COMMAND_8, 0xE3,WRITE_BYTES, 4, 0x00, 0x00, 0x22, 0x22,WRITE_C8_D16, 0xE4, 0x44, 0x44,WRITE_COMMAND_8, 0xE5,WRITE_BYTES, 16,0x0E, 0x97, 0x10, 0xA0,0x10, 0x99, 0x10, 0xA0,0x0A, 0x93, 0x10, 0xA0,0x0C, 0x95, 0x10, 0xA0,WRITE_COMMAND_8, 0xE6,WRITE_BYTES, 4, 0x00, 0x00, 0x22, 0x22,WRITE_C8_D16, 0xE7, 0x44, 0x44,WRITE_COMMAND_8, 0xE8,WRITE_BYTES, 16,0x0D, 0x96, 0x10, 0xA0,0x0F, 0x98, 0x10, 0xA0,0x09, 0x92, 0x10, 0xA0,0x0B, 0x94, 0x10, 0xA0,WRITE_COMMAND_8, 0xEB,WRITE_BYTES, 7,0x00, 0x01, 0x4E, 0x4E,0x44, 0x88, 0x40,WRITE_C8_D16, 0xEC, 0x78, 0x00,WRITE_COMMAND_8, 0xED,WRITE_BYTES, 16,0xFF, 0xFA, 0x2F, 0x89,0x76, 0x54, 0x01, 0xFF,0xFF, 0x10, 0x45, 0x67,0x98, 0xF2, 0xAF, 0xFF,//-----------VAP & VAN---------------WRITE_COMMAND_8, 0xEF,WRITE_BYTES, 6, 0x08, 0x08, 0x08, 0x45, 0x3F,0x54,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,WRITE_COMMAND_8, 0xE8,WRITE_BYTES, 8, 0x00, 0x0E, 0xFF, 0x77, 0x01, 0x00, 0x00, 0x00,WRITE_COMMAND_8, 0x11,// Sleep OutEND_WRITE,DELAY, 120,BEGIN_WRITE,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,WRITE_COMMAND_8, 0xE8,WRITE_BYTES, 2, 0x00, 0x0C,END_WRITE,DELAY, 10,BEGIN_WRITE,WRITE_COMMAND_8, 0xE8,WRITE_BYTES, 2, 0x00, 0x00,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x00,WRITE_COMMAND_8, 0x3A,WRITE_BYTES, 1, 0x55,     // RGB565// WRITE_BYTES, 1, 0x77,     // RGB888WRITE_COMMAND_8, 0x29, // Display OnWRITE_BYTES, 1, 0x00,END_WRITE};// Init code for 480x480 round TL021WVC02 display
static const uint8_t TL021WVC02_init_operations[] = {BEGIN_WRITE,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x10,WRITE_C8_D16, 0xC0, 0x3B, 0x00,WRITE_C8_D16, 0xC1, 0x0B, 0x02, // VBPWRITE_C8_D16, 0xC2, 0x00, 0x02,WRITE_C8_D8, 0xCC, 0x10,WRITE_C8_D8, 0xCD, 0x08,WRITE_COMMAND_8, 0xB0, // Positive Voltage Gamma ControlWRITE_BYTES, 16,0x02, 0x13, 0x1B, 0x0D,0x10, 0x05, 0x08, 0x07,0x07, 0x24, 0x04, 0x11,0x0E, 0x2C, 0x33, 0x1D,WRITE_COMMAND_8, 0xB1, // Negative Voltage Gamma ControlWRITE_BYTES, 16,0x05, 0x13, 0x1B, 0x0D,0x11, 0x05, 0x08, 0x07,0x07, 0x24, 0x04, 0x11,0x0E, 0x2C, 0x33, 0x1D,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x11,WRITE_C8_D8, 0xB0, 0x5d, // 5dWRITE_C8_D8, 0xB1, 0x43, // VCOM amplitude settingWRITE_C8_D8, 0xB2, 0x81, // VGH Voltage setting, 12VWRITE_C8_D8, 0xB3, 0x80,WRITE_C8_D8, 0xB5, 0x43, // VGL Voltage setting, -8.3VWRITE_C8_D8, 0xB7, 0x85,WRITE_C8_D8, 0xB8, 0x20,WRITE_C8_D8, 0xC1, 0x78,WRITE_C8_D8, 0xC2, 0x78,WRITE_C8_D8, 0xD0, 0x88,WRITE_COMMAND_8, 0xE0,WRITE_BYTES, 3, 0x00, 0x00, 0x02,WRITE_COMMAND_8, 0xE1,WRITE_BYTES, 11,0x03, 0xA0, 0x00, 0x00,0x04, 0xA0, 0x00, 0x00,0x00, 0x20, 0x20,WRITE_COMMAND_8, 0xE2,WRITE_BYTES, 13,0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00,0x00,WRITE_COMMAND_8, 0xE3,WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x00,WRITE_C8_D16, 0xE4, 0x22, 0x00,WRITE_COMMAND_8, 0xE5,WRITE_BYTES, 16,0x05, 0xEC, 0xA0, 0xA0,0x07, 0xEE, 0xA0, 0xA0,0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00,WRITE_COMMAND_8, 0xE6,WRITE_BYTES, 4, 0x00, 0x00, 0x11, 0x00,WRITE_C8_D16, 0xE7, 0x22, 0x00,WRITE_COMMAND_8, 0xE8,WRITE_BYTES, 16,0x06, 0xED, 0xA0, 0xA0,0x08, 0xEF, 0xA0, 0xA0,0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00,WRITE_COMMAND_8, 0xEB,WRITE_BYTES, 7,0x00, 0x00, 0x40, 0x40,0x00, 0x00, 0x00,WRITE_COMMAND_8, 0xED,WRITE_BYTES, 16,0xFF, 0xFF, 0xFF, 0xBA,0x0A, 0xBF, 0x45, 0xFF,0xFF, 0x54, 0xFB, 0xA0,0xAB, 0xFF, 0xFF, 0xFF,WRITE_COMMAND_8, 0xEF,WRITE_BYTES, 6,0x10, 0x0D, 0x04, 0x08,0x3F, 0x1F,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x13,WRITE_C8_D8, 0xEF, 0x08,WRITE_COMMAND_8, 0xFF,WRITE_BYTES, 5, 0x77, 0x01, 0x00, 0x00, 0x00,WRITE_C8_D8, 0x36, 0x00,WRITE_C8_D8, 0x3A, 0x60, // 0x70 RGB888, 0x60 RGB666, 0x50 RGB565WRITE_COMMAND_8, 0x11, // Sleep OutEND_WRITE,DELAY, 100,BEGIN_WRITE,WRITE_COMMAND_8, 0x29, // Display OnEND_WRITE,DELAY, 50};

Arduino-GFX-dev-devich.h文件

// #define AD35_S3
// #define BLOCKCODELAB_ARCADE_LITE
// #define DLC35010R // or called "Elecrow ESP Terminal with 3.5inch Parallel RGB Capacitive Touch Display (ILI9488)"
// #define DRAGON_RADAR
// #define ESP32_1732S019
// #define ESP32_2424012
// #define ESP32_2432S028
// #define ESP32_3248S035
// #define ESP32_4827A043 /* requires manual set bus speed to 8 mHz: gfx->begin(8000000) */
// #define ESP32_4827A043_QSPI
// #define ESP32_4827S043
// #define ESP32_4848S040_86BOX_GUITION
// #define ESP32_8048S043
// #define ESP32_8048S070
// #define ESP32_LCDKIT_SPI
// #define ESP32_LCDKIT_PAR8A
// #define ESP32_LCDKIT_PAR8B
// #define ESP32_LCDKIT_PAR16
// #define ESP32_S3_313LCD
// #define ESP32_S3_BOX_3
// #define ESP32_S3_EYE#define ESP32_S3_RGB
// #define ESP32_S3_RPI_DPI
// #define ESP32S3_2_1_TP
// #define GS_T3E // Golden Security GS-T3E
// #define IBUBLY
// #define JC1060P470
// #define JC3248W535
// #define JC3636W518
// #define LILYGO_T_DECK
// #define LILYGO_T_DECK_PLUS
// #define LILYGO_T_DISPLAY
// #define LILYGO_T_DISPLAY_S3
// #define LILYGO_T_Display_S3_AMOLED
// #define LILYGO_T_Display_S3_AMOLED_1_64
// #define LILYGO_T_Display_S3_LONG
// #define LILYGO_T_DISPLAY_S3_PRO
// #define LILYGO_T_QT
// #define LILYGO_T_RGB
// #define LILYGO_T_TRACK
// #define LILYGO_T_WATCH_2021
// #define LILYGO_T4_S3
// #define MAKERFABS_TFT_TOUCH_3_5
// #define MAKERFABS_ESP32_S3_TFT_4_0
// #define MAKERFABS_ESP32_S3_TFT_4_3_v1_3
// #define WT32_SC01
// #define XIAO_SAMD21_ROUND_DISPLAY
// #define XIAO_ESP32C3_ROUND_DISPLAY
// #define XIAO_ESP32S3_ROUND_DISPLAY
// #define WAVESHARE_ESP32_S3_LCD_2_8
// #define WAVESHARE_RP2040_LCD_0_96
// #define WZ8048C050 // or called "Elecrow Wizee-ESP32"
// #define ZX2D10GE10R_V4848
// #define ZX3D50CE02S // or called "WT32-SC01 PLUS"
// #define ZX3D95CE01S_AR
// #define ZX3D95CE01S_TR
// #define ZX7D00CE01S // or called "QM Smart Panlee 7.0 inch serial screen"#if defined(AD35_S3)
#define GFX_DEV_DEVICE AD35_S3
#include <Wire.h>
#include <Adafruit_AW9523.h>
Adafruit_AW9523 aw;
#define DEV_DEVICE_INIT()                     \{                                           \Wire.begin(6 /* SDA */, 5 /* SCL */);     \aw.begin(0x59);                           \aw.pinMode(8, OUTPUT);     /* LCD_LEDK */ \aw.pinMode(9, OUTPUT);     /* LCD_LEDK */ \aw.pinMode(10, OUTPUT);    /* LCD_LEDK */ \aw.pinMode(11, OUTPUT);    /* LCD_LEDK */ \aw.pinMode(14, OUTPUT);    /* LCD_RST */  \aw.digitalWrite(8, LOW);   /* LCD_LEDK */ \aw.digitalWrite(9, LOW);   /* LCD_LEDK */ \aw.digitalWrite(10, LOW);  /* LCD_LEDK */ \aw.digitalWrite(11, LOW);  /* LCD_LEDK */ \aw.digitalWrite(14, HIGH); /* LCD_RST */  \}
Arduino_DataBus *bus = new Arduino_ESP32LCD8(45 /* DC */, GFX_NOT_DEFINED /* CS */, 10 /* WR */, GFX_NOT_DEFINED /* RD */,9 /* D0 */, 4 /* D1 */, 3 /* D2 */, 8 /* D3 */, 18 /* D4 */, 17 /* D5 */, 16 /* D6 */, 15 /* D7 */);
Arduino_GFX *gfx = new Arduino_ST7796(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(BLOCKCODELAB_ARCADE_LITE)
#define GFX_DEV_DEVICE BLOCKCODELAB_ARCADE_LITE
#define GFX_BL 21
Arduino_DataBus *bus = new Arduino_ESP32SPI(45 /* DC */, 10 /* CS */, 12 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */, HSPI /* spi_num */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, 46 /* RST */, 3 /* rotation */, false /* IPS */);#elif defined(DLC35010R)
#define GFX_DEV_DEVICE DLC35010R
#define GFX_BL 46
Arduino_DataBus *bus = new Arduino_ESP32PAR16(45 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, 48 /* RD */,47 /* D0 */, 21 /* D1 */, 14 /* D2 */, 13 /* D3 */, 12 /* D4 */, 11 /* D5 */, 10 /* D6 */, 9 /* D7 */,3 /* D8 */, 8 /* D9 */, 16 /* D10 */, 15 /* D11 */, 7 /* D12 */, 6 /* D13 */, 5 /* D14 */, 4 /* D15 */);
Arduino_GFX *gfx = new Arduino_ILI9488(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, false /* IPS */);#elif defined(DRAGON_RADAR)
#define GFX_DEV_DEVICE DRAGON_RADAR
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 39 /* CS */,48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,11 /* R0 */, 12 /* R1 */, 13 /* R2 */, 45 /* R3 */, 0 /* R4 */,8 /* G0 */, 19 /* G1 */, 20 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,4 /* B0 */, 5 /* B1 */, 6 /* B2 */, 7 /* B3 */, 15 /* B4 */,1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type6_init_operations, sizeof(st7701_type6_init_operations));#elif defined(ESP32_1732S019)
#define GFX_DEV_DEVICE ESP32_1732S019
#define GFX_BL 14
Arduino_DataBus *bus = new Arduino_ESP32SPI(11 /* DC */, 10 /* CS */, 12 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, 1 /* RST */, 0 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);#elif defined(ESP32_2424012)
#define GFX_DEV_DEVICE ESP32_2424012
#define GFX_BL 8
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 10 /* CS */, 6 /* SCK */, 7 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(ESP32_2432S028)
#define GFX_DEV_DEVICE ESP32_2432S028
#define GFX_BL 21
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);#elif defined(ESP32_3248S035)
#define GFX_DEV_DEVICE ESP32_3248S035
#define GFX_BL 27
Arduino_DataBus *bus = new Arduino_ESP32SPI(2 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */, VSPI /* spi_num */);
Arduino_GFX *gfx = new Arduino_ST7796(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);#elif defined(ESP32_4827A043)
#define GFX_DEV_DEVICE ESP32_4827A043
#define GFX_BL 2
Arduino_DataBus *bus = new Arduino_ESP32LCD16(48 /* DC */, 45 /* CS */, 47 /* WR */, 21 /* RD */,5 /* D0 */, 6 /* D1 */, 7 /* D2 */, 15 /* D3 */, 16 /* D4 */, 4 /* D5 */, 8 /* D6 */, 3 /* D7 */,46 /* D8 */, 9 /* D9 */, 1 /* D10 */, 42 /* D11 */, 39 /* D12 */, 41 /* D13 */, 40 /* D14 */, 14 /* D15 */);
Arduino_GFX *gfx = new Arduino_NV3041A(bus, 17 /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(ESP32_4827A043_QSPI)
#define GFX_DEV_DEVICE ESP32_4827A043_QSPI
#define GFX_BL 1
Arduino_DataBus *bus = new Arduino_ESP32QSPI(45 /* CS */, 47 /* SCK */, 21 /* D0 */, 48 /* D1 */, 40 /* D2 */, 39 /* D3 */);
Arduino_GFX *gfx = new Arduino_NV3041A(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(ESP32_4827S043)
#define GFX_DEV_DEVICE ESP32_4827S043
#define GFX_BL 2
#define RGB_PANEL
// option 1:
// Uncomment for ILI6485 LCD 480x272
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,0 /* hsync_polarity */, 1 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 43 /* hsync_back_porch */,0 /* vsync_polarity */, 3 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 12 /* vsync_back_porch */,1 /* pclk_active_neg */, 10000000 /* prefer_speed */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 272 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
// option 2:
// Uncomment for ST7262 IPS LCD 800x480
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
//     40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
//     45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
//     5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
//     8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
//     0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 8 /* hsync_back_porch */,
//     0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 8 /* vsync_back_porch */,
//     1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//     800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);
// option 3:
// Uncomment for RPi DPI 1024x600
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
//     40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,
//     45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,
//     5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,
//     8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,
//     0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 43 /* hsync_back_porch */,
//     0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 12 /* vsync_back_porch */,
//     1 /* pclk_active_neg */, 9000000 /* prefer_speed */);
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//     1024 /* width */, 600 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);/* 4.0" 86BOX from GUITION ESP32-4848S040 display */
#elif defined(ESP32_4848S040_86BOX_GUITION)
#define GFX_DEV_DEVICE ESP32_4848S040_86BOX_GUITION
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 39 /* CS */,48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,11 /* R0 */, 12 /* R1 */, 13 /* R2 */, 14 /* R3 */, 0 /* R4 */,8 /* G0 */, 20 /* G1 */, 3 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,4 /* B0 */, 5 /* B1 */, 6 /* B2 */, 7 /* B3 */, 15 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 1 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type9_init_operations, sizeof(st7701_type9_init_operations));#elif defined(ESP32_8048S043)
#define GFX_DEV_DEVICE ESP32_8048S043
#define GFX_BL 2
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 8 /* hsync_back_porch */,0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 8 /* vsync_back_porch */,1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);#elif defined(ESP32_8048S070)
#define GFX_DEV_DEVICE ESP32_8048S070
#define GFX_BL 2
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(41 /* DE */, 40 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,14 /* R0 */, 21 /* R1 */, 47 /* R2 */, 48 /* R3 */, 45 /* R4 */,9 /* G0 */, 46 /* G1 */, 3 /* G2 */, 8 /* G3 */, 16 /* G4 */, 1 /* G5 */,15 /* B0 */, 7 /* B1 */, 6 /* B2 */, 5 /* B3 */, 4 /* B4 */,0 /* hsync_polarity */, 180 /* hsync_front_porch */, 30 /* hsync_pulse_width */, 16 /* hsync_back_porch */,0 /* vsync_polarity */, 12 /* vsync_front_porch */, 13 /* vsync_pulse_width */, 10 /* vsync_back_porch */,1 /* pclk_active_neg */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);#elif defined(ESP32_LCDKIT_SPI)
#define GFX_DEV_DEVICE ESP32_LCDKIT_SPI
#define GFX_BL 23
Arduino_DataBus *bus = new Arduino_ESP32SPI(19 /* DC */, 5 /* CS */, 22 /* SCK */, 21 /* MOSI */, 27 /* MISO */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, 18 /* RST */, 1 /* rotation */);#elif defined(ESP32_LCDKIT_PAR8A)
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR8A
Arduino_DataBus *bus = new Arduino_ESP32PAR8(5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */, 19 /* D0 */, 21 /* D1 */, 0 /* D2 */, 22 /* D3 */, 23 /* D4 */, 33 /* D5 */, 32 /* D6 */, 27 /* D7 */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);#elif defined(ESP32_LCDKIT_PAR8B)
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR8B
Arduino_DataBus *bus = new Arduino_ESP32PAR8(5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */, 25 /* D0 */, 26 /* D1 */, 12 /* D2 */, 13 /* D3 */, 14 /* D4 */, 15 /* D5 */, 2 /* D6 */, 4 /* D7 */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);#elif defined(ESP32_LCDKIT_PAR16)
#define GFX_DEV_DEVICE ESP32_LCDKIT_PAR16
Arduino_DataBus *bus = new Arduino_ESP32PAR16(5 /* DC */, GFX_NOT_DEFINED /* CS */, 18 /* WR */, GFX_NOT_DEFINED /* RD */,19 /* D0 */, 21 /* D1 */, 0 /* D2 */, 22 /* D3 */, 23 /* D4 */, 33 /* D5 */, 32 /* D6 */, 27 /* D7 */,25 /* D8 */, 26 /* D9 */, 12 /* D10 */, 13 /* D11 */, 14 /* D12 */, 15 /* D13 */, 2 /* D14 */, 4 /* D15 */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);#elif defined(ESP32_S3_313LCD)
#define GFX_DEV_DEVICE ESP32_S3_313LCD
#define GFX_BL 4
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 0 /* CS */,17 /* SCK */, 16 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(15 /* DE */, 5 /* VSYNC */, 6 /* HSYNC */, 7 /* PCLK */,19 /* R0 */, 8 /* R1 */, 18 /* R2 */, 17 /* R3 */, 16 /* R4 */,11 /* G0 */, 10 /* G1 */, 9 /* G2 */, 46 /* G3 */, 3 /* G4 */, 20 /* G5 */,47 /* B0 */, 21 /* B1 */, 14 /* B2 */, 13 /* B3 */, 12 /* B4 */,1 /* hsync_polarity */, 30 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 30 /* hsync_back_porch */,1 /* vsync_polarity */, 16 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 16 /* vsync_back_porch */,0 /* pclk_active_neg */, 16000000 /* prefer_speed */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(376 /* width */, 960 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, gc9503v_type2_init_operations, sizeof(gc9503v_type2_init_operations));#elif defined(ESP32_S3_BOX_3)
#define GFX_DEV_DEVICE ARDUINO_ESP32_S3_BOX_3
#define GFX_BL 47
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 5 /* CS */, 7 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ILI9342(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */);#elif defined(ESP32_S3_EYE)
#define GFX_DEV_DEVICE ESP32_S3_EYE
#define DEV_DEVICE_INIT()                        \{                                              \pinMode(3 /* camera indicator */, OUTPUT);   \digitalWrite(3 /* camera indicator */, LOW); \pinMode(48 /* BACKLIGHT */, OUTPUT);         \digitalWrite(48 /* BACKLIGHT */, LOW);       \}
Arduino_DataBus *bus = new Arduino_ESP32SPI(43 /* DC */, 44 /* CS */, 21 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);#elif defined(ESP32_S3_RGB)
#define GFX_DEV_DEVICE ESP32_S3_RGB
// #define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 15 /* CS */,16 /* SCK */, 21 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
// option 1:
// Uncomment for 4" rect display //Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(//   13 /* DE */, 12 /* VSYNC */, 11 /* HSYNC */, 14 /* PCLK */,//   10 /* R0 */, 9 /* R1 */, 8 /* R2 */, 7 /* R3 */, 6 /* R4 */,//   5 /* G0 */, 4 /* G1 */, 3 /* G2 */, 2 /* G3 */, 1 /* G4 */, 17 /* G5 */,//   40 /* B0 */, 39 /* B1 */, 38 /* B2 */, 47 /* B3 */, 45 /* B4 */,//   0 /* hsync_polarity */, 80 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 80 /* hsync_back_porch */,//   0 /* vsync_polarity */, 18 /* vsync_front_porch */, 2 /* vsync_pulse_width */, 30 /* vsync_back_porch */, 0 /* pclk_active_neg */, 6000000L /* pclk_frequency */);//Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//    240 /* width */, 320 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
//    bus, 46 /* RST */, st7701_type10_init_operations, sizeof(st7701_type10_init_operations));// option 2:
// Uncomment for 2.1" round display
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
//     18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
//     4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
//     10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
//     15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
//     1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,
//     1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//     480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
//     bus, GFX_NOT_DEFINED /* RST */, st7701_type5_init_operations, sizeof(st7701_type5_init_operations));// option 3:
// Uncomment for 2.8" round display
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
//     18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
//     4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
//     10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
//     15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
//     1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,
//     1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */);
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//     480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
//     bus, GFX_NOT_DEFINED /* RST */, st7701_type6_init_operations, sizeof(st7701_type6_init_operations));// option 4:
// Uncomment for 2.0" displayArduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(13 /* DE */, 12 /* VSYNC */, 11 /* HSYNC */, 14 /* PCLK */,10 /* R0 */, 9 /* R1 */, 8 /* R2 */, 7 /* R3 */, 6 /* R4 */,5 /* G0 */, 4 /* G1 */, 3 /* G2 */, 2 /* G3 */, 1 /* G4 */, 17 /* G5 */,40 /* B0 */, 39 /* B1 */, 38 /* B2 */, 47 /* B3 */, 45 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 640 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type11_init_operations, sizeof(st7701_type11_init_operations));// option 5:
// Uncomment for 3.5" display
// Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
//     18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,
//     4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,
//     10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,
//     15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,
//     1 /* hsync_polarity */, 20 /* hsync_front_porch */, 30 /* hsync_pulse_width */, 38 /* hsync_back_porch */,
//     1 /* vsync_polarity */, 4 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 15 /* vsync_back_porch */,
//     10 /* pclk_active_neg */, 16000000 /* prefer_speed */);
// Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
//     640 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
//     bus, GFX_NOT_DEFINED /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));#elif defined(ESP32_S3_RPI_DPI)
#define GFX_DEV_DEVICE ESP32_S3_RPI_DPI
// #define GFX_BL 38#define RGB_PANEL
// e.g. Waveshare 7" RPi DPI LCD: https://www.waveshare.com/wiki/7inch_LCD_for_Pi
// dpi_timings=1024 1 40 48 128 600 1 13 3 45 0 0 0 60 0 37000000 6
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,4 /* R0 */, 3 /* R1 */, 2 /* R2 */, 1 /* R3 */, 0 /* R4 */,10 /* G0 */, 9 /* G1 */, 8 /* G2 */, 7 /* G3 */, 6 /* G4 */, 5 /* G5 */,15 /* B0 */, 14 /* B1 */, 13 /* B2 */, 12 /* B3 */, 11 /* B4 */,1 /* hsync_polarity */, 40 /* hsync_front_porch */, 48 /* hsync_pulse_width */, 128 /* hsync_back_porch */,1 /* vsync_polarity */, 13 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 45 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(1024 /* width */, 600 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);#elif defined(ESP32S3_2_1_TP)
#define GFX_DEV_DEVICE ESP32S3_2_1_TP
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 39 /* CS */,48 /* SCK */, 47 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(18 /* DE */, 17 /* VSYNC */, 16 /* HSYNC */, 21 /* PCLK */,4 /* R0 */, 5 /* R1 */, 6 /* R2 */, 7 /* R3 */, 15 /* R4 */,8 /* G0 */, 20 /* G1 */, 3 /* G2 */, 46 /* G3 */, 9 /* G4 */, 10 /* G5 */,11 /* B0 */, 12 /* B1 */, 13 /* B2 */, 14 /* B3 */, 0 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type5_init_operations, sizeof(st7701_type5_init_operations));/* Golden Security GS-T3E */
#elif defined(GS_T3E)
#define GFX_DEV_DEVICE GS_T3E
#define GFX_BL 42
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 4 /* CS */,15 /* SCK */, 48 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 39 /* VSYNC */, 38 /* HSYNC */, 41 /* PCLK */,8 /* R0 */, 18 /* R1 */, 17 /* R2 */, 16 /* R3 */, 0 /* R4 */,13 /* G0 */, 12 /* G1 */, 11 /* G2 */, 10 /* G3 */, 9 /* G4 */, 3 /* G5 */,15 /* B0 */, 48 /* B1 */, 47 /* B2 */, 21 /* B3 */, 14 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, 4 /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));#elif defined(IBUBLY)
#define GFX_DEV_DEVICE IBUBLY
#define GFX_BL 17 // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
Arduino_DataBus *bus = new Arduino_ESP32SPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, 12 /* RST */, 1 /* rotation */, true /* IPS */, 240 /* width */, 280 /* height */, 0 /* col offset 1 */, 20 /* row offset 1 */, 0 /* col offset 2 */, 20 /* row offset 2 */);#elif defined(JC1060P470)
#define GFX_DEV_DEVICE JC1060P470
#define GFX_BL 23 // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#define DSI_PANEL
Arduino_ESP32DSIPanel *dsipanel = new Arduino_ESP32DSIPanel(40 /* hsync_pulse_width */, 160 /* hsync_back_porch */, 160 /* hsync_front_porch */,10 /* vsync_pulse_width */, 23 /*vsync_back_porch  */, 12 /* vsync_front_porch */,48000000 /* prefer_speed */);
Arduino_DSI_Display *gfx = new Arduino_DSI_Display(1024 /* width */, 600 /* height */, dsipanel, 0 /* rotation */, true /* auto_flush */,27 /* RST */, jd9165_init_operations, sizeof(jd9165_init_operations) / sizeof(lcd_init_cmd_t));#elif defined(JC3248W535)
#define GFX_DEV_DEVICE JC3248W535
#define GFX_BL 1
Arduino_DataBus *bus = new Arduino_ESP32QSPI(45 /* CS */, 47 /* SCK */, 21 /* D0 */, 48 /* D1 */, 40 /* D2 */, 39 /* D3 */);
Arduino_GFX *g = new Arduino_AXS15231B(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, false /* IPS */, 320 /* width */, 480 /* height */);
#define CANVAS
Arduino_Canvas *gfx = new Arduino_Canvas(320 /* width */, 480 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);#elif defined(JC3636W518)
#define GFX_DEV_DEVICE JC3636W518
#define GFX_BL 15
Arduino_DataBus *bus = new Arduino_ESP32QSPI(10 /* CS */, 9 /* SCK */, 11 /* D0 */, 12 /* D1 */, 13 /* D2 */, 14 /* D3 */);
Arduino_GFX *gfx = new Arduino_ST77916(bus, 47 /* RST */, 0 /* rotation */, true /* IPS */, 360 /* width */, 360 /* height */);#elif defined(LILYGO_T_DECK)
#define GFX_DEV_DEVICE LILYGO_T_DECK
#define DEV_DEVICE_INIT()                            \{                                                  \pinMode(9 /* TDECK_RADIO_CS */, OUTPUT);         \digitalWrite(9 /* TDECK_RADIO_CS */, HIGH);      \pinMode(12 /* TDECK_LCD_CS */, OUTPUT);          \digitalWrite(12 /* TDECK_LCD_CS */, HIGH);       \pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT);       \digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH);    \pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT);    \digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \delay(500);                                      \}
#define GFX_BL 42
Arduino_DataBus *bus = new Arduino_HWSPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);#elif defined(LILYGO_T_DECK_PLUS)
#define GFX_DEV_DEVICE LILYGO_T_DECK_PLUS
#define DEV_DEVICE_INIT()                            \{                                                  \pinMode(9 /* TDECK_RADIO_CS */, OUTPUT);         \digitalWrite(9 /* TDECK_RADIO_CS */, HIGH);      \pinMode(12 /* TDECK_LCD_CS */, OUTPUT);          \digitalWrite(12 /* TDECK_LCD_CS */, HIGH);       \pinMode(39 /* TDECK_SDCARD_CS */, OUTPUT);       \digitalWrite(39 /* TDECK_SDCARD_CS */, HIGH);    \pinMode(10 /* TDECK_PERI_POWERON */, OUTPUT);    \digitalWrite(10 /* TDECK_PERI_POWERON */, HIGH); \delay(500);                                      \}
#define GFX_BL 42
Arduino_DataBus *bus = new Arduino_HWSPI(11 /* DC */, 12 /* CS */, 40 /* SCK */, 41 /* MOSI */, 38 /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);#elif defined(LILYGO_T_DISPLAY)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY
#define GFX_BL 4
Arduino_DataBus *bus = new Arduino_ESP32SPI(16 /* DC */, 5 /* CS */, 18 /* SCK */, 19 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, 23 /* RST */, 0 /* rotation */, true /* IPS */, 135 /* width */, 240 /* height */, 52 /* col offset 1 */, 40 /* row offset 1 */, 53 /* col offset 2 */, 40 /* row offset 2 */);#elif defined(LILYGO_T_DISPLAY_S3)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3
#define DEV_DEVICE_INIT()             \{                                   \pinMode(15 /* PWD */, OUTPUT);    \digitalWrite(15 /* PWD */, HIGH); \}
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_ESP32PAR8Q(7 /* DC */, 6 /* CS */, 8 /* WR */, 9 /* RD */,39 /* D0 */, 40 /* D1 */, 41 /* D2 */, 42 /* D3 */, 45 /* D4 */, 46 /* D5 */, 47 /* D6 */, 48 /* D7 */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, 5 /* RST */, 0 /* rotation */, true /* IPS */, 170 /* width */, 320 /* height */, 35 /* col offset 1 */, 0 /* row offset 1 */, 35 /* col offset 2 */, 0 /* row offset 2 */);#elif defined(LILYGO_T_Display_S3_AMOLED)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_AMOLED
Arduino_DataBus *bus = new Arduino_ESP32QSPI(6 /* CS */, 47 /* SCK */, 18 /* D0 */, 7 /* D1 */, 48 /* D2 */, 5 /* D3 */);
Arduino_GFX *gfx = new Arduino_RM67162(bus, 17 /* RST */, 0 /* rotation */);#elif defined(LILYGO_T_Display_S3_AMOLED_1_64)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_AMOLED_1_64
#define DEV_DEVICE_INIT()                \{                                      \pinMode(16 /* LCD_EN */, OUTPUT);    \digitalWrite(16 /* LCD_EN */, HIGH); \}
Arduino_DataBus *bus = new Arduino_ESP32QSPI(10 /* CS */, 12 /* SCK */, 11 /* D0 */, 13 /* D1 */, 14 /* D2 */, 15 /* D3 */);
Arduino_GFX *g = new Arduino_CO5300(bus, 17 /* RST */, 0 /* rotation */, false /* IPS */, 280, 456,20 /* col offset 1 */, 0 /* row offset 1 */, 180 /* col_offset2 */, 24 /* row_offset2 */);
#define CANVAS
Arduino_Canvas *gfx = new Arduino_Canvas(280 /* width */, 456 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);#elif defined(LILYGO_T_Display_S3_LONG)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_LONG
#define GFX_BL 1
Arduino_DataBus *bus = new Arduino_ESP32QSPI(12 /* CS */, 17 /* SCK */, 13 /* D0 */, 18 /* D1 */, 21 /* D2 */, 14 /* D3 */);
Arduino_GFX *g = new Arduino_AXS15231B(bus, 47 /* RST */, 0 /* rotation */, false /* IPS */, 180 /* width */, 640 /* height */);
#define CANVAS
Arduino_Canvas *gfx = new Arduino_Canvas(180 /* width */, 640 /* height */, g, 0 /* output_x */, 0 /* output_y */, 0 /* rotation */);#elif defined(LILYGO_T_DISPLAY_S3_PRO)
#define GFX_DEV_DEVICE LILYGO_T_DISPLAY_S3_PRO
#define GFX_BL 48
Arduino_DataBus *bus = new Arduino_ESP32SPI(9 /* DC */, 39 /* CS */, 18 /* SCK */, 17 /* MOSI */, 8 /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7796(bus, 47 /* RST */, 0 /* rotation */, true /* IPS */, 222 /* width */, 480 /* height */, 49 /* col offset 1 */, 0 /* row offset 1 */, 49 /* col offset 2 */, 0 /* row offset 2 */);#elif defined(LILYGO_T_QT)
#define GFX_DEV_DEVICE LILYGO_T_QT
#define DEV_DEVICE_INIT()           \{                                 \pinMode(10 /* BL */, OUTPUT);   \digitalWrite(10 /* BL */, LOW); \}
Arduino_DataBus *bus = new Arduino_ESP32SPI(6 /* DC */, 5 /* CS */, 3 /* SCK */, 2 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9107(bus, 1 /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(LILYGO_T_RGB)
#define GFX_DEV_DEVICE LILYGO_T_RGB
#include <Wire.h>
#define DEV_DEVICE_INIT()                                       \{                                                             \Wire.begin(8 /* SDA */, 48 /* SCL */, 800000L /* speed */); \}
#define GFX_BL 46
Arduino_DataBus *bus = new Arduino_XL9535SWSPI(8 /* SDA */, 48 /* SCL */, 2 /* XL PWD */, 3 /* XL CS */, 5 /* XL SCK */, 4 /* XL MOSI */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(45 /* DE */, 41 /* VSYNC */, 47 /* HSYNC */, 42 /* PCLK */,21 /* R0 */, 18 /* R1 */, 17 /* R2 */, 16 /* R3 */, 15 /* R4 */,14 /* G0 */, 13 /* G1 */, 12 /* G2 */, 11 /* G3 */, 10 /* G4 */, 9 /* G5 */,7 /* B0 */, 6 /* B1 */, 5 /* B2 */, 3 /* B3 */, 2 /* B4 */,1 /* hsync_polarity */, 50 /* hsync_front_porch */, 1 /* hsync_pulse_width */, 30 /* hsync_back_porch */,1 /* vsync_polarity */, 20 /* vsync_front_porch */, 1 /* vsync_pulse_width */, 30 /* vsync_back_porch */,1 /* pclk_active_neg */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type4_init_operations, sizeof(st7701_type4_init_operations));#elif defined(LILYGO_T_TRACK)
#define GFX_DEV_DEVICE LILYGO_T_TRACK
#define DEV_DEVICE_INIT()              \{                                    \pinMode(4 /* POWER */, OUTPUT);    \digitalWrite(4 /* POWER */, HIGH); \}
Arduino_DataBus *bus = new Arduino_ESP32SPIDMA(7 /* DC */, 9 /* CS */, 5 /* SCK */, 6 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_G *g = new Arduino_JD9613(bus, 8 /* RST */);
#define CANVAS
Arduino_Canvas *gfx = new Arduino_Canvas(126 /* width */, 294 /* height */, g, 0, 0, 3);#elif defined(LILYGO_T_WATCH_2021)
#define GFX_DEV_DEVICE LILYGO_T_WATCH_2021
#define GFX_BL 21
Arduino_DataBus *bus = new Arduino_ESP32SPI(19 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 27 /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(LILYGO_T4_S3)
#define GFX_DEV_DEVICE LILYGO_T4_S3
#define DEV_DEVICE_INIT()              \{                                    \pinMode(9 /* POWER */, OUTPUT);    \digitalWrite(9 /* POWER */, HIGH); \}
Arduino_DataBus *bus = new Arduino_ESP32QSPI(11 /* CS */, 15 /* SCK */, 14 /* D0 */, 10 /* D1 */, 16 /* D2 */, 12 /* D3 */);
Arduino_GFX *g = new Arduino_RM690B0(bus, 13 /* RST */, 0 /* rotation */, 450 /* width */, 600 /* height */, 16 /* col offset 1 */, 0 /* row offset 1 */, 16 /* col offset 2 */, 0 /* row offset 2 */);
#define CANVAS
Arduino_Canvas *gfx = new Arduino_Canvas(450 /* width */, 600 /* height */, g);#elif defined(MAKERFABS_TFT_TOUCH_3_5)
#define GFX_DEV_DEVICE MAKERFABS_TFT_TOUCH_3_5
Arduino_DataBus *bus = new Arduino_ESP32SPI(33 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, 12 /* MISO */);
Arduino_GFX *gfx = new Arduino_ILI9488_18bit(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */, false /* IPS */);#elif defined(MAKERFABS_ESP32_S3_TFT_4_0)
#define GFX_DEV_DEVICE MAKERFABS_ESP32_S3_TFT_4_0
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 1 /* CS */,12 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(45 /* DE */, 4 /* VSYNC */, 5 /* HSYNC */, 21 /* PCLK */,39 /* R0 */, 40 /* R1 */, 41 /* R2 */, 42 /* R3 */, 2 /* R4 */,0 /* G0 */, 9 /* G1 */, 14 /* G2 */, 47 /* G3 */, 48 /* G4 */, 3 /* G5 */,6 /* B0 */, 7 /* B1 */, 15 /* B2 */, 16 /* B3 */, 8 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type1_init_operations, sizeof(st7701_type1_init_operations));#elif defined(MAKERFABS_ESP32_S3_TFT_4_3_v1_3)
#define GFX_DEV_DEVICE MAKERFABS_ESP32_S3_TFT_4_3_v1_3
#define GFX_BL 2
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 42 /* PCLK */,45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,0 /* hsync_polarity */, 40 /* hsync_front_porch */, 48 /* hsync_pulse_width */, 88 /* hsync_back_porch */,0 /* vsync_polarity */, 13 /* vsync_front_porch */, 3 /* vsync_pulse_width */, 32 /* vsync_back_porch */,1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);#elif defined(WT32_SC01)
#define GFX_DEV_DEVICE WT32_SC01
#define GFX_BL 23
Arduino_DataBus *bus = new Arduino_ESP32SPI(21 /* DC */, 15 /* CS */, 14 /* SCK */, 13 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7796(bus, 22 /* RST */, 3 /* rotation */);#elif defined(WZ8048C050)
#define GFX_DEV_DEVICE WZ8048C050
#define GFX_BL 2
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 41 /* VSYNC */, 39 /* HSYNC */, 0 /* PCLK */,45 /* R0 */, 48 /* R1 */, 47 /* R2 */, 21 /* R3 */, 14 /* R4 */,5 /* G0 */, 6 /* G1 */, 7 /* G2 */, 15 /* G3 */, 16 /* G4 */, 4 /* G5 */,8 /* B0 */, 3 /* B1 */, 46 /* B2 */, 9 /* B3 */, 1 /* B4 */,0 /* hsync_polarity */, 8 /* hsync_front_porch */, 4 /* hsync_pulse_width */, 43 /* hsync_back_porch */,0 /* vsync_polarity */, 8 /* vsync_front_porch */, 4 /* vsync_pulse_width */, 12 /* vsync_back_porch */,1 /* pclk_active_neg */, 16000000 /* prefer_speed */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);#elif defined(WAVESHARE_ESP32_S3_LCD_2_8)
#define GFX_DEV_DEVICE WAVESHARE_ESP32_S3_LCD_2_8
#define GFX_BL 5
Arduino_DataBus *bus = new Arduino_HWSPI(41 /* DC */, 42 /* CS */, 40 /* SCK */, 45 /* MOSI */, 46 /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, 39 /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(WAVESHARE_RP2040_LCD_0_96)
#define GFX_DEV_DEVICE WAVESHARE_RP2040_LCD_0_96
#define GFX_BL 25
Arduino_DataBus *bus = new Arduino_RPiPicoSPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, GFX_NOT_DEFINED /* MISO */, spi1 /* spi */);
Arduino_GFX *gfx = new Arduino_ST7735(bus, 12 /* RST */, 0 /* rotation */, true /* IPS */, 80 /* width */, 160 /* height */, 26 /* col offset 1 */, 1 /* row offset 1 */, 26 /* col offset 2 */, 1 /* row offset 2 */);#elif defined(XIAO_SAMD21_ROUND_DISPLAY)
#define GFX_DEV_DEVICE XIAO_SAMD21_ROUND_DISPLAY
Arduino_DataBus *bus = new Arduino_HWSPI(3 /* DC */, 1 /* CS */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(XIAO_ESP32C3_ROUND_DISPLAY)
#define GFX_DEV_DEVICE XIAO_ESP32C3_ROUND_DISPLAY
Arduino_DataBus *bus = new Arduino_ESP32SPI(5 /* DC */, 3 /* CS */, 8 /* SCK */, 10 /* MOSI */, 9 /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(XIAO_ESP32S3_ROUND_DISPLAY)
#define GFX_DEV_DEVICE XIAO_ESP32S3_ROUND_DISPLAY
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 2 /* CS */, 7 /* SCK */, 9 /* MOSI */, 8 /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(ZX2D10GE10R_V4848)
#define GFX_DEV_DEVICE ZX2D10GE10R_V4848
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 21 /* CS */,47 /* SCK */, 41 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(39 /* DE */, 48 /* VSYNC */, 40 /* HSYNC */, 45 /* PCLK */,10 /* R0 */, 16 /* R1 */, 9 /* R2 */, 15 /* R3 */, 46 /* R4 */,8 /* G0 */, 13 /* G1 */, 18 /* G2 */, 12 /* G3 */, 11 /* G4 */, 17 /* G5 */,47 /* B0 */, 41 /* B1 */, 0 /* B2 */, 42 /* B3 */, 14 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 10 /* hsync_pulse_width */, 10 /* hsync_back_porch */,1 /* vsync_polarity */, 14 /* vsync_front_porch */, 2 /* vsync_pulse_width */, 12 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, st7701_type7_init_operations, sizeof(st7701_type7_init_operations));#elif defined(ZX3D50CE02S)
#define GFX_DEV_DEVICE ZX3D50CE02S
#define GFX_BL 45
Arduino_DataBus *bus = new Arduino_ESP32LCD8(0 /* DC */, GFX_NOT_DEFINED /* CS */, 47 /* WR */, GFX_NOT_DEFINED /* RD */,9 /* D0 */, 46 /* D1 */, 3 /* D2 */, 8 /* D3 */, 18 /* D4 */, 17 /* D5 */, 16 /* D6 */, 15 /* D7 */);
Arduino_GFX *gfx = new Arduino_ST7796(bus, 4 /* RST */, 0 /* rotation */, true /* IPS */);#elif defined(ZX3D95CE01S_AR)
#define GFX_DEV_DEVICE ZX3D95CE01S_AR
#define GFX_BL 45
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 0 /* CS */,10 /* SCK */, 9 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(13 /* DE */, 12 /* VSYNC */, 11 /* HSYNC */, 14 /* PCLK */,2 /* R0 */, 17 /* R1 */, 16 /* R2 */, 1 /* R3 */, 15 /* R4 */,41 /* G0 */, 46 /* G1 */, 3 /* G2 */, 42 /* G3 */, 8 /* G4 */, 18 /* G5 */,10 /* B0 */, 9 /* B1 */, 40 /* B2 */, 20 /* B3 */, 19 /* B4 */,1 /* hsync_polarity */, 10 /* hsync_front_porch */, 8 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 10 /* vsync_front_porch */, 8 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, GFX_NOT_DEFINED /* RST */, gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));#elif defined(ZX3D95CE01S_TR)
#define GFX_DEV_DEVICE ZX3D95CE01S_TR
#define GFX_BL 5
Arduino_DataBus *bus = new Arduino_SWSPI(GFX_NOT_DEFINED /* DC */, 38 /* CS */,45 /* SCK or SCLK */, 48 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(40 /* DE */, 41 /* VSYNC */, 42 /* HSYNC */, 39 /* PCLK */,18 /* R0 */, 8 /* R1 */, 3 /* R2 */, 46 /* R3 */, 10 /* R4 */,14 /* G0 */, 13 /* G1 */, 12 /* G2 */, 11 /* G3 */, 16 /* G4 */, 17 /* G5 */,45 /* B0 */, 48 /* B1 */, 47 /* B2 */, 0 /* B3 */, 21 /* B4 */,1 /* hsync_polarity */, 8 /* hsync_front_porch */, 10 /* hsync_pulse_width */, 50 /* hsync_back_porch */,1 /* vsync_polarity */, 8 /* vsync_front_porch */, 10 /* vsync_pulse_width */, 20 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,bus, 41 /* RST */, gc9503v_type1_init_operations, sizeof(gc9503v_type1_init_operations));#elif defined(ZX7D00CE01S)
#define GFX_DEV_DEVICE ZX7D00CE01S
#define GFX_BL 45
#define RGB_PANEL
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(39 /* DE */, 38 /* VSYNC */, 5 /* HSYNC */, 9 /* PCLK */,10 /* R0 */, 11 /* R1 */, 12 /* R2 */, 13 /* R3 */, 14 /* R4 */,21 /* G0 */, 0 /* G1 */, 46 /* G2 */, 3 /* G3 */, 8 /* G4 */, 18 /* G5 */,17 /* B0 */, 16 /* B1 */, 15 /* B2 */, 7 /* B3 */, 6 /* B4 */,0 /* hsync_polarity */, 0 /* hsync_front_porch */, 210 /* hsync_pulse_width */, 30 /* hsync_back_porch */,0 /* vsync_polarity */, 0 /* vsync_front_porch */, 22 /* vsync_pulse_width */, 13 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(800 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */);/* Wio Terminal */
#elif defined(ARDUINO_ARCH_SAMD) && defined(SEEED_GROVE_UI_WIRELESS)
#define GFX_DEV_DEVICE WIO_TERMINAL
// #define GFX_BL LCD_BACKLIGHT
Arduino_DataBus *bus = new Arduino_HWSPI(LCD_DC /* DC */, LCD_SS_PIN /* CS */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 1 /* rotation */);/* ESP32-S3-BOX */
#elif defined(ARDUINO_ESP32_S3_BOX)
#define GFX_DEV_DEVICE ARDUINO_ESP32_S3_BOX
#define GFX_BL 45
Arduino_DataBus *bus = new Arduino_ESP32SPI(4 /* DC */, 5 /* CS */, 7 /* SCK */, 6 /* MOSI */, 0 /* MISO */);
Arduino_GFX *gfx = new Arduino_ILI9342(bus, 48 /* RST */, 0 /* rotation */);/* M5Stack */
#elif defined(ARDUINO_M5Stack_Core_ESP32) || defined(ARDUINO_M5STACK_FIRE)
#define GFX_DEV_DEVICE ARDUINO_M5Stack_Core_ESP32
// #define GFX_BL 32
Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 14 /* CS */, SCK, MOSI, MISO);
Arduino_GFX *gfx = new Arduino_ILI9342(bus, 33 /* RST */, 2 /* rotation */);#elif defined(ARDUINO_M5Stack_ATOMS3)
#define GFX_DEV_DEVICE ARDUINO_M5Stack_ATOMS3
#define GFX_BL 16
Arduino_DataBus *bus = new Arduino_ESP32SPI(33 /* DC */, 15 /* CS */, 17 /* SCK */, 21 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_GC9107(bus, 34 /* RST */, 0 /* rotation */, true /* IPS */);/* Odroid-Go */
#elif defined(ARDUINO_ODROID_ESP32)
#define GFX_DEV_DEVICE ARDUINO_ODROID_ESP32
// #define GFX_BL 14
Arduino_DataBus *bus = new Arduino_ESP32SPI(21 /* DC */, 5 /* CS */, SCK, MOSI, MISO);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, GFX_NOT_DEFINED /* RST */, 3 /* rotation */);
// Arduino_ST7789 *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 3 /* rotation */, true /* IPS */);/* LILYGO T-Watch */
#elif defined(ARDUINO_T) || defined(ARDUINO_TWATCH_BASE) || defined(ARDUINO_TWATCH_2020_V1) || defined(ARDUINO_TWATCH_2020_V2)
#define GFX_DEV_DEVICE ARDUINO_T_WATCH
#define GFX_BL 12
Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 5 /* CS */, 18 /* SCK */, 19 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_GFX *gfx = new Arduino_ST7789(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */, 0 /* col offset 1 */, 0 /* row offset 1 */, 0 /* col offset 2 */, 80 /* row offset 2 */);/* Waveshare RP2040-LCD-1.28 */
#elif defined(ARDUINO_WAVESHARE_RP2040_LCD_1_28)
#define GFX_DEV_DEVICE ARDUINO_WAVESHARE_RP2040_LCD_1_28
#define GFX_BL 25
Arduino_DataBus *bus = new Arduino_RPiPicoSPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, 12 /* MISO */, spi1 /* spi */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 12 /* RST */, 0 /* rotation */, true /* IPS */);#endif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET 微服务网关 Ocelot+Consul+Skywalking

ASP.NET 微服务网关 OcelotConsulSkywalking APIGateWaySample简介网关相关技术核心其它 请求处理流程环境搭建代码运行效果图 APIGateWaySample Ocelot Consul Skywalking 简介 系统设计图 网关 API网关&#xff08;Gateway&#xff09;是一个服务器&#xff0c;是系统…

频谱分析仪的使用

频谱分析仪设置带宽的方式&#xff1a; 可以利用同轴线缆来制作近场探头&#xff1a; 区别dB和dBm两个单位&#xff1a; 无线电波的发射功率是指在给定频段范围内的能量&#xff0c;通常有两种衡量 或测量标准&#xff1a;   1、功率&#xff08;W&#xff09;&#xff1a;相…

【数据分析】转录组基因表达的KEGG通路富集分析教程

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍差异分析(limma)KEGG富集分析(enrichKEGG)可视化加载R包数据下载导入数据基因差异分析火山图KEGG通路富集分析可视化通路结果另一个案例总结系统信息参考介绍 KEGG富集分析,可…

关于sqlalchemy的使用

关于sqlalchemy的使用 说明一、sqlachemy总体使用思路二、安装与创建库、连结库三、创建表、增加数据四、查询记录五、更新或删除六、关联表定义 说明 本教程所需软件及库python3.10、sqlalchemy安装与创建库、连结库创建表、增加数据查询记录 一、sqlachemy总体使用思路 在…

在 IntelliJ IDEA 中使用 JUnit 进行单元测试

1. 介绍 JUnit JUnit 是 Java 语言中最流行的单元测试框架之一。它基于 xUnit 设计模式&#xff0c;支持 测试自动化、断言&#xff08;Assertions&#xff09;和测试生命周期管理&#xff0c;是 Java 开发中进行 TDD&#xff08;测试驱动开发&#xff09; 的重要工具。 JUni…

单片机的发展

一、引言 单片机自诞生以来&#xff0c;经历了四十多年的风风雨雨&#xff0c;从最初的工业控制逐步扩展到家电、通信、智能家居等各个领域。其发展过程就像是一场精彩的冒险&#xff0c;每一次技术的革新都像是在未知的海域中开辟新的航线。 二、单片机的发展历程 &#xff…

常见的博弈模型有哪些

常见的博弈模型有哪些 目录 常见的博弈模型有哪些**1. 重复博弈(Repeated Game)****2. 进化博弈论(Evolutionary Game Theory)****3. 机制设计(Mechanism Design)****4. 微分博弈(Differential Game)****5. 贝叶斯博弈(Bayesian Game)****6. 合作博弈(Cooperative G…

【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型

一、数据类型分类 二、数值类型 1.bit类型 测试环境ubuntu 基本语法&#xff1a; bit[(M)]&#xff1a;位字段类型&#xff0c;M表示每个值的位数&#xff0c;范围从1&#xff5e;64&#xff1b;如果M被忽略&#xff0c;默认为1举例&#xff1a; create table testBit(id i…

golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介

还记得2018年的夏天,刚毕业的我不知道该做些什么,于是自学了一周的go语言,想要找一份go语言工作的代码,当时的go还没有go mod来管理依赖包,在北京找了一个月的工作,找到了一个小公司做了后端开发,当然使用go语言开发,带着兴奋劲,年轻身体也好,边努力学习,边工作。 时…

【数据库】MySQL常见聚合查询详解

在数据库操作中&#xff0c;聚合查询是非常重要的一部分。通过聚合查询&#xff0c;我们可以对数据进行汇总、统计和分析。MySQL提供了丰富的聚合函数来满足不同的需求。本文将详细介绍MySQL中常见的40个聚合函数及其使用场景&#xff0c;并通过8个的案例展示它们的用法。 一、…

调研:如何实现智能分析助手(Agent)(AutoCoder、FastGPT、AutoGen、DataCopilot)

文章目录 调研&#xff1a;如何实现智能分析助手&#xff08;Agent&#xff09;&#xff08;AutoCoder、FastGPT、AutoGen、DataCopilot&#xff09;一、交互流程二、数据流程三、架构分类四、开源产品4.1 AutoCoder&#xff08;知识库变体&#xff09;4.2 FastGPT&#xff08;…

【Vue CLI脚手架开发】——6.scoped样式

文章目录 一、scoped是什么二、应用案例1.使用代码2.原理3父组件App未添加scoped影响 一、scoped是什么 我们知道vue为了防止css样式污染&#xff0c;在每个组件中提供了 scoped属性进行限定css作用域&#xff1b;当<style>标签有 scoped 属性时&#xff0c;它的 CSS 只…

高精算法的用法及其优势

高精度问题是指当数据的位数非常大&#xff08;超出标准数据类型的范围&#xff09;时&#xff0c;如何进行计算和存储的问题。常见场景包括大整数的加、减、乘、除、取模等操作。以下是解决高精度问题的常用方法与技巧&#xff1a; 一、数据存储 数组存储 用整型数组存储&am…

VM+CentOS虚拟机

关于VMCentOS虚拟机的配置和使用&#xff0c;可以参考以下博客中的详细教程&#xff1a; **一、VMCentOS虚拟机配置** 1. **虚拟机网络配置** - 在VMware中&#xff0c;点击“编辑”→“虚拟网络编辑器”&#xff0c;选择VMnet8并进行相关设置。 - 子网IP可以改成如192.168.1…

设置 CursorRules 规则

为什么要设置CursorRules&#xff1f; 设置 CursorRules 可以帮助优化代码生成和开发流程&#xff0c;提升工作效率。具体的好处包括&#xff1a; 1、自动化代码生成 &#xff1a;通过定义规则&#xff0c;Cursor 可以根据你的开发需求自动生成符合规定的代码模板&#xff0c…

pip install速度太慢的多种解决方案

目录 问题描述为什么 pip 速度这么慢&#xff1f;解决方案1. 使用国内镜像源2. 配置多个镜像源3. 使用第三方工具4. 手动下载后本地安装5. 优化网络环境6. 更新 pip 版本 测试效果 问题描述 在使用 Python 进行开发时&#xff0c;我们经常需要使用 pip 来安装第三方库。然而&am…

Java阻塞队列深度解析:高并发场景下的安全卫士

一、阻塞队列的核心价值 在电商秒杀系统中&#xff0c;瞬时涌入的10万请求如果直接冲击数据库&#xff0c;必然导致系统崩溃。阻塞队列如同一个智能缓冲带&#xff0c;通过流量削峰和异步解耦两大核心能力&#xff0c;成为高并发系统的核心组件。 二、Java阻塞队列实现类对比 …

基于RapidOCR与DeepSeek的智能表格转换技术实践

基于RapidOCR与DeepSeek的智能表格转换技术实践 一、技术背景与需求场景 在金融分析、数据报表处理等领域&#xff0c;存在大量图片格式的表格数据需要结构化处理。本文介绍基于开源RapidOCR表格识别与DeepSeek大模型的智能转换方案&#xff0c;实现以下典型场景&#xff1a; …

django中视图作用和视图功能 以及用法

在 Django REST Framework(DRF)中,视图(View)是处理 HTTP 请求并返回响应的核心组件。DRF 提供了多种视图类,适用于不同的场景和需求。以下是 DRF 中常见的视图类及其作用、使用方法的详细说明: 一、DRF 视图的分类 DRF 的视图可以分为以下几类: 基于函数的视图(Func…

希音(Shein)前端开发面试题集锦和参考答案

用 Node 写过什么工具或 npm 包 在实际开发中,使用 Node 编写过多种实用工具和 npm 包。 自动化构建工具 开发了一个简单的自动化构建工具,用于处理前端项目的资源压缩和合并。在前端项目中,为了优化性能,需要对 CSS 和 JavaScript 文件进行压缩,减少文件体积,同时将多个…