你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

USB Device + FatFS + SDIO 问题

[复制链接]
cntitan1982 提问时间:2018-8-6 10:37 /
又碰到了新的问题。

还是使用的是野火F429的开发板。现在想模拟一个U盘,通过USB Device接口,让PC直接读取开发板上SD卡的数据。

首先用一个SDIO + FatFS的工程,在SD卡里建立若干个文件,大小不定(从几十k到几百M)。

此时关电拔卡插入PC(PC自带读卡器),能正确识别到卡,打开后各个文件的大小和占用空间也都没问题。

此时把卡插回开发板,开发板程序烧写为USB Device + SDIO工程。PC上能正确识别到U盘,但是内容就有些问题了。第一是可用空间有偏差,显示已用空间为4个G,可所有文件加起来只有几百M。第二是文件个数少了很多,还出现了一个不存在的文件RrAA啥的。

我想问下这种情况是什么地方设置的不对吗?

先谢谢大家了。
收藏 评论10 发布时间:2018-8-6 10:37

举报

10个回答
maxtch 回答时间:2018-8-6 10:45:22
USB Device 模拟 U 盘的时候,你应该跳过 FATFS 直接让电脑访问到 SD 卡扇区。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

cntitan1982 回答时间:2018-8-6 12:09:04
maxtch 发表于 2018-8-6 10:45
USB Device 模拟 U 盘的时候,你应该跳过 FATFS 直接让电脑访问到 SD 卡扇区。

对的,就是这么处理的。

两个工程,USB的工程里没有FatFS相关文件。在usbd_storage_msd.c里面调用SDIO的接口函数。

另一个工程是SDIO + FatFS,把卡初始化成FatFS格式,并在里面建立一些文件。

现在USB能识别出来,卡容量也对,但是似乎一些格式参数识别有问题,文件个数不对,文件也打不开。是否PC通过USB无法识别FatFS?
huangyanga 回答时间:2018-8-6 13:23:19
之前遇到过SD卡读写时卡内出现乱码的问题,原因是文件系统读写时没有正确打开和关闭,楼主可从这方面查查看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

cntitan1982 回答时间:2018-8-6 14:24:41
huangyanga 发表于 2018-8-6 13:23
之前遇到过SD卡读写时卡内出现乱码的问题,原因是文件系统读写时没有正确打开和关闭,楼主可从这方面查查看 ...

感谢回答!

但我认为是这个问题的可能性不大。

因为USB工程并不包含FatFS的代码,USB只是透传,对文件系统的识别和操作是PC进行的(我的理解)。

而此时SD卡中的文件系统数据并未损坏,因为卡直接插PC里没有发现任何问题。
feixiang20 回答时间:2018-8-7 00:06:19
看看你 初始化的设置是否有问题,硬件连接是否有问题,确定反复准确么

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

maxtch 回答时间:2018-8-7 00:16:18
cntitan1982 发表于 2018-8-6 12:09
对的,就是这么处理的。

两个工程,USB的工程里没有FatFS相关文件。在usbd_storage_msd.c里面调用SDIO的 ...

有可能问题出在 FatFS 上。换一个版本试试,或者说尝试一下把 SD 卡镜像下来在电脑上用 FatFS 读取一下。如果说后者可以成功,说明你用的 FatFS 和电脑上的 FAT 驱动程序不兼容,但 FatFS 可以自己兼容。
tanic 回答时间:2018-8-7 10:35:54
本帖最后由 tanic 于 2018-8-7 10:40 编辑

CUBEMAX 直接生成  然后修改下  那个xxxxxx_if.c文件里的接口即可
内部ram 模拟U盘  U盘大小可设置 反正假的
链接:https://pan.baidu.com/s/1_PrhfoeXW2O4lSCFu4vSew 密码:0e7h

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

cntitan1982 回答时间:2018-8-14 16:14:29
感谢大家的回答!

问题最后解决了,把MSC_MEDIA_PACKET修改成512就好了。

这个常量应该是对应存储器的扇区大小,原本例程里的值是4096,对应spi Flash。
289466080 回答时间:2019-4-19 10:49:14
tanic 发表于 2018-8-7 10:35
CUBEMAX 直接生成  然后修改下  那个xxxxxx_if.c文件里的接口即可
内部ram 模拟U盘  U盘大小可设置 反 ...

可以把你的发我看看吗?
12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版