esp8266驱动4.2寸三色墨水屏
演示

实践
创建项目

引脚
esp8266 的引脚和实际的GPIO不一致,因此要参考原理图
- GND ---> G
- 3.3V ---> 3v
- RES ---> D4 ---> GPIO2
- BUSY ---> D1 ---> GPIO5
- DC ---> D2 ---> GPIO4
- SPI
- SCL ---> D5 ---> GPIO14
- SDI ---> D7 ---> GPIO13 (MOSI)
- CS ---> D8 ---> GPIO15

驱动板
由于是纯数字电路,只要是24pin的转接板都可以,A模式就可以点亮。 
代码
基于 Arduino 的 GxEPD2 库的示例修改 
cpp
#define ENABLE_GxEPD2_GFX 1
#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
#include <pins_arduino.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <GxEPD2_7C.h>
#include <Fonts/FreeMonoBold9pt7b.h>
#if defined(ESP32)
//**** 注意1、2.9寸黑白屏初始化,注意修改相应的引脚,我这里是ESP32的,你改成自己的就可以了
// ESP32主控接法:
// SS(CS)=5 MOSI(SDA)=23 MISO(不接)=19 SCK=18 DC=17 RST=16 BUSY=19
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));
// 2.13寸屏
// GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 19));
// ESP32C3主控接法:
// SS(CS)=7 MOSI(SDA)=6 MISO(不接)=5 SCK=4 DC=3 RST=2 BUSY=10
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));
// 2.13寸屏
GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 7, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 10));
// ESP32S3主控接法:
// SS(CS)=10 MOSI(SDA)=11 MISO(不接)=13 SCK=12 DC=8 RST=7 BUSY=9
// 2.9寸屏
// GxEPD2_BW<GxEPD2_290_T94_V2, GxEPD2_290_T94_V2::HEIGHT> display(GxEPD2_290_T94_V2(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));
// 2.13寸屏
// GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));
// 1.54寸屏
// GxEPD2_BW<GxEPD2_154_T8, GxEPD2_154_T8::HEIGHT> display(GxEPD2_154_T8(/*CS=5*/ 10, /*DC=*/ 8, /*RST=*/ 7, /*BUSY=*/ 9));
#else
// ESP8266 模块接法:
// SS(CS)=15 MOSI(SDA)=13 MISO=12 SCK(SCLK)=14 DC=4 RST=2 BUSY=5
// ESP8266开发板对应引脚:
// CS=D8 SDA=D7 SCK=D5 DC=D2 RST=D4 BUSY=D1
// 4.2寸屏
GxEPD2_3C<GxEPD2_420c_GDEY042Z98, GxEPD2_420c_GDEY042Z98::HEIGHT> display(GxEPD2_420c_GDEY042Z98(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 2, /*BUSY=*/ 5));
#endif
#if defined(ESP32)
#include "bitmaps/Bitmaps1304x984.h" // 12.48" b/w
#else
// 3-color
#include "bitmaps/Bitmaps3c400x300.h" // 4.2" 3-color b/w/r
#endif