硬件:ESP32S3

库版本:TFT_eSPI 2.5.4.3

开发板版本:esp32 3.0.7

最近在研究esp32s3利用arduino下的TFT_eSPI库和LVGL开发界面。但是遇到了运行所有示例代码都会无限重启的问题(esp32则没有这个问题)。在网上查到如下文章,发现降低开发板版本到2.0.14,tft_espi版本到2.4.79后确实可以解决问题。

esp32使用TFT_eSPI库一直重启问题_esp32 vs tft.begin() 卡死-CSDN博客

但是每次打开arduino后IDE都会提示有新版本可用很麻烦。于是在github上又查到如下文章,发现只要在tft_espi 的setup.h配置文件中加入一个宏定义就能完美解决。

#define USE_HSPI_PORT

TFT Feather S3 resets when init() is called · Issue #3568 · Bodmer/TFT_eSPI · GitHub

我用的是ili9341 2.8寸320*240的屏幕,相应的配置文件如下:

// Setup for the ESP32 S3 with ILI9341 display
// Note SPI DMA with ESP32 S3 is not currently supported
#define USER_SETUP_ID 70
// See SetupX_Template.h for all options available
#define ILI9341_DRIVER

// Typical board default pins - change to match your board
#define TFT_CS   13 //     10 or 34 (FSPI CS0) 
#define TFT_MOSI 10 //     11 or 35 (FSPI D)
#define TFT_SCLK 9 //     12 or 36 (FSPI CLK)
#define TFT_MISO 3 //     13 or 37 (FSPI Q)
#define TFT_BL 46
#define TFT_BACKLIGHT_ON HIGH

// Use pins in range 0-31
#define TFT_DC    11
#define TFT_RST   12

#define TOUCH_CS 18 // Optional for touch screen

#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF

#define SMOOTH_FONT

// FSPI port (SPI2) used unless following defined. HSPI port (SPI3) NOT TESTED YET
//ESP32S3一定要加上这句!!!
#define USE_HSPI_PORT

//#define SPI_FREQUENCY  27000000
#define SPI_FREQUENCY  40000000   // Maximum for ILI9341

#define SPI_READ_FREQUENCY  6000000 // 6 MHz is the maximum SPI read speed for the ST7789V

#define SPI_TOUCH_FREQUENCY 2500000

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐