打印
[STM32F4]

使用HAL库的USB HID插拔识别问题

[复制链接]
3460|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ticomi|  楼主 | 2014-6-23 12:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HID, USB, ST, CD, pc
我现在使用HAL的库做USB HID通讯,通讯上已经没有问题,现在遇到一个问题,当使用ST的芯片做Device时插到计算机上时ST无法识别到已经插入到计算机上,而拔除时时可以知道。

在库文件中的有下面两个中断函数;
/* Handle Connection event Interrupt */
    if(__HAL_GET_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT))
    {
      HAL_PCD_ConnectCallback(hpcd);
      __HAL_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT);
    }
   
    /* Handle Disconnection event Interrupt */
    if(__HAL_GET_FLAG(hpcd, USB_OTG_GINTSTS_OTGINT))
    {
      temp = hpcd->Instance->GOTGINT;
      
      if((temp & USB_OTG_GOTGINT_SEDET) == USB_OTG_GOTGINT_SEDET)
      {
        HAL_PCD_DisconnectCallback(hpcd);
      }
      hpcd->Instance->GOTGINT |= temp;
    }
拔除识别没有问题,但是插入识别只在已经连接在计算机上然后初始化ST中的USB部分才能识别,否则不识别,这样就不具有通用性,我想做的是只有在ST中初始化后,ST可以知道插入和拔除事件。

谢谢,求帮助!!非常感谢!!
沙发
rtgchym| | 2014-6-25 10:04 | 只看该作者
因为USB需要时钟,而这个时钟是在初始化部分配置,所以肯定得初始化USB部分后才会识别,插入事件还需要根据你的硬件电路,如果是设置了软连接的话还需要开启相应的三极管或场效应管开关

使用特权

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

本版积分规则

50

主题

852

帖子

4

粉丝