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,应该没问题啊

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

开发板配置

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