打印

STM32F105 USB HOST枚举hub问题

[复制链接]
5237|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chdrobin|  楼主 | 2013-9-20 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用STM32F105同时操作USB鼠标+键盘。已经成功枚举了HUB,但是在切换到低速后,读取USB鼠标设备描述符时,只接收到8位,读取hctsiz寄存器,只有1个包数目。若不通过hub单独枚举鼠标,可以获取完18位设备描述符。望高人指教
沙发
chdrobin|  楼主 | 2013-9-22 10:29 | 只看该作者
没人回答,经过2天琢磨,终于搞掂了!!!

使用特权

评论回复
板凳
feilusia| | 2013-9-22 10:31 | 只看该作者
这块我没做过,LZ共享下问题所在吧。

使用特权

评论回复
地板
chdrobin|  楼主 | 2013-9-22 11:07 | 只看该作者
feilusia 发表于 2013-9-22 10:31
这块我没做过,LZ共享下问题所在吧。

因为低速设备包长是8字节,调用USBH_Modify_Channel函数 修改mps为8字节,speed为2(lowspeed)。

使用特权

评论回复
5
pmrplc| | 2013-10-3 23:15 | 只看该作者
能不能说一下具体的实现过程,或者共享代码呢

使用特权

评论回复
6
幻界绮梦| | 2014-3-29 18:46 | 只看该作者
求分享代码?
谁有的话,可发我邮箱:sushijian350@qq.com
我可以考虑购买

使用特权

评论回复
7
putron09| | 2014-5-21 10:34 | 只看该作者
顶,这个鼠标加键盘通过HUB给到105非常好

使用特权

评论回复
8
putron09| | 2014-5-22 14:59 | 只看该作者

使用特权

评论回复
9
freeman9507| | 2014-6-22 17:06 | 只看该作者
哥们给个信息,咨询USB相关问题,我的qq:13188123,谢谢呀!!!

使用特权

评论回复
10
学电子的小菜鸟| | 2015-11-25 16:16 | 只看该作者
亲,我看105官方的HID例程,找不到枚举的过程的代码,求指点

使用特权

评论回复
11
louisignal| | 2015-11-27 21:43 | 只看该作者
学电子的小菜鸟 发表于 2015-11-25 16:16
亲,我看105官方的HID例程,找不到枚举的过程的代码,求指点

void USBH_Process(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost)函数里面有这一段就是枚举:
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();
      bEnumDone = SET;

      phost->gState  = HOST_USR_INPUT;   
    }
    break;

使用特权

评论回复
12
louisignal| | 2015-11-27 21:46 | 只看该作者
官方DEMO里有这一段,修改管道的MPS的:改速度的自己想就知道了
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);      
    }

使用特权

评论回复
13
小小强112| | 2016-6-1 18:21 | 只看该作者
版主 能分享下代码吗
大家学学

使用特权

评论回复
14
tianyingkeji| | 2017-9-2 22:32 | 只看该作者
能否共享,QQ1187470326

使用特权

评论回复
15
huhaomcu| | 2019-2-18 10:38 | 只看该作者
请问楼主,为什么我的USB设备插到PC上后,提示设备无法启动,但是设备属性里相关的USB信息已经全部获得了,这是枚举不成功还是什么其他原因啊!!麻烦指导下

使用特权

评论回复
16
antoniofay| | 2020-4-9 09:03 | 只看该作者
本帖最后由 antoniofay 于 2020-4-11 15:52 编辑

你好,请问有做出来么

使用特权

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

本版积分规则

1

主题

4

帖子

1

粉丝