历史上的今天
返回首页

历史上的今天

今天是:2025年02月01日(星期六)

2020年02月01日 | STM32Fatfs遍历文件(C语言实现)

2020-02-01 来源:eefocus

两种方法二选一: 

//遍历文件

//path:路径

//返回值:执行结果

u8 mf_scan_files(u8 * path)

{

    FRESULT res;

    char *fn;   /* This function is assuming non-Unicode cfg. */

  char *p; 

#if _USE_LFN

    fileinfo.lfsize = _MAX_LFN * 2 + 1;

    fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);

#endif

 

    res = f_opendir(&DirInfo,(const XCHAR*)path); //打开一个目录

    if (res == FR_OK)

    {

        printf("rn");

        while(1)

        {

            res = f_readdir(&DirInfo, &FilInfo);                   //读取目录下的一个文件

            if (res != FR_OK || FilInfo.fname[0] == 0) break;  //错误了/到末尾了,退出

 

#if _USE_LFN

            fn = *fileinfo.lfname ? fileinfo.lfname : fileinfo.fname;

#else

             fn = FilInfo.fname;   

#endif                                               /* It is a file. */

             p=strstr(fn,"bin");

      if(p!=NULL)

{

File_Name=fn;

break;

}

        }

    }

    return res;

}

 

/*------------------------------------------------------

 读取指定目录下所有的文件

 说明:

  f_readdir    按顺序读取目录内文件,

 重复调用此函数可读取目录内所有文件;

---------------------------------------------------------*/

void FatReadDirTest(s8 *path)

{

// FRESULT res; /* FatFs 函数通用结果代码 */

#if _USE_LFN//如果使能支持长文件名 先对下面两项初始化

    fileinfo.lfsize=_MAX_LFN * 2 + 1;//

    fileinfo.lfname=(TCHAR*)FileName;//

#endif

    if(f_opendir(&DirInfo,(const XCHAR*)path) == FR_OK)/* 打开文件夹目录成功,目录信息已经在dir结构体中保存 */

    {

        while(f_readdir(&DirInfo, &FilInfo) == FR_OK)  /* 读文件信息到文件状态结构体中 */

        {

            if(!FilInfo.fname[0]) break; /* 如果文件名为‘',说明读取完成结束 */

            printf("%s/",path);//打印路径

#if _USE_LFN

            printf("文件名:%srn",fileinfo.lfname );//打印信息到串口

#else

            printf("文件名:%srn", FilInfo.fname);//

#endif

        }

    }

}

推荐阅读

史海拾趣

ARMKEIL Microcontroller Tools公司的发展小趣事

随着技术的不断进步和市场的不断扩大,ARMKEIL Microcontroller Tools公司开始实施全球化战略。公司不仅在欧洲和美国设立了研发中心和销售网络,还积极开拓亚洲市场,与多个国家和地区的合作伙伴建立了紧密的合作关系。通过全球化布局和市场拓展,ARMKEIL Microcontroller Tools公司的业务范围不断扩大,品牌影响力也逐渐提升。

这五个故事只是ARMKEIL Microcontroller Tools公司发展过程中的一部分。实际上,该公司的成长历程充满了无数的挑战和机遇。正是凭借着对技术的不断追求和对市场的敏锐洞察,ARMKEIL Microcontroller Tools公司才能在激烈的竞争中脱颖而出,成为嵌入式系统开发工具领域的佼佼者。

方向电子公司的发展小趣事

随着技术的不断进步和市场的不断扩大,ARMKEIL Microcontroller Tools公司开始实施全球化战略。公司不仅在欧洲和美国设立了研发中心和销售网络,还积极开拓亚洲市场,与多个国家和地区的合作伙伴建立了紧密的合作关系。通过全球化布局和市场拓展,ARMKEIL Microcontroller Tools公司的业务范围不断扩大,品牌影响力也逐渐提升。

这五个故事只是ARMKEIL Microcontroller Tools公司发展过程中的一部分。实际上,该公司的成长历程充满了无数的挑战和机遇。正是凭借着对技术的不断追求和对市场的敏锐洞察,ARMKEIL Microcontroller Tools公司才能在激烈的竞争中脱颖而出,成为嵌入式系统开发工具领域的佼佼者。

EDAL公司的发展小趣事

随着技术的不断进步和市场的变化,EDAL公司意识到必须不断优化产品以满足客户的需求。公司投入大量研发资源,对EDA工具进行迭代升级,推出了更加智能化、用户友好的产品。同时,EDAL公司积极拓展市场,与全球各大芯片设计公司建立了合作关系,将产品销售到世界各地。

ATM [Advanced Technical Materials]公司的发展小趣事

在20世纪初期,电子技术和机械自动化的发展为ATM的出现奠定了基础。1939年,美国的Luther Simjian提出了ATM的设计雏形,并成功说服一家公司制作了样板试验产品。然而,由于当时的技术限制和公众接受度不高,这些早期ATM并未得到广泛应用。

Festo公司的发展小趣事

作为一家以创新驱动的公司,Festo始终将创新作为公司发展的核心动力。近年来,Festo在研发领域的投资不断增加,推出了一系列具有颠覆性的新产品和解决方案。同时,Festo还积极响应全球可持续发展的趋势,致力于减少碳排放和提高能源效率。通过引入先进的能效措施和扩大光伏(PV)的使用,Festo成功实现了碳中和的目标,为电子行业的可持续发展做出了积极的贡献。

Antex公司的发展小趣事

近年来,Antex公司不断升级产品,推出了包括Antex滚珠轴承、Antex齿轮环等在内的多款高端产品。这些产品以其卓越的性能和稳定的品质,赢得了全球客户的青睐。凭借这些优秀产品,Antex在大型回转轴承市场中的份额逐渐提升,目前已占据全球约40%的市场份额。

问答坊 | AI 解惑

MSP430的CPU时钟频率????

急!!!! MSP430的CPU时钟频率是多少啊???? 各路英雄帮帮忙查查...在此先谢谢大家了!!!!…

查看全部问答>

求教 如何用pb远程启动exe

我的bsp里面没有鼠标键盘驱动和kitl支持,有什么办法在开机后能够执行指定exe文件呢? 试过了在注册表添加\"Launch80\"=\"app1.exe\",结果程序没有启动,被难住了,各位有啥好的解决办法?…

查看全部问答>

platform builder 5.0与win7兼容吗?

我想在win7上装platform builder 5.0,请问它能在win7下正常运行吗?…

查看全部问答>

wince 5.0 之最小系统裁剪

目前系统已经能够正常挂载和失败BINFS分区,当BINFS分区中只有一个文件时(比如放置NORFLASH驱动),系统能够启动且正确加载NORFLASH驱动。下面是启动日志 Booting kernel with clean memory configuration: Memory Sections: [0] : start: 8e78 ...…

查看全部问答>

求教Mipsel USB功能控制器模拟PL2303串口芯片的问题

问题如题: 现象如下: USB 功能控制器有数据发出, 但主机串口助手无法接收到数据, 也就是说PL2303的驱动层在进行转换时不能完成这个功能, 收发的PIPE与PL2303一至, 配置也基本一致。 以下是模拟芯片与PL2303芯片的实际捕获的数据。 …

查看全部问答>

大家好,请教一下,有关TMS320DM355ZCE (216MHZ )不技持三星的NAND 2G FLASH,K9GAG08UOM(linux下的开发)的技术支

大家好,请教一下,有关TMS320DM355ZCE (216MHZ )不技持三星的NAND 2G FLASH,K9GAG08UOM(linux下的开发)的技术支持请求!--急!! 有任何可以直接答复或可以介绍高手帮助处理这个问题的朋友请救助一下,本人将不胜感激!谢谢!我的联系邮址为5 ...…

查看全部问答>

unresolved external symbol问题

WinCE5.0 我在init.c里用了一个外部全局变量(在bootpart.cpp里定义过) extern DWORD g_dwLastWrittenLoc 并在函数里使用这个变量 然后build oal这个project,没有问题 并且生成了oal.lib 但是我再build kern这个project,却出现错误 oal.lib ...…

查看全部问答>

STM32 不知算不算是个BUG

当将外部总线FSMC_DataSetupTime = 0 时,程序(哦,不是,应该是芯片)蹦溃,仿真器能找到内核,但无法擦除和下载程序。(程序蹦溃是正常的,但无法再次下载程序和擦除,这就有点搞怪了~~) 解决办法,将BOOT0拉高,进入BOOT模式,擦除下载 ...…

查看全部问答>

ADI的样片申请方法好象变了

1、 使用免费邮箱还是不行! …

查看全部问答>