STM32CubeMx 配置SD卡

一、配置硬件
在这里插入图片描述

二、配置 文件系统有了文件系统操作磁盘才方便!
在这里插入图片描述
三、调用 文件系统 函数 编写程序 操作SD

#include <stdio.h>
#include "fatfs.h"
#include "sdmmc.h"

/**
 *******************************************************************************
 * @brief   测试SD卡 函数
 * @param   [in] None
 * @return  None
 * @note    
 *******************************************************************************
 */
void TestSD(void)
{
    FRESULT f_res;
    FIL file;
    FATFS SD;
//**********************************************************
    /* f_mount 函数向 FatFs 模块注册/注销文件系统对象。简单说就是给磁盘分配文件系统
    FRESULT f_mount (
                        FATFS*       fs,    //[IN] 文件系统对象
                        const TCHAR* path,  //[IN] 盘符号
                        BYTE         opt    //[IN] 初始化选项 
                    );

    fs //[IN] 文件系统对象
        要注册和清除的文件系统对象的指针。空指针取消注册已注册的文件系统对象。
    path //[IN] 盘符号
        指向指定驱动器的指针。计算机中的盘符是 C: D: E;FATFS的盘符是 0: 1: 2:
    opt //[IN] 初始化选项 
        0:现在不挂载(要挂载在第一次访问卷上)1:强制挂载卷,检查它是否准备好工作。
    */

    f_res = f_mount(&SD, "0:", 1); //SD 挂载,为 0号盘符分配新的文件系统
    if(f_res == FR_OK) printf("SD mount OK!\r\n");
    else printf("SD mount error = %d\r\n", f_res);
//**********************************************************
    //FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_CREATE_NEW | FA_OPEN_ALWAYS | FA_OPEN_APPEND | FA_SEEKEND
    f_res = f_open(&file,"0:1.txt", FA_WRITE | FA_CREATE_ALWAYS); //打开“1.txt“文件,若没有则创建该文件,写操作
    if(f_res == FR_OK) printf("'1.txt' Open OK!\r\n");
    else printf("'1.txt' Open error = %d\r\n", f_res);
    
    s32 len = f_printf(&file, "%s", "123456789"); //文件内写入
    if( len >= 0 ) printf("Write OK!write size = %d\r\n", len);
    else printf("Write error!\r\n");

    f_res = f_close(&file); //不论是打开,还是新建文件,一定记得关闭
    if(f_res == FR_OK) printf("'1.txt' Close OK!\r\n");
    else printf("'1.txt' Close error = %d\r\n", f_res);
    printf("\r\n");
//**********************************************************
}

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页