3481|3

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

管道通讯问题 [复制链接]

各位我正在做一个驱动,使用readfile读数据时,偶尔会等待超时后就会一直不能读数据了,很少情况下出现.我现在是用URB_FUNCTION_ABORT_PIPE或URB_FUNCTION_RESET_PIPE来控制管道,一个是放弃管道的I/O,一个是进行管道复位,具体采用那一个,此种情况,大概是什么原因引起的

读其中的一段代码如下:WIN32的读操作.
      if(WaitForSingleObject(osReadOperation.hEvent,WaitTimeOut) != WAIT_OBJECT_0)
      {
                  //DeviceIoControlPipe(phDeviceHandle,5);//放弃管道I/O
                  DeviceIoControlPipe(phDeviceHandle,3);//管道复位
                  if(!CloseHandle(osReadOperation.hEvent))
                          CloseHandle(osReadOperation.hEvent);
                  return FALSE;
          }

最新回复

个人觉得是reset pipe,要清除pipe的halt/stall状态,pipe才能正常工作,允许更多的通信流量吧。发一个CLEAR_FEATURE,去复位bulk管道,其实就是把一个寄存器的状态从1改成0。  详情 回复 发表于 2008-8-25 18:40
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有高手来回答一下吗?
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
也碰到了同样的问题,期待您的答案...
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 
个人觉得是reset pipe,要清除pipe的halt/stall状态,pipe才能正常工作,允许更多的通信流量吧。发一个CLEAR_FEATURE,去复位bulk管道,其实就是把一个寄存器的状态从1改成0。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表