介绍在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 build
idf.py flash -p /dev/ttyACM0
- 查看日志
idf.py monitor
可以看到如下LOG,表示成功执行SD卡的读写操作:
评论