Cardputer 键盘输入相关 API 与案例程序,适用于 Cardputer 和 Cardputer-Adv。
M5Cardputer.update()函数用于读取状态更新,且尽可能减少阻塞情况,否则可能无法及时获取键盘变化。#include "M5Cardputer.h"
M5Canvas canvas(&M5Cardputer.Display);
String data = "> ";
void setup() {
  auto cfg = M5.config();
  M5Cardputer.begin(cfg, true);  // enableKeyboard
  M5Cardputer.Display.setRotation(1);
  M5Cardputer.Display.setTextSize(0.5);
  M5Cardputer.Display.setTextFont(&fonts::FreeSerifBoldItalic18pt7b);
  M5Cardputer.Display.drawRect(0, 0, M5Cardputer.Display.width(), M5Cardputer.Display.height() - 28, GREEN);
  M5Cardputer.Display.fillRect(0, M5Cardputer.Display.height() - 4, M5Cardputer.Display.width(), 4, GREEN);
  canvas.setTextSize(0.5);
  canvas.setTextFont(&fonts::FreeSerifBoldItalic18pt7b);
  canvas.setTextScroll(true);
  canvas.createSprite(M5Cardputer.Display.width() - 8, M5Cardputer.Display.height() - 36);
  canvas.println("Press Key and Enter to Input Text");
  canvas.pushSprite(4, 4);
  M5Cardputer.Display.drawString(data, 4, M5Cardputer.Display.height() - 24);
}
void loop() {
  M5Cardputer.update();
  if (M5Cardputer.Keyboard.isChange()) {
    if (M5Cardputer.Keyboard.isPressed()) {
      Keyboard_Class::KeysState status = M5Cardputer.Keyboard.keysState();
      for (auto i : status.word) {
        data += i;
      }
      if (status.del) {
        data.remove(data.length() - 1);
      }
      if (status.enter) {
        data.remove(0, 2);
        canvas.println(data);
        canvas.pushSprite(4, 4);
        data = "> ";
      }
      M5Cardputer.Display.fillRect(0, M5Cardputer.Display.height() - 28, M5Cardputer.Display.width(), 25, BLACK);
      M5Cardputer.Display.drawString(data, 4, M5Cardputer.Display.height() - 24);
    }
  }
}运行效果如图:
 函数原型:
void begin(); 功能说明:
可在调用M5Cardputer.begin()时将参数enableKeyboard设置为true一同初始化。
M5Cardputer.begin(m5::M5Unified::config_t cfg, bool enableKeyboard); 传入参数:
返回值:
函数原型:
bool isChange(); 功能说明:
传入参数:
返回值:
函数原型:
uint8_t isPressed(); 功能说明:
传入参数:
返回值:
函数原型:
bool isKeyPressed(char c); 功能说明:
传入参数:
'A'、'a'、'1'、','、' '(空格)、KEY_LEFT_SHIFT、KEY_BACKSPACE、KEY_ENTER、KEY_FN 等。返回值:
函数原型:
uint8_t getKey(Point2D_t keyCoor); 功能说明:
传入参数:
返回值: