野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10417|回复: 1

STM32F103 SDIO模式下FatFs文件系统长名称配置分享

[复制链接]
发表于 2019-10-30 17:36:33 | 显示全部楼层 |阅读模式
平时经常来论坛找一些参考资料(其实是找现成的),这次也回报一下广大网友,这里是使用SDIO模式读取TF卡,还是SD卡?就是那种小卡就对了,
使用火哥的FatFs文件系统来做一个小的文件阅读器,但是两次都卡在了目录(长名称文件的测试)通过两天的测试还有大量的在网上查找资料,终于解决了长名称读取时候名称会被截断问题...
如下:
      短名称.png                
  只支持短名称情况( 没修改配之前的文件名)
    长名称.png
  支持长名称情况(修改配置后的文件名)

/***********************修改配置***********************/
ps:虽然有些文章说要改,有些文章没有不要改,我就统一表明好了...

1.修改启动文件(startup_stm32f10x_hd.s)中的EQU大小

我这里使用的是STM32F103RC  原本是  
Stack_Size      EQU     0x00000400
  将其修改为
  Stack_Size      EQU     0x00001000

启动文件.png

2.修改文件系统里的配置
(1).  #define _CODE_PAGE   936     选择简易中文
   简易中文.png
(2).  #define        _USE_LFN        2
       #define        _MAX_LFN        255        修改数据的存储方式以及长度
       存储方式.png

完成以上修改后,就可以进行测试了
在此我在网上找了一份测试代码,稍作修改
//需要提前挂载FatFs和SDIO


/*****************长文件测试函数**********************/
u8 scan_files(u8 * path)
{
        FILINFO tfileinfo;        //临时文件信息               
        DIR tdir;                         //临时目录
        FRESULT res;
       char buf[512] = {0};   
      char *fn;   
#if _USE_LFN
    tfileinfo.lfsize = _MAX_LFN * 2 + 1;
    tfileinfo.lfname = buf;
#endif        
    res = f_opendir(&tdir,(const TCHAR*)path);
    if (res == FR_OK)
    {   
        printf("\r\n");      
        while(1){           
            res = f_readdir(&tdir, &tfileinfo);               
            if (res != FR_OK || tfileinfo.fname[0] == 0) break;  
#if _USE_LFN
            fn = *tfileinfo.lfname ? tfileinfo.lfname : tfileinfo.fname;
#else                              
            fn = fileinfo.fname;
#endif              
            /* 输出目录及文件名 */
            printf("%s/", path);            
            printf("%s\r\n", fn);           
        }
  }   
    return res;   
}

/***************END******************/

硬件资源:STM32F103RCT6+SDIO+USART1
文末祝各位事业顺利,学业有成。

压缩工程双手奉上:[url=]SDIO—FatFs移植与读写测试 ...[/url]




SDIO—FatFs移植与读写测试.rar

5.55 MB, 下载次数: 43

回复

使用道具 举报

发表于 2019-10-31 08:48:43 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-30 23:30 , Processed in 0.029016 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表