遇到的问题描述:
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是指针变量?
------解决方案--------------------
有没有使用f_mount(0,&fs[0]);函数