
Arduino 上手教程
PaperMono 休眠唤醒相关 API 与案例程序。
M5PaperMono#include <M5Unified.h>
void setup()
{
auto cfg = M5.config();
cfg.clear_display = false;
M5.begin(cfg);
M5.Display.setEpdMode(epd_mode_t::epd_text);
M5.Display.setTextDatum(middle_center);
M5.Display.setTextColor(TFT_BLACK);
M5.Display.setFont(&fonts::FreeSansBold18pt7b);
M5.Display.clear(TFT_WHITE);
M5.Display.drawString("PaperMono Wakeup Test", M5.Display.width() / 2, 120);
M5.Display.setFont(&fonts::FreeSansBold12pt7b);
M5.Display.drawString("BtnA: Light Sleep 5s", M5.Display.width() / 2, 260);
M5.Display.drawString("BtnB: Depp Sleep 5s", M5.Display.width() / 2, 320);
M5.Display.drawString("Press BtnA or BtnB", M5.Display.width() / 2, 400);
}
void loop()
{
M5.update();
if (M5.BtnA.wasPressed()) {
M5.Display.clear(TFT_WHITE);
M5.Display.setTextDatum(middle_center);
M5.Display.setTextColor(TFT_BLACK);
M5.Display.setFont(&fonts::FreeSansBold18pt7b);
M5.Display.drawString("BtnA: Light Sleep", M5.Display.width() / 2, 180);
M5.Display.setFont(&fonts::FreeSansBold12pt7b);
M5.Display.drawString("Sleeping for 5 seconds", M5.Display.width() / 2, 280);
delay(200);
M5.Power.lightSleep(5000000, true);
M5.Display.clear(TFT_WHITE);
M5.Display.setTextDatum(middle_center);
M5.Display.setTextColor(TFT_BLACK);
M5.Display.setFont(&fonts::FreeSansBold18pt7b);
M5.Display.drawString("BtnA: Wakeup complete", M5.Display.width() / 2, 180);
M5.Display.setFont(&fonts::FreeSansBold12pt7b);
M5.Display.drawString("BtnB: Deep Sleep 5s", M5.Display.width() / 2, 320);
}
if (M5.BtnB.wasPressed()) {
M5.Display.clear(TFT_WHITE);
M5.Display.setTextDatum(middle_center);
M5.Display.setTextColor(TFT_BLACK);
M5.Display.setFont(&fonts::FreeSansBold18pt7b);
M5.Display.drawString("BtnB: Deep Sleep", M5.Display.width() / 2, 180);
M5.Display.setFont(&fonts::FreeSansBold12pt7b);
M5.Display.drawString("Wake up after 5 seconds", M5.Display.width() / 2, 280);
delay(200);
M5.Power.deepSleep(5000000, true);
}
delay(20);
} 程序启动后会在屏幕显示两种休眠操作。按下按键 A 会进入 5 秒浅度休眠,唤醒后从 lightSleep() 的下一行继续运行并显示唤醒完成;按下按键 B 会进入 5 秒深度休眠,定时唤醒后 ESP32-S3 复位并从 setup() 重新执行。
PaperMono 休眠唤醒部分使用了 M5Unified 库中的 Power_Class,更多相关的API可以参考下方文档: