M5Cardputer
M5Stack M5Cardputer 和 M5Cardputer-ADV 基础库
M5Cardputer 是一个面向 ESP32 手持设备的 Arduino 库,集成了 LCD 显示屏、键盘、扬声器、麦克风、按钮、红外发射器和 SD 卡槽。它封装了 M5Unified 和 M5GFX,提供统一的高级 API。
非官方文档。 本文档为个人维护,基于 M5Cardputer v1.1.1 及依赖头文件编写,可能存在遗漏或错误。请以 M5Stack 官方仓库 为准。
仓库地址: https://github.com/cheerland01/M5Cardputer-docs
支持的板型
| 板型 | 键盘驱动 |
|---|---|
| M5Cardputer | GPIO 矩阵 (IOMatrixKeyboardReader) |
| M5Cardputer-ADV | TCA8418 I2C 控制器 (TCA8418KeyboardReader) |
安装
PlatformIO
在 platformio.ini 中添加:
Arduino IDE
- 打开 库管理器 (
Ctrl+Shift+I) - 搜索 M5Cardputer
- 点击 安装
自动安装的依赖库:
| 库 | 版本 |
|---|---|
| M5Unified | * |
| M5GFX | * |
| IRremote | * |
快速开始
#include "M5Cardputer.h"
void setup() {
auto cfg = M5.config();
M5Cardputer.begin(cfg, true); // true = 启用键盘
}
void loop() {
M5Cardputer.update(); // 每次 loop 迭代必须调用
if (M5Cardputer.Keyboard.isChange()) {
if (M5Cardputer.Keyboard.isPressed()) {
auto& state = M5Cardputer.Keyboard.keysState();
// 打印输入的字符
for (char c : state.word) {
M5Cardputer.Display.print(c);
}
// 处理特殊按键
if (state.enter) M5Cardputer.Display.println();
if (state.del) {
// 退格逻辑
}
}
}
}
API 概览
| 类 / 子系统 | 描述 |
|---|---|
M5_CARDPUTER |
主设备类 — 显示屏、音频、输入、I2C 总线、按钮、电源 |
配置 |
M5Unified config_t — 硬件初始化、引脚分配 |
Display (M5GFX) |
功能完备的图形库:绘图、文字、图片、二维码 |
Sprite (M5Canvas) |
离屏画布、双缓冲渲染 |
Speaker |
音调生成、WAV 播放、音量控制 |
Microphone |
I2S 音频录音,可配置采样率 |
Keyboard_Class |
键盘状态机,支持多键按下和修饰键处理,键码常量 |
KeyboardReader |
抽象基类 + GPIO / I2C 实现 |
ReplView |
终端风格 REPL UI 框架,支持提示符、光标和命令回调 |
SD 卡 |
MicroSD 文件读写、WAV 存储、日志记录 |
红外 |
红外 NEC 发射(IRremote 库) |
外部 API |
WiFi、BLE、MQTT、USB HID、FreeRTOS、OTA、JSON 文档链接 |
许可证
本文档由 DeepSeek 辅助生成。