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.pswp.cn/bicheng/72732.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72732.shtml
英文地址,請注明出處:http://en.pswp.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 文件進行壓縮,減少文件體積,同時將多個…