ESP32-S3 控制 SD卡
ESP32-S3 控制 SD 卡实验
SD 卡模块是常用的外部存储设备,可以用来存储数据日志、文本文件或多媒体文件。
本文介绍如何使用 ESP32-S3 操作 SD 卡,实现文件的写入与读取。
一、实验名称
SD卡实验
二、接线说明
| SD卡模块 | ESP32-S3开发板 |
|---|---|
| DAT0 (MISO) | 40 |
| CMD (MOSI) | 38 |
| CLK (SCK) | 39 |
| CD/DAT3 (CS) | 1 |
注意事项:
- SD 卡模块采用 SPI 接口与 ESP32-S3 通信。
- 在接线时确保电源正确,一般模块使用 3.3V 或 5V 均可,取决于模块设计。
三、实验现象
程序下载成功后,ESP32-S3 将会:
- 在 SD 卡根目录下创建
test.txt文件。 - 向文件写入内容
"testing 1, 2, 3."。 - 重新读取文件内容,并在串口控制台输出。
四、完整代码示例
#include "public.h"
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
Serial.begin(115200);
Serial.print("Initializing SD card...");
// 使用 HSPI 总线
SPIClass spi = SPIClass(HSPI);
spi.begin(39 /* SCK */, 40 /* MISO */, 38 /* MOSI */, 1 /* SS */);
// 初始化 SD 卡
if (!SD.begin(1 /* SS */, spi, 80000000)) {
Serial.println("initialization failed!");
} else {
Serial.println("initialization done.");
}
// 打开文件并写入内容
myFile = SD.open("/test.txt", FILE_WRITE);
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening test.txt");
}
// 重新打开文件并读取内容
myFile = SD.open("/test.txt");
if (myFile) {
Serial.println("test.txt content:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error opening test.txt");
}
}
void loop() {
// 此实验无需循环操作
}
五、代码讲解
- SPI 初始化
SPIClass spi = SPIClass(HSPI);
spi.begin(39, 40, 38, 1);
- 使用 ESP32-S3 的 HSPI 总线,指定 SCK、MISO、MOSI 和 CS 引脚。
- SD 卡初始化
SD.begin(1, spi, 80000000);
- 初始化 SD 卡,传入片选引脚、SPI 对象和时钟频率。
- 文件写入
myFile = SD.open("/test.txt", FILE_WRITE);
myFile.println("testing 1, 2, 3.");
myFile.close();
- 打开或创建文件
test.txt并写入字符串,写入完成后关闭文件。
- 文件读取
myFile = SD.open("/test.txt");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
- 重新打开文件并逐字节读取内容,通过串口输出。
六、实验效果
- SD 卡根目录成功生成
test.txt文件。 - 文件中包含
"testing 1, 2, 3."。 - 串口控制台显示文件内容,验证写入和读取功能正常。
七、进阶应用
-
数据日志
可将传感器采集的数据实时写入 SD 卡,形成日志文件。 -
多文件操作
在不同文件中存储不同类型的数据,如温度、湿度、时间戳等。 -
与显示屏联动
结合 OLED 或 TFT 显示屏,将 SD 卡内容实时显示在屏幕上。
八、总结
通过本实验,你学会了:
- ESP32-S3 使用 SPI 接口操作 SD 卡
- 文件的创建、写入与读取方法
- 使用 SD 卡进行数据存储和信息输出
这是构建数据记录、智能日志系统或多媒体项目的重要基础。

浙公网安备 33010602011771号