xiaorain
驱动牛犊
驱动牛犊
  • 注册日期2003-04-21
  • 最后登录2005-11-05
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1341回复:0

挂起的端点在resetpipe成功,再次读取数据时urb返回buffer_overrun

楼主#
更多 发布于:2004-11-15 20:51
usb主机的驱动向从设备读取数据,第一次读取完全正确,urb的状态值也是0;第二次读取的时候,urb的状态值是USBD_STATUS_ENDPOINT_HALTED,于是我进行了一次resetpipe,用来重设管道的urb的返回值是0,说明reset成功,然后我又重新发送了读urb,结果返回值变成了USBD_STATUS_BUFFER_OVERRUN,读回来的数据一直是第一次设备传送来的数据,而不管以后设备向主机发送的是什么,
为什么只有第一次才能正确读回来,而以后的都只能读回第一次的数据呢?
如果一次读取没有成功,是否应该在resetpipes后再重新读取设备发送的数据呢?如果不是的话,又改怎么作呢?
我看了bulkusb的代码。感觉不清楚。
游客

返回顶部