pdf-icon

Arduino 上手教程

2. 设备开发 & 案例程序

Basic/Gray/M5GO MicroSD 卡

Basic/Gray/M5GO MicroSD 卡相关API与案例程序。

案例程序

编译要求

  • M5Stack 板管理版本 >= 2.1.4
  • 开发板选项 = M5Core
  • M5Unified 库版本 >= 0.2.5
  • M5GFX 库版本 >= 0.2.7
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#include <Arduino.h>
#include <SPI.h>
#include <SD.h>
#include <M5Unified.h>
#include <M5GFX.h>
#define SD_SPI_CS_PIN 4
#define SD_SPI_SCK_PIN 18
#define SD_SPI_MISO_PIN 19
#define SD_SPI_MOSI_PIN 23
void setup() {
M5.begin();
M5.Display.setTextFont(&fonts::Orbitron_Light_24);
M5.Display.setTextSize(1);
// SD Card Initialization
SPI.begin(SD_SPI_SCK_PIN, SD_SPI_MISO_PIN, SD_SPI_MOSI_PIN, SD_SPI_CS_PIN);
if (!SD.begin(SD_SPI_CS_PIN, SPI, 25000000)) {
// Print a message if SD card initialization failed or if the SD card does not exist.
M5.Display.print("\n SD card not detected\n");
while (1)
;
} else {
M5.Display.print("\n SD card detected\n");
}
delay(1000);
// Write TXT file
M5.Display.print("\n SD card write test...\n");
auto file = SD.open("/WriteTest.txt", FILE_WRITE, true);
if (file) {
file.print("Hello, world! \nSD card write success! \n");
file.close();
M5.Display.print(" SD card write success\n");
} else {
M5.Display.print(" Failed to create TXT file\n");
}
delay(1000);
M5.Display.print("\n SD card read test...\n");
if (SD.open("/TestPicture01.png", FILE_READ, false)) {
M5.Display.print(" PNG file 01 detected\n");
} else {
M5.Display.print(" PNG file 01 not detected\n");
}
if (SD.open("/TestPicture02.png", FILE_READ, false)) {
M5.Display.print(" PNG file 02 detected\n");
} else {
M5.Display.print(" PNG file 02 not detected\n");
}
}
void loop() {
// Read PNG file and draw picture
M5.Display.drawPngFile(SD, "/TestPicture01.png");
delay(1000);
M5.Display.drawPngFile(SD, "/TestPicture02.png");
delay(1000);
}

准备一张 MicroSD 卡,格式化为 FAT32 格式,在其根目录放入两张 320*240 分辨率的 PNG 图片并命名为 TestPicture01.pngTestPicture02.png。(你也可以直接下载 示例图片1示例图片2。如果图片的分辨率不是 320*240,则程序会根据预设来决定显示方式,可能会有显示异常。)

将这张 SD 卡插入 Basic/Gray/M5GO,注意 SD 卡的触点与 Basic/Gray/M5GO 的屏幕朝同一方向。复制上面的代码到 Arduino IDE 中,编译并上传到 Basic/Gray/M5GO。

该程序会在 SD 卡中创建文本文件 WriteTest.txt 并写入一段文本,然后循环播放 SD 卡中的两张 PNG 图片。

API

Basic/Gray/M5GO MicroSD 卡部分使用了 Arduino 自带的 SD 以及 M5GFX 库中的 drawPngFile,更多相关的API可以参考下方文档:

On This Page