强大的ESPIDF肯定有库,不仅是SPI驱动程序层级的库,还有特定应用于SD/MMC的库,将POSIX函数经过SPI协议读写SD卡的方法集成了。之所以出上三篇文章,就是官方库讨论热度低,稍微配置偏差了点可能就不能运作,故障也没人来讨论,因为经过多层封装,程序中间哪儿出问题不容易排查。但是熟悉官方库后,直接调用官方库是最成熟省事的。
官方库的component组件在电脑C:\Users\esp\v5.1.2\esp-idf\components\fatfs这个文件夹里,在main.c主程序源文件里面直接#include,不需要在cmakelist.txt里面配置东西了。
#include "esp_vfs_fat.h"
#include <string.h>
#include <sys/unistd.h>
#include <sys/stat.h>
一、初始化配置代码
#define pin_CS 9
#define pin_MOSI 10
#define pin_MISO 12
#define pin_CLK 11
#define MOUNT_POINT "/sdcard"
void sdcard_init()
{
sdmmc_host_t host=SDSPI_HOST_DEFAULT();
host.slot=SPI2_HOST;
spi_bus_config_t bus_cnf={
.mosi_io_num = pin_MOSI,
.miso_io_num = pin_MISO,
.sclk_io_num = pin_CLK,
.quadhd_io_num=-1, //这行不能省略
.quadwp