37.2. SPI SDCARD FATFS

37.2.1. 概览

本示例使用SPI接口操作sdcard,并且使用fatfs文件系统。测试需要格式化SD卡为FAT32,提供如下功能: - 创建hello.txt

  • 从hello.txt读出一行文本

  • 创建并删除文件夹

  • 大文件测试

37.2.2. 板级设置

  • SPI引脚 根据板子型号查看具体信息

  • SPI引脚对应好SD卡(模块)引脚

37.2.3. 注意事项

  • 该实例工程依赖SPI组件和DMA管理器组件,需要进行使能该组件。

  • 考虑到各类SD卡兼容性,SPI sdcard库中的写操作中,有些SD卡需要进行写等待延时。移植时可以参考common/adapt/spi_sd_adapt.c, 需要注意以下三点:

  • 1.内部延时默认100us,如果需要改其他延时可以通过重新定义SPI_SD_DELAY_DEFAULT_US宏

  • 2.如果不需要该写等待延时, 可以把sdcard_spi_init API的传参的结构体成员delay_ms和delay_us置为NULL。或者SPI_SD_DELAY_DEFAULT_US宏定义为0

  • 3.如果需要该写等待延时, 并且是在RTOS环境下,建议sdcard_spi_init初始化API在任务中调用,并且传参的结构体成员delay_ms和delay_us赋值为RTOS的任务延时API,比如freertos的vTaskDelay

37.2.4. 运行示例

当示例成功运行后,会显示如下菜单,选择相对应的测试项会提示。

---------------------------------------------------------------
*                                                             *
*                   spi sdcard fatfs demo                     *
*                                                             *
*        1 - Create hello.txt                                 *
*        2 - Read 1st line from hello.txt                     *
*        3 - Directory related test                           *
*        4 - Large file write test                            *
*-------------------------------------------------------------*
SD card has been mounted successfully
1
Create new file successfully, status=0
Write file operation is successfully
2
Open file successfully
Hello, this is SPI SD card FATFS demo

3
Creating new directory succeeded
Removing new directory succeeded
4
Create new file successfully, now writing.....
Write file operation is successful