打开U盘文件,返回错误FR_NOT_READY

2019-07-20 01:39发布

本帖最后由 jshzp 于 2019-5-27 17:08 编辑

阿波罗开发板,F429芯片,跑原子的U盘例程,一切正常。尝试用下列代码打开U盘中的文件aaa.bin

[mw_shl_code=c,true]FIL *fsrc;
u8 res;
res=f_mount(fs[3],"3:",1);
if(res==0)
     res=f_open(my_file,(const TCHAR*)"3:/aaa.bin",FA_READ);//打开文件[/mw_shl_code]
调试发现,运行函数f_open()后返回错误0x03,即FR_NOT_READY。进一步调试发现:是f_open()里面调用get_ldnumber()时返回的错误。应该怎么修改代码呢?谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jshzp
1楼-- · 2019-07-20 02:23
问题解决了,把ffconf.h里面的_MAX_LFN从原来的255改成100,f_open()就返回0了。
但是这是为什么呢?求高手们给一个合理的解释,谢谢!
Morgen
2楼-- · 2019-07-20 03:25
 精彩回答 2  元偷偷看……
jshzp
3楼-- · 2019-07-20 06:22
本帖最后由 jshzp 于 2019-5-27 17:09 编辑

感谢morgen的回复,
1、我在原子的例程上修改的,它的挂载是f_mont(fs[3],"3:",1),所以我用了“3:/aaa.bin”;
2、我在f_mount之后加了几秒钟延时,问题依旧;
3、U盘应该没问题,因为跑例程,串口打印可以看到aaa.bin文件。
jshzp
4楼-- · 2019-07-20 08:36
 精彩回答 2  元偷偷看……
Morgen
5楼-- · 2019-07-20 11:10
 精彩回答 2  元偷偷看……
jshzp
6楼-- · 2019-07-20 14:00
本帖最后由 jshzp 于 2019-5-27 16:35 编辑
Morgen 发表于 2019-5-27 15:50
跟我一样,不妨加个 FA_OPEN_EXISTING 试试,除此之外也不清楚啥问题了,
f_open(&File, "2:TEST.BIN",F ...

U盘属性在电脑上确认过,是FAT32

一周热门 更多>