打印

急:stm32 u口键盘问题

[复制链接]
1188|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhl100|  楼主 | 2014-3-15 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题如下:
我用的https://bbs.21ic.com/icview-583006-1-1.html,香水发的例程,只用到DM和DP,没接vbus,将这里改了,去掉检测功能。
//  if (0 == state)  
//  {
    /* DISABLE is needed on output of the Power Switch */
    GPIO_SetBits(HOST_POWERSW_PORT, HOST_POWERSW_VBUS);
//  }
//  else
//  {
//    /*ENABLE the Power Switch by driving the Enable LOW */
//    GPIO_ResetBits(HOST_POWERSW_PORT, HOST_POWERSW_VBUS);
//  }

晶振用的24M,这里改了

#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */

插上usb键盘能识别,进入这个函数
    if (HCD_IsDeviceConnected(pdev))  
    {
      phost->gState = HOST_DEV_ATTACHED;
      USB_OTG_BSP_mDelay(100);
    }
    break;
之后顺序运行后到这里 ,进不去枚举这里。无论我怎么按键盘都进不去
/* 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;

之后这里也就更进不去了

  case HOST_USR_INPUT:   
    /*The function should return user response true to move to class state */
    if ( phost->usr_cb->UserInput() == USBH_USR_RESP_OK)
    {
      if((phost->class_cb->Init(pdev, phost))\
        == USBH_OK)
      {
        phost->gState  = HOST_CLASS_REQUEST;     
      }     
    }   
    break;


也就扫不到按键。。。

帮忙分析下,什么原因??还有哪里需要改的吗??

我用的stm32f2xx








相关帖子

沙发
zhl100|  楼主 | 2014-3-15 14:51 | 只看该作者
自己解决了,能扫到按键了:lol

使用特权

评论回复
板凳
zhl100|  楼主 | 2014-3-15 14:52 | 只看该作者
想问下,为啥三个键盘有俩能扫到,有一个扫不到,扫到的都是杂牌的,扫不到的是戴尔的,杂牌的做的好?

使用特权

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

本版积分规则

个人签名:三分天注定   七分靠打拼     爱拼才会赢

102

主题

787

帖子

2

粉丝