热度 27
2013-11-15 21:42
3422 次阅读|
2 个评论
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 = 0; // return 0; } else { Stat = STA_NOINIT; // return STA_NOINIT; } return Stat ; case MMC : //result = MMC_disk_initialize(); // translate the reslut code here //return stat; Stat = STA_NOINIT; return Stat ; case USB : //result = USB_disk_initialize(); // translate the reslut code here //return stat; return Stat ; } 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 ; case MMC : //result = MMC_disk_status(); // translate the reslut code here //return stat; return Stat ; case USB : //result = USB_disk_status(); // translate the reslut code here return Stat ; } return STA_NOINIT; } 详细代码看附件(附件中包括正在高度中的USB功能,项目不添加USB相关库文件,需要将USB相关代码注消或删除才能编译。 7、编写相关的接口初始化代码。文件sdio_sd.c(详细代码就不贴出来了,看附件源代码文件) 源代码下载地址 http://yunpan.cn/Q9TCTEGySfXCk (360云盘)