打印
[STM32F2]

VID/PID读出问题

[复制链接]
1104|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenfen|  楼主 | 2021-8-8 23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pid, vi, U盘, USB, ST, CD
U盘的VID/PID读出问题

1. 平台 STM32F205 使用HS USB端口 Full Speed,采用ST的OTG库函数(v2.2);
2. 应用软件功能: F205做为HOST读取U盘信息。
3. 发现问题:
   应用软件能够正常使用访问U盘,但是最近碰到一个U盘,不能正确读出其18字节的描述符。
   但是这个U盘在PC机下面又可以正常读出18字节的描述符。

   Debug跟踪了一下,仅可读出设备描述符的前8个字节,而且版本为 bcdUSB:0110
   可是在PC机上看到的 bcdUSB:0200

使用特权

评论回复
沙发
zwll| | 2021-8-8 23:12 | 只看该作者
还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
wenfen|  楼主 | 2021-8-8 23:14 | 只看该作者
我使用了下面的代码读出设备描述符
    if ( USBH_Get_DevDesc(pdev , phost, 18) == USBH_OK)
  读出后发现返回数据长度只有8字节(返回 USBH_OK):
   12,01,10,01,00,00,00,40
   正确应该返回18个字节。
   比较奇怪的是,读出其它的描述符都是对的。

使用特权

评论回复
地板
pangb| | 2021-8-8 23:16 | 只看该作者
能否写入?没试过单片机读取优盘,内存卡可以读

使用特权

评论回复
5
wenfen|  楼主 | 2021-8-8 23:21 | 只看该作者
问题归纳一下:

1. 有两个版本的类似于U盘的USB设备,一个是A版本,另一个是B版本;
2. 这两个U盘PC机均可枚举,并且两者具有相同的设备描述符;
3. F205作为Host,可以枚举A版本的全部描述符,但是B版本不能读出正确的设备描述符,(12,01,10,01,00,00,00,40 仅有8字节),其他的描述符可以正确读出。
4. 使用 Bus Hound 观察发现,两者有下列区别:

   A版使用的3个端点  0,1,1  (控制,Out, In)
   B版使用的3个端点  0,4,4  (控制,Out, In)

使用特权

评论回复
6
zwll| | 2021-8-8 23:23 | 只看该作者
PC驱动更全。

使用特权

评论回复
7
renyaq| | 2021-8-8 23:24 | 只看该作者
U盘的问题总是很奇怪

使用特权

评论回复
8
supernan| | 2021-8-8 23:26 | 只看该作者
我这方面的知识太少了

使用特权

评论回复
9
ousj| | 2021-8-8 23:29 | 只看该作者
驱动不匹配?

使用特权

评论回复
10
wenfen|  楼主 | 2021-8-8 23:32 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝