当前位置: 代码迷 >> 单片机 >> FatFs文件系统只能读不能写,该怎么处理
  详细解决方案

FatFs文件系统只能读不能写,该怎么处理

热度:99   发布时间:2016-04-28 14:57:34.0
FatFs文件系统只能读不能写
遇到的问题描述:
1、FatFs文件系统只能用f_read()函数,不能使用f_write()。并且f_write()的返回值为FR_DISK_ERR。
2、调用res = f_open(&fdst,"0:/0.txt",FA_CREATE_NEW | FA_WRITE);之后能在SD卡中创建一个文件,但是这个文件的大小为0 ,放在电脑中查看会弹出以下对话框。

3、在电脑上创建一个文件之后,输入一些内容在单片机中用
res = f_open(&fdst, "0:/0.txt", FA_OPEN_EXISTING | FA_READ); /* 打开文件 */
能够看到文件的内容。

ffconf.h配置文件的内容:
/*---------------------------------------------------------------------------/
/  FatFs - FAT file system module configuration file  R0.09a (C)ChaN, 2012
/----------------------------------------------------------------------------/
#ifndef _FFCONF
#define _FFCONF 4004 /* Revision ID */

#define _FS_TINY  0 /* 0:Normal or 1:Tiny */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */
#define _FS_MINIMIZE 3 /* 0 to 3 */

#define _USE_STRFUNC 1 /* 0:Disable or 1-2:Enable */
#define _USE_MKFS  1 /* 0:Disable or 1:Enable */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */

#define _USE_FASTSEEK 1 /* 0:Disable or 1:Enable */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */

#define _CODE_PAGE 936
#define _USE_LFN 0  /* 0 to 3 */
#define _MAX_LFN 255  /* Maximum LFN length to handle (12 to 255) */

#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */
#define _FS_RPATH  1 /* 0 to 2 */

#define _VOLUMES 1
#define _MAX_SS  512  /* 512, 1024, 2048 or 4096 */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1/2:Enable multiple partition */

#define _USE_ERASE 0 /* 0:Disable or 1:Enable */
#define _WORD_ACCESS 0 /* 0 or 1 */

#define _FS_REENTRANT 0  /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT  1000 /* Timeout period in unit of time ticks */
#define _SYNC_t  HANDLE
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */

#endif /* _FFCONFIG */

哪位能给解决一下?非常感谢。
我用到的SD卡:



------解决方案--------------------
看一下堆栈的设置

fdst是指针变量?
------解决方案--------------------
引用:
不是指针
fdst的定义:FIL fdst;

有没有使用f_mount(0,&fs[0]);函数