Basic/Gray/M5GO MicroSD 卡相关API与案例程序。
#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.png
、TestPicture02.png
。(你也可以直接下载 示例图片1、示例图片2。如果图片的分辨率不是 320*240
,则程序会根据预设来决定显示方式,可能会有显示异常。)
将这张 SD 卡插入 Basic/Gray/M5GO,注意 SD 卡的触点与 Basic/Gray/M5GO 的屏幕朝同一方向。复制上面的代码到 Arduino IDE 中,编译并上传到 Basic/Gray/M5GO。
该程序会在 SD 卡中创建文本文件 WriteTest.txt
并写入一段文本,然后循环播放 SD 卡中的两张 PNG 图片。
Basic/Gray/M5GO MicroSD 卡部分使用了 Arduino 自带的 SD
以及 M5GFX
库中的 drawPngFile
,更多相关的API可以参考下方文档: