完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题描述:
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; } 按注释中的修改后可以读出之前不能读的扫描枪的数据,而之前正常的扫描枪的数据又读不出了!! 求大神们帮着分析一下,谢谢! |
|
相关推荐
5个回答
|
|
USB里面处理的时候限制时间了,建议你准备的u***分析仪吧。
|
|
|
|
回复第 2 楼 于2013-11-30 17:40:20发表:
USB里面处理的时候限制时间了,建议你准备的u***分析仪吧。 朋友,你好,我现在终于买到USB分析仪了,您能具体说一下 “USB里面处理的时候限制时间了” 思路吗??先谢谢了 |
|
|
|
过去了快一年, 你终于买到了USB分析仪了 ...
|
|
|
|
楼主,这个问题解决了嘛?我遇到了一个问题是:键盘识别正常,u***2.0的扫码枪也正常,但是有好多款扫码枪枚举完了,一直不能读数据。您可以提供下例程嘛?
|
|
|
|
扫描枪直接选用串口接口的,在中断里处理接收到的字符串
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:05 , Processed in 0.570714 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号