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) ,说是底层驱动出错。

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




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。