打印
[STM32F1]

STM32F105的USB_Host模式下驱动U 盘问题卡在USBH_MSC_GETMaxLUN->USBH_CtlReq

[复制链接]
3342|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jeffshuai|  楼主 | 2015-6-1 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
情况是这样的,用STM32F105作host驱动U盘,用的STM32的MSC库,前面都没有问题 Enumeration completed  > USBH_USR_UserInput OK.  (我只在原库基础上加了串口中断输出调试)
一直卡在USBH_MSC_Handle 里的USBH_MSC_GETMaxLUN 里的USBH_CtlReq等,卡在这了,谁知道是什么原因?如何解?
贴码如下:
USBH_Status USBH_CtlReq     (USB_OTG_CORE_HANDLE *pdev,
                             USBH_HOST           *phost,
                             uint8_t             *buff,
                             uint16_t            length)
{
  USBH_Status status;
  status = USBH_BUSY;
  
  switch (phost->RequestState)
  {
  case CMD_SEND:
    /* Start a SETUP transfer */
    USBH_SubmitSetupRequest(phost, buff, length);
    phost->RequestState = CMD_WAIT;
    status = USBH_BUSY;
    break;
   
  case CMD_WAIT:
     if (phost->Control.state == CTRL_COMPLETE )
    {
      /* Commands successfully sent and Response Received  */      
      phost->RequestState = CMD_SEND;
      phost->Control.state =CTRL_IDLE;  
      status = USBH_OK;      
    }
    else if  (phost->Control.state == CTRL_ERROR)
    {
      /* Failure Mode */
      phost->RequestState = CMD_SEND;
      status = USBH_FAIL;
    }   
     else if  (phost->Control.state == CTRL_STALLED )
    {
      /* Commands successfully sent and Response Received  */      
      phost->RequestState = CMD_SEND;
      status = USBH_NOT_SUPPORTED;
    }
    break;
   
  default:
    break;
  }
  return status;
}
沙发
mmuuss586| | 2015-6-1 12:22 | 只看该作者
USB不熟帮不了你;

楼主可以多看看USB2.0的相关资料;

使用特权

评论回复
板凳
jeffshuai|  楼主 | 2015-6-1 15:43 | 只看该作者
USB2.0 650页,我已看完了,但真正用还是差一些功力。谢谢你顶!
目前一直卡在case CMD_WAIT:这里轮询

使用特权

评论回复
地板
香水城| | 2015-6-4 12:11 | 只看该作者
如果LZ使用的是老的MSC Host库,就是STM32_USB-Host-Device_Lib_V2.1.0,它没有正确处理在主机发出命令,但是设备回复STALL的情况下,对stall应答的处理。

如何修改代码?本论坛置顶帖的《[信息] 【ST MCU实战经验汇总贴】(12月10日更新1篇实战经验)》有一篇实战经验:《OTG做主机的兼容性提高》中有详细描述。

使用特权

评论回复
5
jeffshuai|  楼主 | 2015-6-5 16:32 | 只看该作者
香水城 发表于 2015-6-4 12:11
如果LZ使用的是老的MSC Host库,就是STM32_USB-Host-Device_Lib_V2.1.0,它没有正确处理在主机发出命令,但 ...

是的,我就是在官网上下的STM32_USB-Host-Device_Lib_V2.1.0用的,可现在我看到了3.2.0版的了,不知道现在最新是哪版,谢谢

使用特权

评论回复
6
jeffshuai|  楼主 | 2015-6-5 16:53 | 只看该作者
jeffshuai 发表于 2015-6-5 16:32
是的,我就是在官网上下的STM32_USB-Host-Device_Lib_V2.1.0用的,可现在我看到了3.2.0版的了,不知道现 ...

有没有STM32 HOST驱动USB POS打印机这方面 的资料或实例呢?我司正在搞这方面的探索,正要这方面的技术

使用特权

评论回复
7
zh113214| | 2015-6-5 22:07 | 只看该作者
很少用这个,不是太清楚,帮你顶一下。

使用特权

评论回复
8
mojiaj| | 2015-9-18 23:46 | 只看该作者
楼主,这个问题解决了吗,我也遇到这样的问题了

使用特权

评论回复
9
lin34337151| | 2015-9-19 00:00 | 只看该作者
HID就用过,U盘没用过

使用特权

评论回复
10
rogerliu1104| | 2015-11-19 15:04 | 只看该作者
关注!

使用特权

评论回复
11
xiao王| | 2016-12-20 23:13 | 只看该作者
楼主问题解决了吗?

使用特权

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

本版积分规则

2

主题

12

帖子

0

粉丝