OpenEdv-开源电子网

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

抱歉再开一帖,FatFs:f_readdir读取问题,内存申请是成功的

[复制链接]

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-7-8
在线时间
177 小时
发表于 2021-1-18 15:51:55 | 显示全部楼层 |阅读模式
50金钱
q4.png
内存申请、挂起、打开文件夹、打开指定路径的文件,都是返回0(正常)
我刚刚发了其他帖,但最终得到的答案,申请内存是成功的,不好意思,又开了这个帖

执行f_readdir,结果返回9(文件/目录对象无效)
我有使用长文件名,设定如下
q5.png

我比较怀疑的是长文件名这个方向,但是我目前没有思路解决这个问题,想请问一些经验
又或是,并不是我想的这个方向呢?
谢谢各位前辈了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-1-19 01:48:05 | 显示全部楼层
能打印目录里么?  先尝试全部改成英文短文件名试试,看能否正常读取目录里,可能是你的长文件名支持没做好啊
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2021-1-19 08:50:52 | 显示全部楼层
检查一下你的堆栈是不是设置太小了,改大点看看
回复

使用道具 举报

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-7-8
在线时间
177 小时
 楼主| 发表于 2021-1-19 10:29:06 | 显示全部楼层
正点原子 发表于 2021-1-19 01:48
能打印目录里么?  先尝试全部改成英文短文件名试试,看能否正常读取目录里,可能是你的长文件名支持没做好 ...

谢谢原子哥回复,我也在怀疑是长文件名没做好,测试时我的SD目录如下,都是短文件名 我的U盘结构.png

关于长文件名的支持,如我提问里的图2所示,我只设定了这几个地方
可能真是我有疏漏的地方,导致长文件名支持失败吧

#define _CODE_PAGE        437 // 选用437编码,顺便导入FatFs文件夹内,option里面的ccsbcs.c
#define        _USE_LFN        3 // 支持长文件:模式3,此模式就和内存申请有关了

添加ccsbcs.c,除了需要此编码以外,还因为里面有两个函数,ff_convert、ff_wtoupper
这两个函数,我并没有修改

我为支持长文件名做的就是这些,在网上查到的资料,大概也只有这些步骤,再麻烦原子哥了,谢谢
回复

使用道具 举报

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-7-8
在线时间
177 小时
 楼主| 发表于 2021-1-19 10:30:28 | 显示全部楼层
jiangyy 发表于 2021-1-19 08:50
检查一下你的堆栈是不是设置太小了,改大点看看

好的,我查一下,谢谢你的回复
回复

使用道具 举报

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-7-8
在线时间
177 小时
 楼主| 发表于 2021-1-19 10:32:49 | 显示全部楼层
jiangyy 发表于 2021-1-19 08:50
检查一下你的堆栈是不是设置太小了,改大点看看

堆栈是不是只有_USE_LFN设置为2的时候,才需要考虑呢?我设置为3,使用的是申请的内存?
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2021-1-19 11:48:35 | 显示全部楼层
seraph15 发表于 2021-1-19 10:32
堆栈是不是只有_USE_LFN设置为2的时候,才需要考虑呢?我设置为3,使用的是申请的内存?

MDK5软件  可以设置堆栈大小
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2021-1-19 11:50:23 | 显示全部楼层
seraph15 发表于 2021-1-19 10:32
堆栈是不是只有_USE_LFN设置为2的时候,才需要考虑呢?我设置为3,使用的是申请的内存?

http://www.openedv.com/forum.php ... d=317339&extra=

参照我的帖子,看看是否对你有帮助
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-15 01:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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