我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1879|回复: 2

STM32F4采用FATFS V0.1版本文件系统的SD卡实现

[复制链接]

该用户从未签到

72

主题

232

回帖

387

积分

二级逆天

积分
387

终身成就奖社区居民社区劳模

QQ
发表于 2015-4-1 09:11:44 | 显示全部楼层 |阅读模式
1、到官网下载:http://elm-chan.org/fsw/ff/00index_e.html 下载FATFS源代码,最新版本是R0.1版本。
2、解压下载后的文件会得到两个文件夹,一个是doc文件夹,这里是FATFS的一些使用文档和说明,以后在文件编程的时候可以查看该文档。另一个是src文件夹,里面就是我们所要的源文件。
3、将解压后的src文件夹下的文件拷贝到STM32F4工程目录下。
4、将ff.c和diskio.c添加到SMT32F4工程
5、打开ffconf.h文件,修改_CODE_PAGE 的值为936(支持中文),将_USE_FASTSEEK的值为1.
6、修改diskio.c文件中硬件相关函数。
添加disk_initialize初始化函数内容
DSTATUS disk_initialize (
    BYTE pdrv                /* Physical drive nmuber (0..) */
)
{
    //DSTATUS stat;
    //int result;
   SD_Error Status;
    switch (pdrv) {
    case ATA :
    //    result = ATA_disk_initialize();
        // translate the reslut code here
        //return stat;
        Status = SD_Init();
    if(Status == SD_OK)
        {
            Stat[ATA] = 0;
      //  return 0;
        }
    else
        {
            Stat[ATA] = STA_NOINIT;
      //  return STA_NOINIT;
        }
        return Stat[ATA];
    case MMC :
        //result = MMC_disk_initialize();
        // translate the reslut code here
        //return stat;
        Stat[MMC] = STA_NOINIT;
        return Stat[MMC];
    case USB :
        //result = USB_disk_initialize();
        // translate the reslut code here
        //return stat;
          return Stat[USB];
    }
    return STA_NOINIT;
}

硬盘状态函数disk_status

DSTATUS disk_status (
    BYTE pdrv        /* Physical drive nmuber (0..) */
)
{
   
//    int result;

    switch (pdrv) {
    case ATA :
    //    result = ATA_disk_status();

        // translate the reslut code here

        return Stat[ATA];

    case MMC :
        //result = MMC_disk_status();

        // translate the reslut code here

        //return stat;
        return Stat[MMC];
    case USB :
        //result = USB_disk_status();
        // translate the reslut code here
        return Stat[USB];
    }
    return STA_NOINIT;
}

详细代码看附件(附件中包括正在调试中的USB功能,项目不添加USB相关库文件,需要将USB相关代码注消或删除才能编译。
7、编写相关的接口初始化代码。文件sdio_sd.c(详细代码就不贴出来了,看附件源代码文件)
STM32的SD卡FATFS.rar (1.24 MB, 下载次数: 0)
回复

使用道具 举报

该用户从未签到

10

主题

295

回帖

308

积分

二级逆天

积分
308

社区居民终身成就奖

QQ
发表于 2015-4-1 09:23:37 | 显示全部楼层
不错哦 !!!!!!!!
回复

使用道具 举报

该用户从未签到

168

主题

6352

回帖

923

积分

二级逆天

积分
923

社区居民终身成就奖优秀斑竹奖宣传大使奖社区劳模最爱沙发社区明星灌水天才奖幽默大师奖贴图大师奖新人进步奖忠实会员

发表于 2015-4-1 09:44:14 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表