[USB接口] 如何让windows自动重新加载U盘?

[复制链接]
3142|8
 楼主| yfei_tech 发表于 2015-9-11 14:46 | 显示全部楼层 |阅读模式
采用U盘来传输数据,windows把数据写入U盘,U盘读取数据后把FAT表、目录表都清空。可是windows似乎缓存了U盘的FAT表、目录表等。虽然U盘已经把文件清空了,但是windows还是认为有文件。如果用winhex打开的话,U盘是没有数据的。我该如何让windows读到正确U盘情况呢?
 楼主| yfei_tech 发表于 2015-9-11 14:47 | 显示全部楼层
是否可以发一个命令让windows重新加载U盘的?
wellhao2004 发表于 2015-9-11 15:56 | 显示全部楼层
xiuwen89 发表于 2015-9-11 21:44 | 显示全部楼层
U盘收到Test Unit Ready命令时返回Failed,然后在后续的Test Unit Ready返回Passed就行了
 楼主| yfei_tech 发表于 2015-9-12 14:53 | 显示全部楼层
xiuwen89 发表于 2015-9-11 21:44
U盘收到Test Unit Ready命令时返回Failed,然后在后续的Test Unit Ready返回Passed就行了 ...

没用,test unit ready只是在第一次连接时候发,连接后无论怎么样都不会发这个命令。
xiuwen89 发表于 2015-9-12 21:05 | 显示全部楼层
yfei_tech 发表于 2015-9-12 14:53
没用,test unit ready只是在第一次连接时候发,连接后无论怎么样都不会发这个命令。 ...

媒体类型要设置成可移动的,主机会定时发送Test Unit Ready命令的。。。Windows是一秒查询一次
xiuwen89 发表于 2015-9-12 21:12 | 显示全部楼层


这是抓包截图。抓的是ST-LINK的USB通信,往ST-LINK的MSC中写入文件后,ST-LINK模拟磁盘被拔出后重新插入。Windows会重新装载磁盘。
Test Unit Ready返回Failed就是模拟磁盘被拔出了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| yfei_tech 发表于 2015-9-13 18:25 | 显示全部楼层
xiuwen89 发表于 2015-9-12 21:12
这是抓包截图。抓的是ST-LINK的USB通信,往ST-LINK的MSC中写入文件后,ST-LINK模拟磁盘被拔出后重新插入 ...

那是你的U盘,我的确实什么命令都没下来。
 楼主| yfei_tech 发表于 2015-9-13 18:26 | 显示全部楼层
xiuwen89 发表于 2015-9-12 21:12
这是抓包截图。抓的是ST-LINK的USB通信,往ST-LINK的MSC中写入文件后,ST-LINK模拟磁盘被拔出后重新插入 ...

你的关键在这句话:“ST-LINK模拟磁盘被拔出后重新插入”。
我的项目不允许这样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

131

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部