OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4087|回复: 2

用407的FATFS例程,长文件名打印出来有问题,该怎么改?

[复制链接]

4

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
552
金钱
552
注册时间
2016-4-10
在线时间
100 小时
发表于 2016-7-29 13:54:38 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 rawgan 于 2016-7-29 13:56 编辑

这是我写的代码
QQ截图20160729134404.png
打印出来是这样子的
文件打印目录.png



目录下的文件是这下面这样:
QQ截图20160729135036.png

我是用F407的FATF例程进行移植的,
其中ffconf.h:
#define _CODE_PAGE        936        
#define        _USE_LFN        3        /* 0 to 3 */
#define        _MAX_LFN        255        

QQ截图20160729134844.png

这应该是只支持短文件名吧,该什么改才支持长文件名呢????


最佳答案

查看完整内容[请看2#楼]

参考了mf_readdir(),找到原因了dir是个全局变量,里面不需要在定义。改成如下就正常了 [mw_shl_code=c,true]FRESULT Scan_dir(const TCHAR *path_dir) { if(f_opendir(&dir,path_dir)==FR_OK)//′ò¿aí¨μà1Îļt¼D { #if _USE_LFN fileinfo.lfsize = _MAX_LFN * 2 + 1; fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize); #endif while(f_readdir(&dir,&fileinfo)==FR_ ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
552
金钱
552
注册时间
2016-4-10
在线时间
100 小时
 楼主| 发表于 2016-7-29 13:54:39 | 显示全部楼层
参考了mf_readdir(),找到原因了dir是个全局变量,里面不需要在定义。改成如下就正常了


[mw_shl_code=c,true]FRESULT Scan_dir(const TCHAR *path_dir)
{
        if(f_opendir(&dir,path_dir)==FR_OK)//′ò¿aí¨μà1Îļt¼D
        {
                #if _USE_LFN
                        fileinfo.lfsize = _MAX_LFN * 2 + 1;
                        fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);
                #endif
                while(f_readdir(&dir,&fileinfo)==FR_OK)//°′Ë3Dò¶áÎļt¼D
                {
                        if(!fileinfo.fname[0])
                                break;
                        if(fileinfo.fattrib==AM_ARC)
                                printf("ÎļtÃû£o%s\r\n",fileinfo.lfname);
                        printf("lfn_idx=%d\r\n",dir.lfn_idx);

                }
                myfree(SRAMIN,fileinfo.lfname);
                f_closedir(&dir);
        }
        printf("Ŀ¼¶áè¡\r\n");
        return 1;
}[/mw_shl_code]
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-7-29 20:37:08 | 显示全部楼层
我们例程默认就是支持长文件名的啊。。。直接测试,不要做任何修改。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 22:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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