最近把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) ,说是底层驱动出错。
不知道这种打开目录下的文件的方法对不对,希望有做过类似实习的大侠们指点指点。
-------------------------------
下一级为什么用“0:/file1.txt” ,记得不是这样的!
您好,我也碰到打开文件返回FR_DISK_ERR的情况,SD卡格式化也不行,还有其它的办法吗
一周热门 更多>