又碰到了新的问题。 还是使用的是野火F429的开发板。现在想模拟一个U盘,通过USB Device接口,让PC直接读取开发板上SD卡的数据。 首先用一个SDIO + FatFS的工程,在SD卡里建立若干个文件,大小不定(从几十k到几百M)。 此时关电拔卡插入PC(PC自带读卡器),能正确识别到卡,打开后各个文件的大小和占用空间也都没问题。 此时把卡插回开发板,开发板程序烧写为USB Device + SDIO工程。PC上能正确识别到U盘,但是内容就有些问题了。第一是可用空间有偏差,显示已用空间为4个G,可所有文件加起来只有几百M。第二是文件个数少了很多,还出现了一个不存在的文件RrAA啥的。 我想问下这种情况是什么地方设置的不对吗? 先谢谢大家了。 |
stm32 USB的CDC类传输掉数据
STM32F105 USB接收数据不断进入中断,出现“死机”现象
关于STM32CubeMX配置的USB例程电脑无法识别问题
STM32F407 USB-HS-OTG是否不外接PHY可以做虚拟串口?
如何做一个USB从机键盘用stm32f407
用STM32F4 Cube MX生成的USB Device C代码的BUG
USB Device + FatFS + SDIO 模拟U盘意外只读问题
STM32H7配置成USB DEVICE时,连接电脑时不进入中断
STM32F446 USB和串口1 冲突
USB HID 枚举过程出现stall pid是什么原因?
评分
查看全部评分
对的,就是这么处理的。
两个工程,USB的工程里没有FatFS相关文件。在usbd_storage_msd.c里面调用SDIO的接口函数。
另一个工程是SDIO + FatFS,把卡初始化成FatFS格式,并在里面建立一些文件。
现在USB能识别出来,卡容量也对,但是似乎一些格式参数识别有问题,文件个数不对,文件也打不开。是否PC通过USB无法识别FatFS?
评分
查看全部评分
感谢回答!
但我认为是这个问题的可能性不大。
因为USB工程并不包含FatFS的代码,USB只是透传,对文件系统的识别和操作是PC进行的(我的理解)。
而此时SD卡中的文件系统数据并未损坏,因为卡直接插PC里没有发现任何问题。
评分
查看全部评分
有可能问题出在 FatFS 上。换一个版本试试,或者说尝试一下把 SD 卡镜像下来在电脑上用 FatFS 读取一下。如果说后者可以成功,说明你用的 FatFS 和电脑上的 FAT 驱动程序不兼容,但 FatFS 可以自己兼容。
CUBEMAX 直接生成 然后修改下 那个xxxxxx_if.c文件里的接口即可
内部ram 模拟U盘 U盘大小可设置 反正假的
链接:https://pan.baidu.com/s/1_PrhfoeXW2O4lSCFu4vSew 密码:0e7h
评分
查看全部评分
问题最后解决了,把MSC_MEDIA_PACKET修改成512就好了。
这个常量应该是对应存储器的扇区大小,原本例程里的值是4096,对应spi Flash。
可以把你的发我看看吗?
百度云链接失效了
老哥这个工程可以再发一下吗? 这个过期了。感谢!!