dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1276回复:3

应用程序向USB发送数据的问题

楼主#
更多 发布于:2004-06-09 11:58
我的应用程序如下:
USHORT outbBuffer[512];
for (int i=0;i<512;ki++)
 outbuBuffer=i;
HANDLE handle=NULL;
BOOLEAN success;
ULONG nBytes=0;
SET_INTERFACE_IN interfaceIn;
BULK_TRANSFER_CONTROL bulkControl;
WORD outPacketSize,inPacketSize;  
 handle=CreateFile(".ezusb-0",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
    if (handle==INVALID_HANDLE_VALUE)
{return;
}
    interfaceIn.interfaceNum=0;
    interfaceIn.alternateSetting=1;
    success=DeviceIoControl(handle, IOCTL_Ezusb_SETINTERFACE,
&interfaceIn,
sizeof(SET_INTERFACE_IN),
NULL,
           0,
&nBytes,
NULL);
    if(success)
{
   AfxMessageBox("succeeding in setting interface",MB_OK);
}
    else
{
   CloseHandle(handle);
 return;
           }
bulkControl.pipeNum=0;  
outPacketSize=256;      
success=DeviceIoControl(handle,
IOCTL_EZUSB_BULK_WRITE,
&bulkControl,
sizeof(BULK_TRANSFER_CONTROL),
outBuffer,
outPacketSize*2,
&nBytes,
NULL);
    if(success)
{
   AfxMessageBox("succeeding in Writing",MB_OK);
}
    else
{
   CloseHandle(handle);
   return;
}

我的应用程序在运行后能打开interface,能弹出对话框"succeeding in Writing",但是用逻辑分析仪看,发现实际发下去的数据全部都为0,并不是实际outBuffer中的从1到511。
请大侠帮忙看一下,这个问题到底出在哪里?
先谢谢了!


 

[编辑 -  6/9/04 by  dingdang]

最新喜欢:

abei11abei11
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-09 15:00
怎么没人理呢 :o
自己顶一下
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-09 15:04
个人觉得你用DeviceIoControl() 的用法有点问题。
本来想看一下,发现是斜体的,头有点疼了:)

怎么没人理呢 :o
自己顶一下
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
worldwar
驱动牛犊
驱动牛犊
  • 注册日期2003-08-04
  • 最后登录2009-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-10 17:01
大致看了一下,至少有一下错误
第一:第三行初始化outbBuffer有误,因为你只初始化了数组中的第一个元素
第二:DeviceIoControl() 中输出缓冲区拼写有误
游客

返回顶部