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 22:06
回复【楼主位】huijian:
-------------------------------
下一级为什么用“0:/file1.txt” ,记得不是这样的!
huijian
2楼-- · 2019-10-16 23:41
 精彩回答 2  元偷偷看……
ljmf5
3楼-- · 2019-10-17 04:25
huijian 发表于 2011-4-21 12:48
回复【5楼】张洋:
-------------------------------
谢谢关注!问题解决了,上面贴的代码复制粘贴的时候复 ...

您好,我也碰到打开文件返回FR_DISK_ERR的情况,SD卡格式化也不行,还有其它的办法吗
dazalei
4楼-- · 2019-10-17 07:26
反复开关开发板就能遇到这个问题 mark

一周热门 更多>