You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32-S3-MINI-1-N4R2驱动SPI TFT显示异常问题求助

ESP32-S3-MINI-1-N4R2驱动SPI TFT显示屏故障排查

我自制了一块搭载ESP32-S3-MINI-1-N4R2的PCB,烧录和运行简单的LED闪烁程序一切正常,但尝试驱动SPI TFT显示屏时出现异常,收到多种提示PSRAM故障的错误信息及其他报错。

引脚配置疑问

我对照芯片手册整理了当前使用的引脚信息,不确定FSPI与SUBSPI系列引脚是否适合用来驱动TFT:

引脚编号我的用途手册描述
IO6TFT_DCRTC_GPIO6, GPIO6, TOUCH6, ADC1_CH5
IO10TFT_CSRTC_GPIO10, GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4, SUBSPICS0
IO11TFT_MOSIRTC_GPIO11, GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5, SUBSPID
IO12TFT_SCLKRTC_GPIO12, GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6, SUBSPICLK
IO13TFT_MISORTC_GPIO13, GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7, SUBSPIQ

错误信息

运行时收到如下报错:

Rebooting...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x42025cca
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x4bc
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a0c
entry 0x403c98d0
Guru Meditation Error: Core  1 panic'ed (StoreProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x42002b68  PS      : 0x00060a30  A0      : 0x82002bf0  A1      : 0x3fcebc20  
A2      : 0x00000010  A3      : 0x00000001  A4      : 0x60004000  A5      : 0x0000000b  
A6      : 0x000000ff  A7      : 0x3fc92538  A8      : 0x08000000  A9      : 0x3fcebbf0  
A10     : 0x3fc95b2c  A11     : 0x00000001  A12     : 0xffffffff  A13     : 0x00000040  
A14     : 0x00000000  A15     : 0x3fc92538  SAR     : 0x0000001a  EXCCAUSE: 0x0000001d  
EXCVADDR: 0x00000010  LBEG    : 0x42005584  LEND    : 0x420055e8  LCOUNT  : 0x00000003  

Backtrace: 0x42002b65:0x3fcebc20 0x42002bed:0x3fcebc50 0x42001909:0x3fcebc70 0x420056ea:0x3fcebc90

ELF file SHA256: 998aab4334a07bf4

当前配置与代码

platformio.ini 配置

platform = espressif32
board = deneyapkart1Av2 ; not my real board, but it does at least have an ESP32S3 Mini
framework = arduino
monitor_speed = 115200
lib_deps = bodmer/TFT_eSPI@^2.5.43
board_build.arduino.memory_type = qio_qspi ; Datasheet says Quad SPI
build_flags = 
    -Os
    -DLED_OFF_BEAT=17
    -DUSER_SETUP_LOADED=1
    -DST7789_DRIVER=1
    -DCGRAM_OFFSET
    -DTFT_CS=10
    -DTFT_DC=6
    -DTFT_RST=-1
    -DTFT_MOSI=11
    -DTFT_SCLK=12
    -DTFT_MISO=13
    -DTFT_BL=-1
    -DTOUCH_CS=-1
    -DTFT_BACKLIGHT_ON=HIGH
    -DLOAD_GLCD=1
    -DLOAD_FONT2=1
    -DLOAD_FONT4=1
    -DLOAD_FONT6=1
    -DLOAD_FONT7=1
    -DLOAD_FONT8=1
    -DLOAD_GFXFF=1
    -DSMOOTH_FONT=1
    -DSPI_FREQUENCY=40000000

测试代码

#include <Arduino.h>
#include <TFT_eSPI.h>
#include <SPI.h>
SPIClass hspi = SPIClass(HSPI);

TFT_eSPI tft = TFT_eSPI();

const unsigned long BLINK_DURATION_MILLISECONDS = 1200;
const int LED_PIN = LED_OFF_BEAT;

unsigned long _timeChangedLed = 0;
bool _ledLit = false;

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  hspi.begin(TFT_SCLK, TFT_MISO, TFT_MOSI, TFT_CS);

  // 注释掉这一行的话LED能正常闪烁;不注释的话LED不亮,串口也会失效,必须断开USB重新连接才能恢复
  tft.init();
}

void loop() {
  unsigned long timeNow = millis();
  
  if (timeNow > _timeChangedLed + BLINK_DURATION_MILLISECONDS) {
    _timeChangedLed = timeNow;
    _ledLit = !_ledLit;
    String onOff = _ledLit ? "on" : "off";
    Serial.println(onOff);
    digitalWrite(LED_PIN, _ledLit);
  }
}

原理图相关部分

TFT显示屏连接原理图

需求

  • 帮我判断当前所选引脚是否适合驱动SPI TFT
  • 无论引脚是否合适,提供一份基于ESP32-S3-MINI-1-N4R2 + SPI外设的可运行项目的platformio.ini配置文件

内容的提问来源于stack exchange,提问作者OutstandingBill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:07:04