求助USB HOST 挂载FATFS,一直FR_NO_FILE,急
我使用的是F435的USB HOST 例程,读取FAT32格式U盘文件夹里面的文件。现在能打开文件夹,并能扫描到目录内的文件,但是,所有的文件打开全是FR_NO_FILE。最开始个别能打开,但是读取的内容也不对。我堆栈设成0x1000,文件名的字符串我也与读目录扫描到的内容对比过,没有问题。扫描目录的时候,一旦文件过多,会死在这个中断里void usbh_irq_handler(otg_core_type *otgdev),求个大佬指点一下,卡住了res = f_mount(&fs, "", 0);
if(res == FR_OK)
{
USBH_DEBUG("fatfs success\r\n");
res=f_opendir(&dirs,"mp3");
if(res==FR_OK)
{
USBH_DEBUG("open folder ok\r\n");
while(f_readdir(&dirs,&filefif0)==FR_OK)
{
if(!filefif0.fname)
break;
else if(filefif0.fattrib==AM_ARC)
{
strncat(namestr,filefif0.fname,strlen(filefif0.fname));
printf("name=%s\r\n",filefif0.fname);
}
}
printf("name----=%s\r\n",namestr);
res=f_open(&file,readstr,FA_READ);
if(res==FR_OK)
{
USBH_DEBUG("open file ok\r\n");
res=f_read(&file,namereadstr,10,&br);
if(res==FR_OK)
{
printf("readstr=%s\r\n",namereadstr);
}
else
{
USBH_DEBUG("read file error\r\n");
printf("read file error=%d\r\n",res);
}
}
else
{
USBH_DEBUG("open file error\r\n");
printf("OPEN file error=%d\r\n",res);
}
}
else
{
USBH_DEBUG("open folder error\r\n");
printf("error=%d\r\n",res);
}
}
打印输出的内容
OPEN file error=4
收←◆usart printf test
收←◆This is a Full-Speed device
USB Device Attached
VID: 58fh
PID: 6387h
Set Address: 1
Manufacturer: Generic
Product: Mass Storage
Serial: F038EB76
Enumeration done
Support max lun 1
Device capacity: 4026531328 Byte
Block num: 7864319
Block size: 512 Byte
fatfs success
open folder ok
name=1.txt
name=2.txt
name----=1.txt2.txt
open file error
OPEN file error=4 代码里面的readstr的值是多少,另外代码里面一些调用open函数之后,要对应调用close tanmingjin 发表于 2024-2-5 14:13
代码里面的readstr的值是多少,另外代码里面一些调用open函数之后,要对应调用close ...
多谢{:handshake:},找到问题了。是文件读取有点问题,已经改好了。第一次用,不熟悉,上头了。
页:
[1]