打印
[STM32F1]

【求助】STM32F107 HOST读写u盘枚举失败 USBH_BUSY

[复制链接]
8757|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
参考的是官网例程STM32_USB-Host-Device_Lib_V2.1.0->USB_Host_Examples->MSC

MCU:STM32F107VB
外部晶振:8MHz
使用串口:USART3

修改设置如下:

增加定义

修改时钟

目前问题是在主函数的USBH_Process(&USB_OTG_Core, &USB_Host);中无法枚举成功

  case HOST_ENUMERATION:     
    /* Check for enumeration status */  
    if ( USBH_HandleEnum(pdev , phost) == USBH_OK)
    {
      /* The function shall return USBH_OK when full enumeration is complete */
      
      /* user callback for end of device basic enumeration */
      phost->usr_cb->EnumerationDone();
      
      phost->gState  = HOST_USR_INPUT;   
    }
    break;
这个if进不了,一步步下推
  case ENUM_IDLE:  
    /* Get Device Desc for only 1st 8 bytes : To get EP0 MaxPacketSize */
    if ( USBH_Get_DevDesc(pdev , phost, 8) == USBH_OK)
    {
      phost->Control.ep0size = phost->device_prop.Dev_Desc.bMaxPacketSize;
      
      /* Issue Reset  */
      HCD_ResetPort(pdev);
      phost->EnumState = ENUM_GET_FULL_DEV_DESC;
      
      /* modify control channels configuration for MaxPacket size */
      USBH_Modify_Channel (pdev,
                           phost->Control.hc_num_out,
                           0,
                           0,
                           0,
                           phost->Control.ep0size);
      
      USBH_Modify_Channel (pdev,
                           phost->Control.hc_num_in,
                           0,
                           0,
                           0,
                           phost->Control.ep0size);      
    }
    break;
这个if进不了,一步步下推
USBH_Status USBH_Get_DevDesc(USB_OTG_CORE_HANDLE *pdev,
                             USBH_HOST *phost,
                             uint8_t length)
{
  
  USBH_Status status;
  
  if((status = USBH_GetDescriptor(pdev,
                                  phost,
                                  USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD,                          
                                  USB_DESC_DEVICE,
                                  pdev->host.Rx_Buffer,
                                  length)) == USBH_OK)
  {
    /* Commands successfully sent and Response Received */      
    USBH_ParseDevDesc(&phost->device_prop.Dev_Desc, pdev->host.Rx_Buffer, length);
  }
  return status;      
}
这个if进不了,status始终为1
typedef enum {
  USBH_OK   = 0,
  USBH_BUSY,
  USBH_FAIL,
  USBH_NOT_SUPPORTED,
  USBH_UNRECOVERED_ERROR,
  USBH_ERROR_SPEED_UNKNOWN,
  USBH_APPLY_DEINIT
}USBH_Status;
最终原因USBH_BUSY始终处于这状态。
实在找不到是什么原因导致的。
预定义STM32F10X_CL,USE_STM3210C_EVAL,USE_USB_OTG_FS在设置中都定义了
#if !defined  HSE_VALUE
#ifdef STM32F10X_CL   
//   #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
        #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
这块也将时钟改为8MHz了,请问还有哪可能有问题呀?




沙发
jack123465| | 2015-4-29 16:29 | 只看该作者
楼主这个问题解决了没有?是硬件上的问题么?

使用特权

评论回复
板凳
jack123465| | 2015-4-30 09:00 | 只看该作者
好帖子不能沉,楼主怎么解决的?

使用特权

评论回复
地板
snailmoving| | 2015-5-8 10:20 | 只看该作者
遇到同样的问题,楼主解决了吗

使用特权

评论回复
5
zwh751279833| | 2015-5-16 11:56 | 只看该作者

遇到同样的问题,楼主解决了吗

使用特权

评论回复
6
WLS871250WLS| | 2015-7-2 11:25 | 只看该作者
snailmoving 发表于 2015-5-8 10:20
遇到同样的问题,楼主解决了吗

遇到同样的问题,楼主解决了吗

使用特权

评论回复
7
WLS871250WLS| | 2015-7-2 11:25 | 只看该作者
zwh751279833 发表于 2015-5-16 11:56
遇到同样的问题,楼主解决了吗

遇到同样的问题,楼主解决了吗

使用特权

评论回复
8
WLS871250WLS| | 2015-7-2 11:26 | 只看该作者
jack123465 发表于 2015-4-29 16:29
楼主这个问题解决了没有?是硬件上的问题么?

遇到同样的问题,楼主解决了吗

使用特权

评论回复
9
snailmoving| | 2015-9-8 13:33 | 只看该作者
WLS871250WLS 发表于 2015-7-2 11:26
遇到同样的问题,楼主解决了吗

解决了,我用的8M晶振,晶振没有配置对。

使用特权

评论回复
10
wyl19880823| | 2015-9-24 10:13 | 只看该作者
我也遇到了这个问题,你们都是怎么解决的啊,wyl163163@163.com  qq:675345400,求指教!

使用特权

评论回复
11
shouyuxinyan| | 2015-10-19 15:33 | 只看该作者
我也遇到了这个问题,无法获取描述符,请问各位怎么解决的?麻烦发我个解决办法,QQ:921205463 小弟在此谢过了!!!

使用特权

评论回复
12
lessonarm| | 2016-1-12 16:32 | 只看该作者
我也碰到了同样的问题,楼主解决了吗?有遇到同样问题的吗?都是怎么解决的?

使用特权

评论回复
13
hyj071| | 2016-11-23 09:07 | 只看该作者
楼主,弱弱地问问,你的晶振怎么设置,我也是同样的问题啊

使用特权

评论回复
14
tt朝花夕拾| | 2017-2-9 13:36 | 只看该作者
楼主请问是枚举第一次的endpoint0 没有识别么?

使用特权

评论回复
15
琉璃海浪| | 2024-2-28 09:15 | 只看该作者
楼主解决了吗,别沉啊

使用特权

评论回复
16
狄克爱老虎油| | 2024-2-29 19:11 | 只看该作者
晶振配置问题吗

使用特权

评论回复
17
yangjiaxu| | 2024-2-29 21:58 | 只看该作者
枚举失败,可能是供电不足,可能是PA11还是PA12的1.5K电阻没有上拉,或者一些原因,其实需要逐一排查的

使用特权

评论回复
18
Henryko| | 2024-2-29 22:30 | 只看该作者
f1支持host模式吗

使用特权

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

本版积分规则

3

主题

25

帖子

0

粉丝