打印
[STM32F1]

USB_Host模式

[复制链接]
1413|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhany|  楼主 | 2022-11-12 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, os, 105, ma, ge, USB
STM32F105的USB_Host模式下驱动U 盘问题卡在USBH_MSC_GETMaxLUN->USBH_CtlReq

使用特权

评论回复
沙发
午夜粪车| | 2022-11-12 10:51 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
wuhany|  楼主 | 2022-11-12 10:53 | 只看该作者
情况是这样的,用STM32F105作host驱动U盘,用的STM32的MSC库,前面都没有问题 Enumeration completed  > USBH_USR_UserInput OK.  (我只在原库基础上加了串口中断输出调试)
一直卡在USBH_MSC_Handle 里的USBH_MSC_GETMaxLUN 里的USBH_CtlReq等,卡在这了,谁知道是什么原因?如何解?

使用特权

评论回复
地板
stly| | 2022-11-12 22:28 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
5
wuhany|  楼主 | 2022-11-12 22:30 | 只看该作者

贴码如下:
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;
}

使用特权

评论回复
6
zhanghqi| | 2022-11-12 22:32 | 只看该作者

USB不熟帮不了你;

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

使用特权

评论回复
7
wuhany|  楼主 | 2022-11-12 22:34 | 只看该作者

USB2.0 650页,我已看完了,但真正用还是差一些功力。谢谢你顶!
目前一直卡在case CMD_WAIT:这里轮询

使用特权

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

使用特权

评论回复
9
wuhany|  楼主 | 2022-11-12 22:38 | 只看该作者
有没有STM32 HOST驱动USB POS打印机这方面 的资料或实例呢?我司正在搞这方面的探索,正要这方面的技术

使用特权

评论回复
10
tian111| | 2022-11-12 22:42 | 只看该作者

楼主是说初始化都过不去吗

使用特权

评论回复
11
huangchui| | 2022-11-12 22:44 | 只看该作者
晶振起振了吗

使用特权

评论回复
12
lizye| | 2022-11-12 22:47 | 只看该作者
能识别吗还

使用特权

评论回复
13
zhaoxqi| | 2022-11-12 22:49 | 只看该作者
没弄过usb啊

使用特权

评论回复
14
llljh| | 2022-11-12 22:51 | 只看该作者
帮楼主顶一下

使用特权

评论回复
15
juventus9554| | 2022-11-12 22:57 | 只看该作者
没有遇到过这个问题啊

使用特权

评论回复
16
pengf| | 2022-11-12 22:59 | 只看该作者

供电稳定吗

使用特权

评论回复
17
Bowclad| | 2022-11-13 18:54 | 只看该作者
晶振起振了吗

使用特权

评论回复
18
Undshing| | 2022-11-14 20:23 | 只看该作者
没有正确处理在主机发出命令,但是设备回复STALL的情况下,对stall应答的处理

使用特权

评论回复
19
可怜的小弗朗士| | 2024-5-21 13:52 | 只看该作者
你换一个U盘,ST的库有的U盘挂载不了

使用特权

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

本版积分规则

879

主题

10435

帖子

4

粉丝