[STM32F1] STM32F105/STM32F205 HOST读写u盘偶尔出现枚举失败

[复制链接]
2848|1
 楼主| WLS871250WLS 发表于 2015-7-4 09:02 | 显示全部楼层 |阅读模式
参考的是官网例程STM32_USB-Host-Device_Lib_V2.1.0->USB_Host_Examples->MSC
MCU:STM32F205VB
跟踪发现是USBH_Get_DevDesc(pdev , phost, 8) 函数一直返回USBH_BUSY,而且这种问题只是测试偶尔发生。
香水城 发表于 2015-7-23 17:36 | 显示全部楼层
是一个U盘上偶尔发生?还是多个U盘?

从协议栈的代码分析:Get_DevDesc,获取设备描述符就是请求开始一个控制传输,会进入USBH_CtlReq()。这里一来就把status = USBH_BUSY;然后发出控制命令。随后根据设备的回复,即根据phost->Control.state的值,跳进不同的分支,来给status附上新的值;
case CMD_WAIT:
  if (phost->Control.state == CTRL_COMPLETE )...
  else if (phost->Control.state == CTRL_ERROR)...
  else if (phost->Control.state == CTRL_STALLED)...

如果一直函数返回USBH_BUSY,很可能此时U盘没有任何返回,或者phost->Control.state是以上三个分支之外的值?需要调试才知道
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

1

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