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(详细代码就不贴出来了,看附件源代码文件)
源代码下载地址http://yunpan.cn/Q9TCTEGySfXCk (360云盘)
用户413927 2014-6-21 00:42
用户1747828 2014-4-16 12:04