如何用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
相关产品推荐
相关产品推荐

