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

[复制链接]
5051|12
手机看帖
扫描二维码
随时随地手机跟帖
cz1129|  楼主 | 2013-8-13 11:27 | 显示全部楼层 |阅读模式
ST, USB, os, HID, HC
问题描述:
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:44 | 显示全部楼层

看来没有人用ST USB host 驱动HID扫描枪。
折腾好好久都没有解决这个问题,现在彻底放弃了,改用 keil 自带的USB 库,应用起来比这个方便多了

使用特权

评论回复
ailsalw| | 2013-8-23 22:28 | 显示全部楼层
可用笙泉MA805-32的芯片做扫描枪,带方案的,有技术支持。

使用特权

评论回复
dun2012| | 2013-10-14 11:04 | 显示全部楼层
我也在做 USB HOST  也发现这个问题了有的扫描枪好使,有的不好使,希望香版主能给ST 公司提交一下这个问题,修改一下USB HOST 源代码,解决掉这个debug。

使用特权

评论回复
dun2012| | 2013-10-14 11:21 | 显示全部楼层
cz1129 发表于 2013-8-14 13:44
看来没有人用ST USB host 驱动HID扫描枪。
折腾好好久都没有解决这个问题,现在彻底放弃了,改用 keil 自 ...

朋友,您的stm32 是F4 还是F2 啊,能把 你的keil自带的库上传一份可以吗,先谢了。

使用特权

评论回复
dun2012| | 2013-10-15 19:57 | 显示全部楼层
cz1129 发表于 2013-8-14 13:44
看来没有人用ST USB host 驱动HID扫描枪。
折腾好好久都没有解决这个问题,现在彻底放弃了,改用 keil 自 ...

我试了keil自带的库,发现我的USB键盘没有问题,可以通过 key = getkey (); 得到按键值,但是我的扫描枪没有反映, 就是 key = getkey (); 没有读到键值,您遇到过这样的问题了吗?

使用特权

评论回复
xyz19820925| | 2014-11-3 16:58 | 显示全部楼层
pdev->host.hc[hc_num].toggle_in这个值应该是由两部分组成的吧,一部分是令牌包,一部分是端点号吧。建议你查下不能用的扫描枪的端点号是否正确呢。

使用特权

评论回复
zbc888| | 2014-11-12 16:42 | 显示全部楼层
感谢楼主分享

使用特权

评论回复
bieke2001| | 2014-11-13 12:00 | 显示全部楼层
用瑞萨USB HOST IC UPD720201或UPD720202  13590454968 陈生

使用特权

评论回复
莫问1990| | 2017-2-21 16:03 | 显示全部楼层
我也在研究这个东西,想问下楼主哪些扫码枪是可以读取数据的,能推荐下吗?我想先买一个回来试试!

使用特权

评论回复
小凤凤| | 2017-4-15 09:53 | 显示全部楼层
我的是电脑直接蓝屏 了

使用特权

评论回复
东撒撒| | 2017-4-21 16:40 | 显示全部楼层
可以考虑下沁恒的CH559,做USB这块已经好多年了,比较稳定,都有例程的,开发也比较简单。

使用特权

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

本版积分规则

3

主题

18

帖子

1

粉丝