原理图:
图 SD卡部分
图 MCU中与SD卡相关的接口
连接关系如下:
- [ESP32 IO26 – CS MICROSD]
- [ESP32 IO23 – MOSI(DI) MICROSD]
- [ESP32 IO19 – MISO(DO) MICROSD]
- [ESP32 IO18 – SCK MICROSD]
- [ESP32 GND – GND MICROSD]
- [3.3V – VCC MICROSD]
软件:
我们将使用SD卡库用于沟通。您可以在此处下载:
https://github.com/nhatuan84/esp32-micro-sdcard
下载后,将其解压缩并将解压缩的文件夹复制到Arduino文件夹下的libraries文件夹。
这个库提供了一些类和接口:
– SD.begin(uint8_t cs,int8_t mosi,int8_t miso,int8_t sck)
:使用SPI引脚初始化库
打开文件:
– SD.open(filename,FILE_WRITE)
:打开文件进行写入
– SD.open(filename)
:打开文件进行读取
– SD.open(“/”)
:打开sdcard at root“/”
打开遍历目录:
– openNextFile()
:遍历目录
– name()
:获取文件名或目录
– isDirectory()
:检查条目是否为目录
读写文件&获取文件属性:
– size()
:获取文件大小
– close()
:关闭打开的条目
– println(文本)
:将文本写入打开的文件
– available()
:检查可用的数据reading
– read()
:如果数据可用则读取数据
– close()
:关闭打开的文件
以下是相应的代码:
/*******************************************************
ESP32 测试SD卡
功能:对SD卡进行文件的写&读操作
引脚:GPIO26 -> CS GPIO14 -> MOSI(DI) GPIO12 -> MISO(DO) GPIO27 - SCK
*******************************************************/
#include
#include
File root;
void setup()
{
Serial.begin(115200);
Serial.print("Initializing SD card...");
/*初始化SD库SPI引脚*/
if (!SD.begin(26, 14, 12, 27)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
/*从根目录root“/”*/
root = SD.open("/");
if (root) {
printDirectory(root, 0);
root.close();
} else {
Serial.println("error opening test.txt");
}
/*打开“test.txt”写入*/
root = SD.open("test.txt", FILE_WRITE);
/*如果成功打开 - > root!= NULL 然后写字符串“Hello world!”*/
if (root) {
root.println("Hello world!");
root.flush();
/*关闭文件 */
root.close();
} else {
/* 如果文件打开错误,则打印错误 */
Serial.println("error opening test.txt");
}
delay(1000);
/*写完后再重新打开文件并读取它 */
root = SD.open("test.txt");
if (root) {
/* 从文件中读取,直到其中没有其他内容 */
while (root.available()) {
/* 读取文件并打印到串口监视器*/
Serial.write(root.read());
}
root.close();
} else {
Serial.println("error opening test.txt");
}
Serial.println("done!");
}
void loop()
{
}
标签:esp32,笔记,MICROSD,println,Serial,打开,root,SD From: https://www.cnblogs.com/FBsharl/p/18242748