在音频开发板上配有TF卡接口,该接口在程序的控制下,可对TF卡进行读写操作。TF卡的接口电路及实物状态分别如图1和图2所示。
图2 实物状态
TF卡各引脚的连接关系见表1所示:
表1 引脚连接关系
TF卡 |
开发板 |
VDD |
3.3V |
D0 |
2 (add 1K pull up after flashing) |
D1 |
4 |
D2 |
12 |
D3 |
13 |
CLK |
14 |
CMD |
15 |
VSS |
GND |
由于引脚复用的关系,在进行TF卡读写时应S1的指拨开关设置到SD卡一侧,见图3所示。
在进行TF卡读写时,需包含以下头文件:
#include "FS.h"
#include "SD_MMC.h"
进行TF卡读写的程序如下:
void setup(){
Serial.begin(115200);
if(!SD_MMC.begin()){
Serial.println("Card Mount Failed");
return;
}
uint8_t cardType = SD_MMC.cardType();
if(cardType == CARD_NONE){
Serial.println("No SD_MMC card attached");
return;
}
Serial.print("SD_MMC Card Type: ");
if(cardType == CARD_MMC){
Serial.println("MMC");
} else if(cardType == CARD_SD){
Serial.println("SDSC");
} else if(cardType == CARD_SDHC){
Serial.println("SDHC");
} else {
Serial.println("UNKNOWN");
}
uint64_t cardSize = SD_MMC.cardSize() / (1024 * 1024);
Serial.printf("SD_MMC Card Size: %lluMB\n", cardSize);
listDir(SD_MMC, "/", 0);
createDir(SD_MMC, "/mydir");
listDir(SD_MMC, "/", 0);
removeDir(SD_MMC, "/mydir");
listDir(SD_MMC, "/", 2);
writeFile(SD_MMC, "/hello.txt", "Hello ");
appendFile(SD_MMC, "/hello.txt", "World!\n");
readFile(SD_MMC, "/hello.txt");
deleteFile(SD_MMC, "/foo.txt");
renameFile(SD_MMC, "/hello.txt", "/foo.txt");
readFile(SD_MMC, "/foo.txt");
testFileIO(SD_MMC, "/test.txt");
Serial.printf("Total space: %lluMB\n", SD_MMC.totalBytes() / (1024 * 1024));
Serial.printf("Used space: %lluMB\n", SD_MMC.usedBytes() / (1024 * 1024));
}
void loop(){
}
经编译上传,其结果如图4所示。
在此基础上,若配上显示屏及图片显示函数,则可以实现数码相框功能。
引用: 火辣西米秀 发表于 2021-10-7 18:04 一直在关注楼主的测评,讲的很细心 ESP32-Audio-Kit音频开发板的TF卡接口电路看起来很简洁。 楼主加 ...
努力!!!