VC6.0 USB通讯发数据时两个端点会同时发,且发的有点不一样,并且通讯间隔小于50ms时,会卡死

csdn_abcd 2017-05-04 06:15:35
如图,VC6.0,用端点单步调试的,只执行了一次WriteFile函数就停止没继续往下执行,代码如下:
Result=WriteFile(port->usb_hWriteHandle,
m_nCurUsb_SendData.Usb_Data1,
UsbSend_Lenght,
NULL,
&port->usb_WriteOverlapped);
为什么会出两个out,并且两个out出的数据还就前面多了个00的字节,UsbSend_Lenght的值是0x41,但图中24.1发的是64,27发的却是65。另外就是将读数据时间缩短后,用bushound查看,通讯正常,但鼠标和键盘就不响应了,要怎么处理?
...全文
278 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2017-05-05
  • 打赏
  • 举报
回复
你这里的 24.1 和 24.2 分别是端点 1 (OUT)和端点 2(IN)。27 应该是上层设备。你到 Device 窗口中看看分别都是什么。 不是发了两次,而是显示了不同层次设备的通讯情况。 是 HID 设备吧?设备是否枚举时报告报表长度 64?上层的 65 是包含了报表 ID。

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧