最近把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) ,说是底层驱动出错。
不知道这种打开目录下的文件的方法对不对,希望有做过类似实习的大侠们指点指点。
-------------------------------
不知道师兄是用什么文件系统的呢?
-------------------------------
把你disk I/O 层的那个.c文件贴上来看看,你移植的是哪个版本??006 or 008??
单步调试一下看看吧!!
一周热门 更多>