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

ESP32驱动Hub75接口64x32 RGB LED矩阵显示C85出现水平空白线求助

问题:64x32 Hub75 LED矩阵显示时出现两条水平空白线

我在ESP32上使用ESP32-HUB75-MatrixPanel-I2S-DMA库驱动64x32的Hub75接口RGB LED矩阵,尝试显示“C85”时屏幕出现两条水平空白线。修改默认引脚后问题仍未解决,代码如下:

#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h> 
#define R1_PIN_DEFAULT  25
#define G1_PIN_DEFAULT  26
#define B1_PIN_DEFAULT  27
#define R2_PIN_DEFAULT  14
#define G2_PIN_DEFAULT  12
#define B2_PIN_DEFAULT  13

#define A_PIN_DEFAULT   23
#define B_PIN_DEFAULT   19
#define C_PIN_DEFAULT   5
#define D_PIN_DEFAULT   17
#define E_PIN_DEFAULT   -1 // IMPORTANT: Change to a valid pin if using a 64x64px panel.
            
#define LAT_PIN_DEFAULT 4
#define OE_PIN_DEFAULT  15
#define CLK_PIN_DEFAULT 16

#define PANEL_RES_X 64      // Number of pixels wide of each INDIVIDUAL panel module. 
#define PANEL_RES_Y 32     // Number of pixels tall of each INDIVIDUAL panel module.
#define PANEL_CHAIN 1      // Total number of panels chained one to another

MatrixPanel_I2S_DMA *dma_display = nullptr;

uint16_t myRED = dma_display->color565(255, 0, 0);

void setup() {
    HUB75_I2S_CFG mxconfig(
    PANEL_RES_X,   // module width
    PANEL_RES_Y,   // module height
    PANEL_CHAIN    // Chain length
  );

  mxconfig.clkphase = false;
  mxconfig.driver = HUB75_I2S_CFG::FM6126A;
  dma_display = new MatrixPanel_I2S_DMA(mxconfig);
  dma_display->begin();
  dma_display->setBrightness8(60); //0-255
  dma_display->clearScreen(); 

  dma_display->fillScreenRGB888(0, 0, 200);
  dma_display->setTextSize(2);     // size 1 == 8 pixels high
  dma_display->setTextWrap(false); 
  dma_display->setTextColor(myRED);
  dma_display->setCursor(7,11);   
  dma_display->println("C85");
 
}

void loop() {}

排查与修复方案

1. 修复初始化顺序错误

全局变量中myRED的定义依赖未初始化的dma_display指针,会导致颜色值异常,引发显示错乱。

  • 修改方式:将颜色定义移到setup()函数的dma_display->begin()之后:
    void setup() {
        // ... 其他初始化代码 ...
        dma_display->begin();
        uint16_t myRED = dma_display->color565(255, 0, 0); // 移至此处
        // ... 后续显示代码 ...
    }
    

2. 匹配驱动芯片配置

你指定的FM6126A驱动可能与矩阵实际使用的芯片不匹配(常见芯片有SN74HC595、FM6124等),驱动不兼容会导致行扫描异常。

  • 修改方式:
    1. 查看矩阵背面的驱动芯片型号,将mxconfig.driver改为对应值,例如:
      mxconfig.driver = HUB75_I2S_CFG::SN74HC595;
      
    2. 若不确定型号,注释掉驱动配置行,让库自动检测:
      // mxconfig.driver = HUB75_I2S_CFG::FM6126A;
      

3. 检查行选通引脚

64x32矩阵依赖A/B/C/D四个行选引脚,若引脚接线松动、虚焊或定义与实际接线不符,会导致部分行无法点亮。

  • 操作方式:
    1. 核对代码中A/B/C/D引脚定义与实际接线是否一致;
    2. 重新焊接疑似松动的引脚,确保信号传输正常。

4. 调整消隐与时序参数

OE引脚的消隐时序或时钟相位配置不当,可能导致部分行出现空白。

  • 修改方式:
    mxconfig.clkphase = true; // 切换时钟相位
    dma_display->setBrightness8(100); // 调整亮度,避免过低引发的显示异常
    

5. 更新库版本

旧版本的ESP32-HUB75-MatrixPanel-I2S-DMA库可能存在64x32矩阵的兼容性bug,建议更新至最新版本后重新编译上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:05:17