OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6059|回复: 0

关于FATFS的问题

[复制链接]

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-7-3
在线时间
5 小时
发表于 2014-7-8 00:32:26 | 显示全部楼层 |阅读模式
5金钱
用STM32F207移植FATFS,用SDIO方式读写,目前能创建文件,能读文件,但不能写进去,内容永远是0kb,FATFS是0.07c,到底是移植时候接口问题还是SD卡问题?SD卡是1GB的SANDISK。
我把代码贴上来,看看哪里有问题。。。

1、初始化代码
[mw_shl_code=c,true]DSTATUS disk_initialize ( BYTE drv /* Physical drive nmuber (0..) */ ) { SD_Error Status; Status = SD_USER_Init(); if ( Status == SD_OK ) return 0; return STA_NOINIT; }[/mw_shl_code]
2、读代码
[mw_shl_code=c,true]DRESULT disk_read ( BYTE drv, /* Physical drive nmuber (0..) */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to read (1..255) */ ) { SD_Error Status = SD_OK; if (count != 1) { Status = SD_ReadMultiBlocks( sector << 9, ( u32 *)(&buff[0]), SECTOR_SIZE, count ); } else { Status = SD_ReadBlock( sector << 9, ( u32 *)(&buff[0]), SECTOR_SIZE ); } if (Status == SD_OK) { return RES_OK; } else { return RES_ERROR; } }[/mw_shl_code]

3、写代码
[mw_shl_code=c,true]DRESULT disk_write ( BYTE drv, /* Physical drive nmuber (0..) */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to write (1..255) */ ) { if ( count != 1 ) /* 1个sector的写操作 */ { SD_WriteMultiBlocks(sector << 9 ,( u32 *)(&buff[0]),SECTOR_SIZE,count); } else /* 多个sector的写操作 */ { SD_WriteBlock(sector << 9 ,( u32 *)(&buff[0]),SECTOR_SIZE); } return RES_OK; }[/mw_shl_code]

4、main函数代码
[mw_shl_code=c,true] //write function disk_initialize(0); f_mount(0, &fs);//挂载磁盘 f_opendir(&DirInf, "/");//打开目录 f_open(&fsrc,"Demo2.txt", FA_CREATE_ALWAYS | FA_WRITE);//打开 // f_lseek(&fsrc,fsrc.fsize); f_write(&fsrc, "1234567890", 10, &bw); /* 关闭文件*/ f_close(&fsrc); /* 卸载文件系统 */ f_mount(0, NULL);[/mw_shl_code] [mw_shl_code=c,true] Delay(0xfff); //read function disk_initialize(0); f_mount(0, &fs); f_opendir(&DirInf, "/"); f_open(&fsrc, "Demo2.txt", FA_OPEN_ALWAYS | FA_READ); f_read(&fsrc, &buf, sizeof(buf) - 1, &br); /* 关闭文件*/ f_close(&fsrc);[/mw_shl_code]
看了半天,怎么调都出不来。。。也没锁SD卡,也没设为只读,偏偏写不进去
不知道有人遇到和我相似的问题吗?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 13:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表