ESP32 Heltec wifi LoRa、Waveshare e-Paper 4.2",如何通过 SPI 连接以及如何在显示器上显示内容(使用哪个库)?

ESP32 Heltec wifi LoRa, Waveshare e-Paper 4.2", how to connect via SPI and how to display something on the display (which library to use)?

我正在尝试通过 SPI 将 Waveshare 电子纸显示器连接到 ESP32 开发板,但无法正常工作。我是电子方面的新手,所以我不确定我是否正确连接了引脚。 Waveshare 为 Arduino 提供了示例 code,但是当我将它闪存到我的板上时,显示器不执行任何操作。我可以在串行输出中看到草图闪烁正常并且 运行 在板上。

我尝试编辑示例代码中发生 SPI.begin() 的代码,并传入我正在使用的引脚(在此 line 上)。

这样做之后,代码运行通过以下块,因此 epd.init() 现在可以正常工作了。

  if (epd.Init() != 0) {
    Serial.print("e-Paper init failed");
    return;
  }

我使用的硬件:

电子纸显示器:微雪电子4.2寸电子墨水屏module

驱动板:ESP32 Heltec wifi LoRa (V1)

ESP32datasheet

如果我走错了路或者我打算使用不同的库(我遇到了 GxEPD2,不确定我是否打算改用那个?),请感觉免费纠正我并指出正确的方向。非常感谢任何帮助!

我的主要问题:

  • 恐怕使用微雪的标准库很难将ePaper模块连接到ESP32 Heltec。它可能是可行的,但需要对标准 ePaper 库进行一些修改。查看 epd-library-arduino 为 SPI 提供了这些引脚:
// Pin definition
#define RST_PIN         8
#define DC_PIN          9
#define CS_PIN          10
#define BUSY_PIN        7

Heltec 上并非免费提供所有这些引脚。此外,Heltec 将 SPI 用于 LoRa 和 OLED。您将不得不找到其他一些引脚并可能执行 SPI“位碰撞”(不是硬件 SPI)。我建议从 ESP-WROOM-32 芯片上 Waveshare 的示例代码开始,没有任何其他外部设备连接到 SPI 总线。当你开始工作时,开始使用不同的 SPI 引脚设置将代码移植到 Heltec。

  • GxEPD2 是一个很棒的图书馆。我亲自在 ESP-WROOM-32 上使用过它。请注意,GxEPD2 在 GPLv3.0 下获得许可。

  • Waveshare、GoodDisplay、GxEPD2 和 Adafruit GFX 都有大量示例源代码供您入门。

我不知道你有没有进一步的了解,但我正在执行类似的任务,使用 5.65 7 色显示器。我在此处 ESP32 Driver Board Code 使用驱动程序代码让 EPaper 工作,但后来发现它干扰了 LoRa(一直工作正常)!我将深入挖掘,但在这个阶段(正确或错误)我对库下的 DEV_Config.h 进行了这些更改,如果您不使用 LoRa,那么至少您可以验证您的 EPaper 是否正常工作:

#define EPD_SCK_PIN 5
#define EPD_MOSI_PIN 27

#define EPD_DC_PIN 13
#define EPD_CS_PIN 17
#define EPD_RST_PIN 14
#define EPD_BUSY_PIN 2

/*
#define EPD_SCK_PIN  13
#define EPD_MOSI_PIN 14
#define EPD_CS_PIN   15
#define EPD_RST_PIN  26
#define EPD_DC_PIN   27
#define EPD_BUSY_PIN 25
*/

我相应地连接了引脚。我的理论是它应该能够在与 LoRa 相同的 SPI 上工作,具有单独的 CS 引脚。我会弄乱这个一段时间所以也许想出解决方案。这可能与我在 SDCard 模块上遇到问题的原因有关,我也试图在同一电路上工作。我是新手,请放轻松!