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_CS | GPIO 17 |
| TFT_RST | GPIO 16 |
| TFT_DC | GPIO 15 |
| TFT_SDA (MOSI) | GPIO 19 |
| TFT_SCK | GPIO 18 |
| TFT_VCC | 3.3V |
| LED | 3.3V |
| TFT_GND | GND |
我还尝试过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
相关产品推荐
相关产品推荐

