System & Button & POWER

System

begin()

功能:

初始化触摸屏 ,TF Card , 串口 , 电池ADC读取 ,I2C

函数原型:

void begin(bool touchEnable = true, bool SDEnable = true, bool SerialEnable = true, bool BatteryADCEnable = true, bool I2CEnable = false)

例程

#include <M5EPD.h>

void setup() {
  M5.begin(true,true,true,true,true);
}

update()

功能:

检测按键是否按下

函数原型:

void update()

例程

#include <M5EPD.h>
void setup() {
  M5.begin(false,false,true,false,false);
}

void loop() {
  M5.update();
  if( M5.BtnL.wasPressed()) {
    Serial.println("Left button pressed");
  }
}

Button

lastChange()

功能:

返回最后一次状态发生变化的时间

函数原型:

uint32_t lastChange()

注意:
1.返回的时间是从M5Paper初始化的那一刻开始计时,单位为毫秒

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();
  Serial.printf("The last change at %d ms /n",M5.BtnL.lastChange());    //打印按键L最后一次状态变化的时间
}

Press

isPressed()

功能:

返回按键按下状态: 如果按键按下,返回true; 否则返回false

函数原型:

uint8_t isPressed()

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();    //需添加M5.update()才能读取到按键的状态,细节请见System
  if (M5.BtnL.isPressed()) {    //如果按键按下
    Serial.println("Button is Pressed.");
  }else{
    Serial.println("Button is Released.");
  }
  delay(20);
}

pressedFor()

功能:

返回按键按下状态: 如果按键按下超过指定时间后,返回true; 否则返回false

函数原型:

uint8_t pressedFor(uint32_t ms)

参数 类型 描述
ms uint32_t 按键按下时间 (毫秒)

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();
  if (M5.BtnL.pressedFor(2000)) {    //如果按键按下超过2秒
    Serial.println("Button L was pressed for more than 2 seconds.");
    delay(1000);
  }
}

wasPressed()

功能:

返回按键按下状态: 如果按键按下,只会返回一次true,否则返回false

函数原型:

uint8_t wasPressed()

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();
  if (M5.BtnL.wasPressed()) {    //如果按键按下
    Serial.println("Button is pressed.");
  } 
  delay(20);
}

Released

isReleased()

功能:

返回按键释放状态: 如果按键释放,返回true; 否则返回false

函数原型:

uint8_t isPressed()

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
}

void loop() {
  M5.update();    //需添加M5.update()才能读取到按键的状态,细节请见System
  if (M5.BtnL.isReleased()) {    //如果按键释放
    Serial.println("Button is released.");
  }else{
    Serial.println("Button is Pressed .");
  }
  delay(20);
}

releasedFor()

功能:

返回按键释放状态: 如果按键释放超过指定时间后,返回true; 否则返回false

函数原型:

uint8_t pressedFor(uint32_t ms)

参数 类型 描述
ms uint32_t 按键释放时间 (毫秒)

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
}

void loop() {
  M5.update();
  Serial.setCursor(0, 0);
  if (M5.BtnL.releasedFor(2000)) {    //如果按键释放超过2秒
    Serial.println("Button L was released for more than 2 seconds.");
    delay(1000);
  }else{
    Serial.println("Button L is pressed                           ");
  }
}

wasReleased()

功能:

返回按键释放状态: 如果按键释放,只会返回一次true,否则返回false

函数原型:

uint8_t wasReleased()

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();
  if(M5.BtnL.wasReleased()) {    //如果按键释放
    Serial.println("Button is Released.");
  }
  delay(20);
}

wasReleasefor()

功能:

返回按键释放状态: 如果按键按下,在超过指定时间后释放,只会返回一次true,否则返回false

函数原型:

uint8_t wasReleasefor(uint32_t ms)

参数 类型 描述
ms uint32_t 按键按下时间 (毫秒)

使用示例:

#include <M5EPD.h>

void setup() {
  M5.begin();
  Serial.println("Please pressed Button L.");
}

void loop() {
  M5.update();
  if (M5.BtnL.wasReleasefor(3000)) {    //如果按键A按下3s之后释放
      Serial.println("OK");
  }
}

相关引脚定义

#define M5EPD_MAIN_PWR_PIN 2
#define M5EPD_CS_PIN 15
#define M5EPD_SCK_PIN 14
#define M5EPD_MOSI_PIN 12
#define M5EPD_BUSY_PIN 27
#define M5EPD_MISO_PIN 13
#define M5EPD_EXT_PWR_EN_PIN 5
#define M5EPD_EPD_PWR_EN_PIN 23
#define M5EPD_KEY_RIGHT_PIN 39
#define M5EPD_KEY_PUSH_PIN 38
#define M5EPD_KEY_LEFT_PIN 37
#define M5EPD_BAT_VOL_PIN 35
#define M5EPD_PORTC_W_PIN 19
#define M5EPD_PORTC_Y_PIN 18
#define M5EPD_PORTB_W_PIN 33
#define M5EPD_PORTB_Y_PIN 26
#define M5EPD_PORTA_W_PIN 32
#define M5EPD_PORTA_Y_PIN 25

Power

enableEXTPower()

功能:

启用拓展端口电源

函数原型:

void enableEXTPower()

disableEXTPower()

功能:

关闭拓展端口电源

函数原型:

void disableEXTPower()

enableEPDPower()

功能:

启用墨水屏电源

函数原型:

void enableEPDPower()

disableEPDPower()

功能:

关闭墨水屏电源

函数原型:

void disableEPDPower()

enableMainPower()

功能:

启用主电源

函数原型:

void enableMainPower()

disableMainPower()

功能:

关闭主电源

函数原型:

void disableMainPower()

BatteryADCBegin()

功能:

初始化电池ADC检测

函数原型:

void BatteryADCBegin()

getBatteryRaw()

功能:

读取电池电压原生ADC值

函数原型:

uint32_t getBatteryRaw()

getBatteryVoltage()

功能:

读取电池电压

函数原型:

uint32_t getBatteryVoltage()

On This Page