介绍在ESP32上使用ESP-IDF框架操作SPI接口的SD卡;
1、建立项目
从官方的ESP-IDF SDK中复制项目示例(这里使用的IDF版本为5.4.1):
cp xx/esp-idf/examples/storage/sd_card/sdspi ./ -r 2、硬件连接
因为ESP32上的某些引脚用于其他用途如Strapping 管脚、模组集成的PSRAM及SPI Flash、JTag引脚等,因此在连接时候尽量不使用这些,具体说明可以查看官方文档:
ESP32 GPIO说明:GPIO & RTC GPIO - ESP32 - — ESP-IDF 编程指南 v5.4.1 文档
ESP32-S3 GPIO说明:GPIO & RTC GPIO - ESP32 - — ESP-IDF 编程指南 v5.4.1 文档
如下为ESP32的Strapping引脚说明:

根据上面文档,这里连接如下:
- ESP32-S3
| ESP32 | SD-Card |
|---|---|
| 3.3V | 3v3 |
| GND | GND |
| 4 | MISO |
| 6 | MOSI |
| 7 | SCK |
| 8 | CS |
- ESP32
| ESP32 | SD-Card |
|---|---|
| 3.3V | 3v3 |
| GND | GND |
| 19 | MISO |
| 21 | MOSI |
| 22 | SCK |
| 23 | CS |
3、更改软件配置
根据上面硬件连接同时软件也需要进行更改引脚设置:
- 设置硬件型号
使用如下命令设置对应硬件:
idf.py set-target esp32-s3如果是ESP32则设置为set-target ESP32;
- 设置引脚
使用menuconfig配置引脚:
idf.py menuconfig先选择SD卡示例菜单:

然后更改引脚:

3、查看结果
- 编译程序然后烧写到开发板
idf.py buildidf.py flash -p /dev/ttyACM0- 查看日志
idf.py monitor 可以看到如下LOG,表示成功执行SD卡的读写操作:

评论