打印
[STM32F2]

U盘的VID/PID读出问题

[复制链接]
1753|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seawwh|  楼主 | 2018-2-12 12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      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

   请各位专家给与指导,谢谢!
沙发
seawwh|  楼主 | 2018-2-13 21:46 | 只看该作者
   我使用了下面的代码读出设备描述符
    if ( USBH_Get_DevDesc(pdev , phost, 18) == USBH_OK)
  读出后发现返回数据长度只有8字节(返回 USBH_OK):
   12,01,10,01,00,00,00,40
   正确应该返回18个字节。
   比较奇怪的是,读出其它的描述符都是对的。


使用特权

评论回复
板凳
huangcunxiake| | 2018-2-14 15:51 | 只看该作者
能否写入?没试过单片机读取优盘,内存卡可以读

使用特权

评论回复
地板
seawwh|  楼主 | 2018-2-15 10:22 | 只看该作者
问题归纳一下:

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)

使用特权

评论回复
5
zhuotuzi| | 2018-2-19 16:52 | 只看该作者
PC驱动更全。

使用特权

评论回复
6
zhuotuzi| | 2018-2-19 16:52 | 只看该作者
PC驱动更全。

使用特权

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

本版积分规则

145

主题

368

帖子

0

粉丝