lzyuer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-05
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1319回复:5

用户自定义的请求为什么发不出去?

楼主#
更多 发布于:2004-12-14 22:15
    我在编软件的时候遇到一个奇怪的问题,不知道有没有人碰到过:就是主机发送用户自定义请求的命令到设备的时候为什么总发不出去?根据公司的例子用的是这个函数
bResult = DeviceIoControl (hDevice,
IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,
&myRequest,
sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),
buffer,
bufferSize,
(unsigned long *)&nBytes,
NULL);

这个命令行在cpress公司提供的例子程序里运行结果bResult=1,可是我把它移植到自己的程序中CreateFile()已经成功了,可是bResult=0,不知道怎么回事.
(我的myRequest是直接定义的:
myRequest.request = (BYTE)0xB3;
myRequest.value =(WORD)0x00;
myRequest.index =(WORD)0xBEEF;
bufferSize =16;
myRequest.direction=1;
myRequest.requestType=2;
myRequest.recepient=0;


谢谢!
shen_51000
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2006-05-14
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-15 08:35
你设备收到request的操作是什么
是向主机发16个数据?
有时nbytes和bufferSize不相等也会说失败的,但是其实已经有数据出来了。
蓝蓝的天空上有一朵白云……
lzyuer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-05
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-15 13:56
设备应该返回一个数据 (0xB3)
buffersize和nbytes好像没有冲突,刚试过,nbytes是指返回数的个数。
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-15 14:42
我认为对于你的主机来说命令应该发过去了(可以通过侦测总线数据
来确认),如果是这样的话,说明你的设备没有对他进行响应,最大的可能是不识别命令格式.分析一下固件吧.
新手上路,请多关照.
lzyuer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-05
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-15 20:28
  我用的固件是cpress公司提供的例子FX2_to_extsyncFIFO.hex,用contral panel 可以发送0xB3 的。
lzyuer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-05
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-15 20:49
刚用GetLastError()试了一下,提示说是参数不对,可是是哪个参数呢?
游客

返回顶部