ST USB host 驱动HID扫描枪有问题
问题描述: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.ep_is_in = 1;
pdev->host.hc.xfer_buff = buff;
pdev->host.hc.xfer_len = length;
if(pdev->host.hc.toggle_in == 0)
{
pdev->host.hc.data_pid = HC_PID_DATA0;//HC_PID_DATA0 /改成 HC_PID_DATA1,
}
else
{
pdev->host.hc.data_pid = HC_PID_DATA1;//同时 HC_PID_DATA1 /改成 HC_PID_DATA0,就可以接收异常的数据,但原来的枪又不能用了
}
/* toggle DATA PID */
pdev->host.hc.toggle_in ^= 1;
HCD_SubmitRequest (pdev , hc_num);
return USBH_OK;
}
按注释中的修改后可以读出之前不能读的扫描枪的数据,而之前正常的扫描枪的数据又读不出了!!
求大神们帮着分析一下,谢谢!
RE:ST USB host 驱动HID扫描枪有问题
USB里面处理的时候限制时间了,建议你准备的usb分析仪吧。回复:ST USB host 驱动HID扫描枪有问题
回复第 2 楼 于2013-11-30 17:40:20发表:USB里面处理的时候限制时间了,建议你准备的usb分析仪吧。:dizzy:
朋友,你好,我现在终于买到USB分析仪了,您能具体说一下 “USB里面处理的时候限制时间了” 思路吗??先谢谢了
:lol:lol:lol
过去了快一年, 你终于买到了USB分析仪了 ... 楼主,这个问题解决了嘛?我遇到了一个问题是:键盘识别正常,usb2.0的扫码枪也正常,但是有好多款扫码枪枚举完了,一直不能读数据。您可以提供下例程嘛? 扫描枪直接选用串口接口的,在中断里处理接收到的字符串
页:
[1]