USB播放MP3,扫描歌曲的时候出错

2019-07-20 23:15发布

用原子哥的U盘HOST程序扫描曲目是没有任何问题的,关键是我把U盘的驱动那些加入到网络实现代码里面就出现这个问题了,对照了很多次,完全一模一样,所以现在很困惑,求助大神帮忙解决,万分感谢。
打开程序后首先出现:
USB OTG HS MSC Host
> USB Host library started.
  USB Host Library v2.1.0

检测到USB设备插入!
复位设备...
全速(FS)USB设备!
VID: 0951h
PID: 1624h
从机地址分配成功!
可移动存储器设备!
Manufacturer: Kingston
Product: DataTraveler G2
Serial Number: 0019E06B7103BA70700000BB
设备枚举完成!

跳过用户确认步骤!
开始执行用户程序!!!


这个是调试信息,说明U盘已经正确的识别了。
然后在调试工具里面输入mf_scan_files("2:")

调试打印出来的是:
mf_scan_files("2:")
path = 2:
res = 3


u8 mf_scan_files(u8 * path)
{
        FRESULT res;          
    char *fn;   /* This function is assuming non-Unicode cfg. */
#if _USE_LFN
        fileinfo.lfsize = _MAX_LFN * 2 + 1;
        fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);
#endif                  
                        printf("path = %s ",path);
    res = f_opendir(&dir,(const TCHAR*)path);
                printf("res = %d ",res);
    if (res == FR_OK)
        {       
                printf(" ");
                while(1)
                {
                res = f_readdir(&dir, &fileinfo);               
                if (res != FR_OK || fileinfo.fname[0] == 0) break;
                //if (fileinfo.fname[0] == '.') continue;           
#if _USE_LFN
                fn = *fileinfo.lfname ? fileinfo.lfname : fileinfo.fname;
#else                                                          
                fn = fileinfo.fname;
#endif                                                      /* It is a file. */
                        printf("%s/", path);
                        printf("%s ",  fn);
                }
    }          
        myfree(SRAMIN,fileinfo.lfname);
    return res;          
}


f_opendir的返回值是3,我查了错误,提示是
FR_NOT_READY //驱动器号无效。 路径是正确的,已经初始化好了,按照原子哥的写的。
求助,万分感谢,想开发一款U盘插入就能自动播放曲目的一个程序!

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