STM32F2 USB host 驱动HID扫描枪有问题

[复制链接]
5269|12
 楼主| cz1129 发表于 2013-8-13 10:05 | 显示全部楼层 |阅读模式
本帖最后由 cz1129 于 2013-8-13 10:29 编辑

问题描述:
USB host驱动 HID 扫描枪,插入扫描枪时枚举已经完成,进入 USBH_HID_Handle() 状态机内,一直在 HID_GET_DATA 状态和 HID_POLL 状态之间跳转。
扫描枪扫描数据时,有些扫描扫描枪的数据能够读到,而有扫描枪的数据读不到。

跟踪进入 USBH_InterruptReceiveData()函数
USBH_Status USBH_InterruptReceiveData( USB_OTG_CORE_HANDLE *pdev,
                                uint8_t *buff,
                                uint8_t length,
                                uint8_t hc_num)
{

  pdev->host.hc[hc_num].ep_is_in = 1;  
  pdev->host.hc[hc_num].xfer_buff = buff;
  pdev->host.hc[hc_num].xfer_len = length;
  


  if(pdev->host.hc[hc_num].toggle_in == 0)
  {
    pdev->host.hc[hc_num].data_pid = HC_PID_DATA0;//HC_PID_DATA0 /改成 HC_PID_DATA1,
  }
  else
  {
    pdev->host.hc[hc_num].data_pid = HC_PID_DATA1;//同时 HC_PID_DATA1 /改成 HC_PID_DATA0,就可以接收异常的数据,但原来的枪又不能用了
  }
   /* toggle DATA PID */
  pdev->host.hc[hc_num].toggle_in ^= 1;  
  
  HCD_SubmitRequest (pdev , hc_num);  
  
  return USBH_OK;
}
按注释中的修改后可以读出之前不能读的扫描枪的数据,而之前正常的扫描枪的数据又读不出了!!
求大神们帮着分析一下,谢谢!







 楼主| cz1129 发表于 2013-8-14 13:43 | 显示全部楼层
看来没有人用ST USB host 驱动HID扫描枪。
折腾好好久都没有解决这个问题,现在彻底放弃了,改用 keil 自带的USB 库,应用起来比这个方便多了
dun2012 发表于 2013-9-25 11:31 | 显示全部楼层
楼主,我也遇到跟你一样的问题,keil自带的库,能不能上传一份啊,先谢谢了。
 楼主| cz1129 发表于 2013-9-26 11:40 | 显示全部楼层
这是我测试的DEMO,你可以用来测试,具体应用你可以参照DEMO更改。

HID_Kbd.rar

931.42 KB, 下载次数: 191

评分

参与人数 1威望 +1 收起 理由
dun2012 + 1 赞一个!

查看全部评分

dun2012 发表于 2013-10-11 11:08 | 显示全部楼层
cz1129 发表于 2013-9-26 11:40
这是我测试的DEMO,你可以用来测试,具体应用你可以参照DEMO更改。

谢谢啊,我试试您的代码
dun2012 发表于 2013-10-15 09:48 | 显示全部楼层
本帖最后由 dun2012 于 2013-10-15 10:11 编辑
cz1129 发表于 2013-9-26 11:40
这是我测试的DEMO,你可以用来测试,具体应用你可以参照DEMO更改。

楼主,你好,我试了你的代码,发现我的USB键盘没有问题,可以通过 key = getkey (); 得到按键值,但是我的扫描枪没有反映, 就是 key = getkey (); 没有读到键值,您遇到过这样的问题了吗?
shimon 发表于 2013-10-24 20:30 | 显示全部楼层
两位大哥   你们可以把源码发给我一份吗?  我都摸索几天了,一点进展都没有啊!!!!
 楼主| cz1129 发表于 2013-10-28 01:35 | 显示全部楼层
dun2012 发表于 2013-10-15 09:48
楼主,你好,我试了你的代码,发现我的USB键盘没有问题,可以通过 key = getkey (); 得到按键值,但是我的 ...

键盘和扫描枪我都测试了的,而且我最终应用的是扫描枪,是没有问题的,你在多调试查一下。
 楼主| cz1129 发表于 2013-10-28 01:36 | 显示全部楼层
shimon 发表于 2013-10-24 20:30
两位大哥   你们可以把源码发给我一份吗?  我都摸索几天了,一点进展都没有啊!!!![em:9 ...

上面的是我上传的源码,你可以直接下来测试用。另外你也可以到MDK安装目录下去找DEM源码。
elclt188 发表于 2016-11-8 23:45 | 显示全部楼层
大神,为什么我下载不了的
elclt188 发表于 2016-11-10 23:11 | 显示全部楼层
楼主,这个问题解决了嘛,我也遇到了,可不可以给我个例程参考参考,感激不尽!1746286272@qq.com
johnzhang0921 发表于 2017-1-5 10:00 | 显示全部楼层
多谢分享,正好最近在研究这个下来试试。
zhanzr21 发表于 2017-1-5 18:32 | 显示全部楼层
这个不错, 不过建议你直接使用串口接口的扫码枪, 软件上面方便得多, 本人就是搞这个的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

18

帖子

1

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