pdf-icon

Arduino 上手教程

Button

Paper按键输入相关API与案例程序。

注意事项:
使用时需要在主循环中包含M5.update()函数用于读取状态更新且尽可能减少阻塞情况, 否则可能无法及时获取的按键变化状态。

案例程序

#include <M5EPD.h>

M5EPD_Canvas canvas(&M5.EPD);

void ButtonTest(char* str) {
    canvas.fillCanvas(0);
    canvas.drawString(str, 100, 100);
    canvas.pushCanvas(100, 300, UPDATE_MODE_DU4);
    delay(500);
}

void setup() {
    M5.begin();
    M5.EPD.SetRotation(90);
    M5.EPD.Clear(true);
    canvas.createCanvas(300, 300);
    canvas.setTextSize(3);
}

void loop() {
    if (M5.BtnL.wasPressed()) ButtonTest("Btn L Pressed");
    if (M5.BtnP.wasPressed()) ButtonTest("Btn P Pressed");
    if (M5.BtnR.wasPressed()) ButtonTest("Btn R Pressed");
    M5.BtnL.lastChange();
    M5.update();
    delay(100);
}

read

函数原型:

uint8_t read();

功能说明:

  • 读取按键状态

传入参数:

  • null

返回值:

  • uint8_t:
    • 1:按下
    • 0:释放

lastChange

函数原型:

uint32_t lastChange();

功能说明:

  • 获取上一次状态更新的时间

传入参数:

  • null

返回值:

  • uint32_t: 上一次状态更新的时间ms

isPressed

函数原型:

uint8_t isPressed();

功能说明:

  • 判断按键是否按下

传入参数:

  • null

返回值:

  • uint8_t:
    • 1: 按键处于按下状态
    • 0: 按键不处于按下状态

wasPressed

函数原型:

uint8_t wasPressed();

功能说明:

  • 判断按键由释放状态, 变化为按下状态

传入参数:

  • null

返回值:

  • uint8_t:
    • 1: 触发按键由释放状态变化为按下状态
    • 0: 未触发按键由释放状态变化为按下状态

pressedFor

函数原型:

uint8_t pressedFor(uint32_t ms);

功能说明:

  • 判断按键是否按下超过指定超时时间

传入参数:

  • uint32_t ms:
    • 按键按下超时时间ms

返回值:

  • uint8_t:
    • 1: 触发按键释放超过超时时间
    • 0: 未触发

isReleased

函数原型:

uint8_t isReleased();

功能说明:

  • 判断按键是否处于释放状态

传入参数:

  • null

返回值:

  • uint8_t:
    • 1: 按键处于释放状态
    • 0: 按键不处于释放状态

releasedFor

函数原型:

uint8_t releasedFor(uint32_t ms);

功能说明:

  • 判断按键释放超时时间

传入参数:

  • uint32_t ms:
    • 按键释放超时时间ms

返回值:

  • uint8_t:
    • 1: 触发按键释放超过超时时间
    • 0: 未触发

wasReleased

函数原型:

uint8_t wasReleased();

功能说明:

  • 判断按键由按下状态, 变化为释放状态

传入参数:

  • null

返回值:

  • uint8_t:
    • 1: 触发按键由按下状态变化为释放状态
    • 0: 未触发按键由按下状态变化为释放状态

wasReleasefor

函数原型:

uint8_t wasReleasefor(uint32_t ms);

功能说明:

  • 判断按键是否按下超过指定超时时间, 释放后触发

传入参数:

  • uint32_t ms:
    • 按键释放超时时间ms

返回值:

  • uint8_t:
    • 1: 触发按键释放超过超时时间
    • 0: 未触发
On This Page