4500|16

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于USB设备的读写 [复制链接]

要读写USB设备的数据
m_hDevice= CreateFile(DevInterface.DevicePath(),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
已经获得句柄
WriteFile(m_hDevice,szWriteBuffer,dwWriteByte,&dwWriteLen,NULL);
用GetLastError报告错误1,功能错误,这是什么原因?
小弟我刚开始接触这些东西.有很多问题不懂,请各位大虾指点!

最新回复

搭车同问  详情 回复 发表于 2007-11-8 16:10
点赞 关注

回复
举报

55

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有人会吗?
我有急用,请各位大虾快帮帮忙!拜托各位了!!
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
兄弟,你要写的话,获取句柄的语句应该这样,m_hDevice= CreateFile(DevInterface.DevicePath(),GENERIC_WRITE |GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);再试试
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
刚才没看清楚,可能是设备名称不对,因为你用bulk传输,需要设置管道信息,请核实一下是否正确使用管道了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
蓝果大虾:
    麻烦你再说的具体一些,所谓的管道难道不是那个文件的句柄吗?
还有,就是USB设备读写时,要安装Driver那样应该怎么读写?是用DeviceIoControl 还是就ReadFile就可以了,谢谢了!请多指教!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
用DeviceIoControl 还是ReadFile都是一样得,只是同步和异步得区别,不管那个,都需要指出管道信息,得到得句柄未必就对啊,如果控制传输,就不需要管道,所以你要检查一下。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
大虾,能否给点源代码参考一下,或者具体讲解作法!谢谢了!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
很简单啊,将m_hDevice= CreateFile(DevInterface.DevicePath(),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL)中的DevInterface.DevicePath()改一下就可以了,比如,你设备的名字是Device1,读管道是0,写管道是1,那么,第一个参数就是"\\\\.\\device1\\pipe0"(读),"\\\\.\\device1\\pipe1"(写),其他的不要动,所以第一步是要知道设备名字,第二步是要知道管道号,别的就ok了.
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
呵呵,这个跟驱动的写法有关系啊.又明白一点点了,昨天刚看到这部份,谢谢,顶一下
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
很简单啊,将m_hDevice= CreateFile(DevInterface.DevicePath(),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL)中的DevInterface.DevicePath()改一下就可以了,比如,你设备的名字是Device1,读管道是0,写管道是1,那么,第一个参数就是"\\\\.\\device1\\pipe0"(读),"\\\\.\\device1\\pipe1"(写),其他的不要动,所以第一步是要知道设备名字,第二步是要知道管道号,别的就ok了.


我还想问一下楼主,设备是知道了,但是管道在驱动程序中需要处理吗?还只是在WIN32程序中处理.
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

11
 
很简单啊,将m_hDevice= CreateFile(DevInterface.DevicePath(),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL)中的DevInterface.DevicePath()改一下就可以了,比如,你设备的名字是Device1,读管道是0,写管道是1,那么,第一个参数就是"\\\\.\\device1\\pipe0"(读),"\\\\.\\device1\\pipe1"(写),其他的不要动,所以第一步是要知道设备名字,第二步是要知道管道号,别的就ok了.


我还想问一下楼主,设备是知道了,但是管道在驱动程序中需要处理吗?还只是在WIN32程序中处理.
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

12
 
可我怎么获得设备的名字,以及读写管道呢?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
你有名字或GUID啊,这个好多书上都讲了,翻翻书吧.
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
多謝各位支持。現在結貼了。再次謝過了!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

15
 
留名
方便以后查找
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

16
 
trace一下DevInterface.DevicePath(),看看是什么
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
搭车同问
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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