关于fatfs文件系统打开文件的问题

2019-10-15 17:31发布

移植了0.12b板的fat,发现打开文件有问题,请打神们看看,如挂载sd卡 f_mount(&fs, "0:/", 1);后紧接着用下面四种情况打开失败
1、res=f_open(&fil, "0:/text.txt", FA_OPEN_ALWAYS|FA_READ);打开出错返回的是03,对照ff.h里FR_NOT_READY/* (3) The physical drive cannot work
2、res=f_open(&fil, "0:/text.txt", FA_OPEN_ALWAYS|FA_WRITE|FA_READ);打开出错返回的是03/
3、res=f_open(&fil, "0:/text.txt", FA_WRITE|FA_READ);打开出错返回的是03
4、单独res=f_open(&fil, "0:/text.txt", FA_READ)打开出错返回的是03
如果用下面的能正常打开
1、f_open(&fil, "0:/text.txt", FA_OPEN_ALWAYS);f_open(&fil, "0:/text.txt", FA_READ);f_open(&fil, "0:/text.txt", FA_WRITE);这样分开,打开正常都返回00;
2、res=f_open(&fil, "0:/text.txt", FA_OPEN_ALWAYS|FA_WRITE);res=f_open(&fil, "0:/text.txt", FA_READ)打开正常都返回00;
3、res=f_open(&fil, "0:/text.txt", FA_OPEN_ALWAYS);res=f_open(&fil, "0:/text.txt", FA_READ|FA_WRITE;)打开正常返回00


如果我text.txt用上诉能打开的方式打开过了
再接着关闭text.txt打开text2.txt。res=f_open(&fil, "0:/text2.txt", FA_OPEN_ALWAYS|FA_WRITE|FA_READ);是能正常打开的
单独res=f_open(&fil, "0:/text2.txt", FA_READ);也能打开


总结一下就是挂载SD卡后第一次(第一句)用能打开的语句打开后,后边的语句都能正常打开。
一脸懵逼,什么情况。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
pdwdzz
1楼-- · 2019-10-15 20:41
没人
pdwdzz
2楼-- · 2019-10-16 01:40
发现以能打开的方式打开文件后能正常读取文件,但是写不了,以写模式打开写数据
res=f_lseek(&fil,f_size(&fil)); //移动读写指针(移动到文件的结尾添加数据)
res=f_write (&fil, "15975325 ", sizeof("15975325 ")-1, &br);        //写入数据       
返回值都是00,但数据没写进去。。。。。
pdwdzz
3楼-- · 2019-10-16 06:58
创建文件是正常的,,。。。
pdwdzz
4楼-- · 2019-10-16 12:27
芯片是stm32f103c8t6,现在移植原子的mini版fat文件系统程序发现还是写不进去,能读,能创建,能删除,能遍历查找,就是不能写。。。。。

一周热门 更多>