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

SB Components Micro RP2040与ST7789 2.4寸SPI显示屏适配故障求助

求助:Micro RP2040驱动ST7789 TFT显示屏白屏故障排查

我有一块SB Components的Micro RP2040开发板,搭配一块标称搭载ILI9341控制器的2.4寸SPI TFT LCD显示屏(实际分辨率240x320)。

在适配Micro RP2040之前,我先用ESP32 Dev Module做了测试:使用Adafruit ILI9341库无法让内容全屏显示,经排查确认这块屏实际搭载的是ST7789控制器,换用Adafruit ST77XX库后,ESP32能正常驱动显示屏。

将代码适配Micro RP2040引脚后,通过10k电阻连接(因RP2040是5V板),显示屏仅显示白屏。引脚连接对应关系如下:

TFT显示屏引脚RP2040引脚
TFT_CSGPIO 17
TFT_RSTGPIO 16
TFT_DCGPIO 15
TFT_SDA (MOSI)GPIO 19
TFT_SCKGPIO 18
TFT_VCC3.3V
LED3.3V
TFT_GNDGND

我还尝试过TFT_eSPI库,但无论在ESP32还是Micro RP2040上都无法正常驱动显示屏。以下是ESP32上能正常运行的蛛网绘制代码:

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>

#define TFT_DC 2
#define TFT_CS 15
#define TFT_MOSI 23
#define TFT_CLK 18
#define TFT_RST 4
#define TFT_MISO 19

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST);

void setup() {
  Serial.begin(9600);
  tft.init(240, 320);
  tft.fillScreen(ST77XX_BLACK);
  drawPattern();
}

void loop() {
}

void drawPattern() {
  int centerX = tft.width() / 2;
  int centerY = tft.height() / 2;

  for (int radius = 10; radius <= 120; radius += 10) {
    uint16_t color = (radius / 10) % 2 == 0 ? ST77XX_BLUE : ST77XX_CYAN;
    tft.drawCircle(centerX, centerY, radius, color);
  }

  for (int angle = 0; angle < 360; angle += 15) {
    float radians = angle * 3.14159 / 180;
    int x1 = centerX;
    int y1 = centerY;
    int x2 = centerX + 120 * cos(radians);
    int y2 = centerY + 120 * sin(radians);
    uint16_t color = (angle / 15) % 2 == 0 ? ST77XX_RED : ST77XX_YELLOW;
    tft.drawLine(x1, y1, x2, y2, color);
  }

  tft.fillCircle(centerX, centerY, 10, ST77XX_GREEN);
}

适配Micro RP2040引脚后的代码无法正常运行,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 07:08:12