小恩电子 2023-06-09 01:05 采纳率: 0%
浏览 103
已结题

esp32无法驱动墨水屏

esp32基于arduinoIDE下编程无法驱动SPI墨水屏,运用的库是GxEPD2库,感觉程序那啥的也没问题,换了好多种程序了都不行
这是其中的代码部分,我自己改的

#include <GxEPD2.h>
//#include <GxEPD2_3C.h>
//#include <GxEPD2_7C.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_EPD.h>
#include <GxEPD2_GFX.h>
#define MAX_DISPLAY_BUFFER_SIZE 65536ul // e.g.
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
GxEPD2_BW<GxEPD2_290, GxEPD2_290::HEIGHT> display(GxEPD2_290(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH029A1 128x296, SSD1608 (IL3820)
const char HelloWorld[] = "Hello World!";
void setup() 
{
  // put your setup code here, to run once:
  display.init(115200);  // 初始化屏幕
  display.setRotation(1);  // 设置屏幕旋转方向,分别有0,1,2,3这四个方向
  display.setTextWrap(false); // 设置文本是否自动换行,false则为不自动换行,如果文本溢出则显示异常或者不显示
  int16_t tbx, tby;  // 文本框的x,y坐标
  uint16_t tbw, tbh; // 文本框的宽度,高度
  display.getTextBounds(HelloWorld, 0, 0, &tbx, &tby, &tbw, &tbh);// 计算渲染后的文本框的长度和宽度,用于居中
  uint16_t x = ((display.width() - tbw) / 2) - tbx; // 文本框的x坐标
  uint16_t y = ((display.height() - tbh) / 2) - tby; // 文本框的y坐标
  display.setFullWindow(); 
  display.firstPage();
  do
  {
    display.fillScreen(GxEPD_WHITE);
    display.setCursor(x, y);
    display.print(HelloWorld);
  }
  while (display.nextPage());
}

void loop() {
  // put your main code here, to run repeatedly:

}

程序应该没问题,引脚也是按照指示接的DIN-23,CLK-18,CS-5,DC-17,RST-16,busy-4,应该没问题啊

img

编译上传之后串口感觉就不对劲了

img

开发板配置

img


到底是哪个环节出了问题,研究了好久

  • 写回答

6条回答 默认 最新

  • qllaoda 2023-06-09 08:44
    关注
    获得1.65元问题酬金

    建议先跑个厂家提供的例程确定 硬件好坏

    评论

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 创建了问题 6月9日