FatFs文件系统实验中,f_readdir读取文件目录时出现读取不到的问题

2019-07-20 00:41发布

我在测试f_readdir这个函数功能时,设计功能:读取当前目录下所有文件夹或者文件,并把文件名打印在LCD屏上。
当我采用如下代码时,屏幕上不会打印任何信息,该函数在main中被调用,且显示函数也在main中调用,这里通过定义了
FILINFO的全局结构体数组来保存这些文件信息,然后再main函数中打印这些信息。

但是当我把下面注释的LCD_ShowString函数不注释,然后main函数那边不显示信息,这样在屏幕上反而是可以打印出来信息的。

提问:是不是文件夹在关闭以后,这些和文件或者文件夹相关的FILINFO变量也被清除了。
FRESULT Scan_Files(const TCHAR* path)
{
    FRESULT result;
    DIR dir;
    FILINFO fileinfo;

    unsigned int num = 0;

    result = f_opendir(&dir,(const TCHAR*)path);          //打开文件夹
    if(result != FR_OK) return result;

    while(1)
    {
        result = f_readdir(&dir,&fileinfo);
        if (result != FR_OK || fileinfo.fname[0] == 0) break;       //出现错误或者到了结尾
        //是文件夹
        if (fileinfo.fattrib & AM_DIR)
        {                  
            ;
        }
        //是文件
        else
        {                                      
            ;
        }

        // LCD_ShowString(50,340+num*18,400,18,16,fileinfo.fname);
        num++;
    }
    f_closedir(&dir);               //关闭文件夹

    return result;
}


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