关于USB接口+SD卡的问题求助

2019-08-23 15:02发布

大家好!
我用STM32 103 的片子做一个测量小设备,因为需要存储测量的数据,所以用了SD 卡,并且用了FATFS文件系统,然后用USB接口读取数据到PC分析。
USB和SD的程序都是在官方给的程序上改的。

现在的问题是这样:
之前存数据到4G之后,USB连接后显示盘没有格式化,我搜索了一下,在论坛里找到了解决办法,是要修改文件系统和SD读写函数的参数类型,把 uint32_t 的 addr 参数改成 uint64_t  类型。这样就可以访问4G以上的地址了。
但是自从出了这个问题,我重新格式化SD卡之后,每次连接电脑USB就非常慢,需要至少17、8秒盘符才会出现,而以前基本都是秒出的。

我试了下U盘,都是好的,设备换在另外的电脑上也是很慢,这就说明是我这个设备出了问题。可是我程序除了那个参数类型外都没有改,为什么现在USB枚举过程(这个应该是枚举过程吧)这么长?我把参数改回去试过,也依然很慢,请教大家,这可能是什么原因?应该怎么追踪?

PS:我USB协议基本不懂,只了解一个大概过程。SD协议也不是很懂。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
xy228
2019-08-23 19:57
补充:
我看了一下变量,发现USB的 bDeviceState 随着插拔很快就会变化,但是有个SD transferEND 的标识会在这十几秒里 在零和一之间变化好多次,似乎是SD 在不停进行数据传输
,这个次数不一定,有时6、7次,有时10来次,这是什么情况?是不是说USB连接上之后,文件系统不停地通过USB接口来读取SD 卡的文件信息?

一周热门 更多>