STM32+SD卡+Fatfs 打开文件的问题

2019-10-16 02:33发布

 最近把FATFS移植到STM32+SD卡上。开始比较顺利,添加了下面的函数后,就基本可以用了
STATUS disk_initialize (BYTE);
DSTATUS disk_status (BYTE);
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
DRESULT disk_ioctl (BYTE, BYTE, void*);

用f_open();来打开根目录下的txt 文件正常:
f_mount(0, &fs);
 res=f_open(&fsrc,"0:/file1.txt",FA_OPEN_EXISTING|FA_READ);
 printf("res_open:%x ",res);
可以从串口把txt的文件内容打印出来。

但是当我想打开下一级文件夹里面的文件时,就出错了。代码如下:
f_mount(0, &fs);
 res=f_open(&fsrc,"0:/file1.txt",FA_OPEN_EXISTING|FA_READ);
 printf("res_open:%x ",res);

这时f_open();返回的错误是“1”(A hard error occured in the low level disk I/O layer) ,说是底层驱动出错。

不知道这种打开目录下的文件的方法对不对,希望有做过类似实习的大侠们指点指点。




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-10-16 02:56
还没用过.顶一下...
huijian
2楼-- · 2019-10-16 05:55
回复【2楼】正点原子:
-------------------------------
不知道师兄是用什么文件系统的呢?
正点原子
3楼-- · 2019-10-16 06:00
 精彩回答 2  元偷偷看……
张洋
4楼-- · 2019-10-16 10:42
回复【楼主位】huijian:
-------------------------------
把你disk I/O 层的那个.c文件贴上来看看,你移植的是哪个版本??006 or 008??
张洋
5楼-- · 2019-10-16 14:59
FR_DISK_ERR, /* (1) A hard error occured in the low level disk I/O layer */
单步调试一下看看吧!!
cybrian
6楼-- · 2019-10-16 18:36
最近在看了fatfs,学习中~~

一周热门 更多>