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

[复制链接]
9787|17
 楼主| 770781327ybx 发表于 2014-11-27 10:59 | 显示全部楼层 |阅读模式
参考的是官网例程STM32_USB-Host-Device_Lib_V2.1.0->USB_Host_Examples->MSC

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

修改设置如下:
1.png
增加定义
2.png
修改时钟

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

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




jack123465 发表于 2015-4-29 16:29 | 显示全部楼层
楼主这个问题解决了没有?是硬件上的问题么?
jack123465 发表于 2015-4-30 09:00 | 显示全部楼层
好帖子不能沉,楼主怎么解决的?
snailmoving 发表于 2015-5-8 10:20 | 显示全部楼层
遇到同样的问题,楼主解决了吗
zwh751279833 发表于 2015-5-16 11:56 | 显示全部楼层

遇到同样的问题,楼主解决了吗
WLS871250WLS 发表于 2015-7-2 11:25 | 显示全部楼层
snailmoving 发表于 2015-5-8 10:20
遇到同样的问题,楼主解决了吗

遇到同样的问题,楼主解决了吗
WLS871250WLS 发表于 2015-7-2 11:25 | 显示全部楼层
zwh751279833 发表于 2015-5-16 11:56
遇到同样的问题,楼主解决了吗

遇到同样的问题,楼主解决了吗
WLS871250WLS 发表于 2015-7-2 11:26 | 显示全部楼层
jack123465 发表于 2015-4-29 16:29
楼主这个问题解决了没有?是硬件上的问题么?

遇到同样的问题,楼主解决了吗
snailmoving 发表于 2015-9-8 13:33 | 显示全部楼层
WLS871250WLS 发表于 2015-7-2 11:26
遇到同样的问题,楼主解决了吗

解决了,我用的8M晶振,晶振没有配置对。
wyl19880823 发表于 2015-9-24 10:13 | 显示全部楼层
我也遇到了这个问题,你们都是怎么解决的啊,wyl163163@163.com  qq:675345400,求指教!
shouyuxinyan 发表于 2015-10-19 15:33 | 显示全部楼层
我也遇到了这个问题,无法获取描述符,请问各位怎么解决的?麻烦发我个解决办法,QQ:921205463 小弟在此谢过了!!!
lessonarm 发表于 2016-1-12 16:32 | 显示全部楼层
我也碰到了同样的问题,楼主解决了吗?有遇到同样问题的吗?都是怎么解决的?
hyj071 发表于 2016-11-23 09:07 | 显示全部楼层
楼主,弱弱地问问,你的晶振怎么设置,我也是同样的问题啊
tt朝花夕拾 发表于 2017-2-9 13:36 | 显示全部楼层
楼主请问是枚举第一次的endpoint0 没有识别么?
琉璃海浪 发表于 2024-2-28 09:15 | 显示全部楼层
楼主解决了吗,别沉啊
狄克爱老虎油 发表于 2024-2-29 19:11 | 显示全部楼层
晶振配置问题吗
yangjiaxu 发表于 2024-2-29 21:58 | 显示全部楼层
枚举失败,可能是供电不足,可能是PA11还是PA12的1.5K电阻没有上拉,或者一些原因,其实需要逐一排查的
Henryko 发表于 2024-2-29 22:30 | 显示全部楼层
f1支持host模式吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

25

帖子

0

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