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

如何用Raspberry Pi Pico/ESP32在SPI TFT LCD显示Hello World?白屏求助

Raspberry Pi Pico + ILI9341 SPI TFT 白屏问题解决步骤

一、核心错误:误用ESP32引脚配置

你当前的userSetup.h是为ESP32编写的引脚定义,完全不适用于Raspberry Pi Pico,这是导致白屏的主要原因。需替换为Pico对应的配置:

正确的userSetup.h配置示例

找到TFT_eSPI库文件夹下的userSetup.h,修改为以下内容(根据实际接线调整引脚):

// 启用ILI9341驱动
#define ILI9341_DRIVER

// Raspberry Pi Pico SPI引脚配置(以SPI0为例)
#define TFT_MISO 16  // Pico SPI0 RX引脚
#define TFT_MOSI 19  // Pico SPI0 TX引脚(即MOSI)
#define TFT_SCLK 18  // Pico SPI0 SCK引脚
#define TFT_CS   17  // 片选引脚,可自定义
#define TFT_DC    2  // 数据/命令引脚,可自定义
#define TFT_RST   3  // 复位引脚,若接Pico的RST则设为-1
//#define TFT_RST  -1

// 设置SPI频率(Pico支持最高27MHz)
#define SPI_FREQUENCY  27000000

注:若使用SPI1通道,需替换为对应引脚(如MISO=12、MOSI=11、SCLK=10)

二、先测试极简Hello World代码

放弃复杂的时钟示例,先跑最基础的代码验证显示功能:

#include <TFT_eSPI.h>

TFT_eSPI tft = TFT_eSPI();

void setup() {
  tft.init();
  tft.setRotation(1); // 根据屏幕实际方向调整0-3
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE);
  tft.setTextSize(2);
  tft.drawString("Hello World!", 10, 10);
}

void loop() {
  // 无需循环操作
}

三、硬件连接检查要点

  • SPI引脚对应:SCLK接Pico的SCK,MOSI接Pico的TX(Pico无单独MOSI标识,SPI的TX即为MOSI),MISO接Pico的RX(部分ILI9341可省略MISO)
  • 供电要求:确保显示屏用3.3V供电,5V可能烧毁屏幕或Pico
  • 接线可靠性:重新插拔所有杜邦线,检查焊接点(若为焊接接线)
  • 复位引脚:若TFT_RST设为-1,确认显示屏RST引脚已接Pico的RST引脚;否则确保连接到定义的引脚

四、库与开发板配置验证

  • 更新TFT_eSPI库:在Arduino IDE库管理器中检查并更新到最新版本
  • 开发板选择正确:在Tools > Board > Raspberry Pi Pico/RP2040中选择Raspberry Pi Pico
  • 清理编译缓存:上传前执行Sketch > Clean Up,避免旧的ESP32配置残留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 09:25:15