singbear
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2008-05-20
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1595回复:7

请教用户自定义命令的问题,多谢大家帮忙!!

楼主#
更多 发布于:2004-11-30 11:48
我想在主机应用程序中控制68013的寄存器 应用程序中

void Usb8051Hold(HWND hdlg)
{  

VENDOR_REQUEST_IN myRequest;

htestlist = GetDlgItem (hdlg, IDC_TEST_LIST);
GetDlgItemText (hdlg, IDC_DEVICE_NAME, DeviceName, MAX_DEVICE_NAME);
if (UsbOpenDriver (&hDevice, DeviceName) != TRUE) {
     MessageBox(hdlg, "无效设备,请重试!","错误",MB_ICONERROR);
Testing=FALSE;
return;
}
myRequest.bRequest = 0xA0;
    myRequest.wValue = 0xE600;
    myRequest.wIndex = 0x00;
    myRequest.wLength = 0x01;
    myRequest.bData = 1;
    myRequest.direction = 0x00;

bResult = DeviceIoControl (hDevice,
                           IOCTL_Ezusb_VENDOR_REQUEST,
                           &myRequest,
                           sizeof(VENDOR_REQUEST_IN),
                           NULL,
                           0,
                           &nBytes,
                           NULL);
  if (bResult!=TRUE)
  MessageBox(hdlg, "锁定8051失败!","错误",MB_ICONERROR);
    else {

想问问是不是通过改变寄存器地址就可访问所有的寄存器?

固件上有个
DR_VendorCmnd函数
switch(setupdat[1])
case  0xb0
  ...

这个用户自定义命令是不是也可以控制?setupdat[1]的值是主机发过来的么?不知怎么用这个函数,请大家帮忙!!多谢



singbear
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2008-05-20
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-30 23:28
自己顶一下!大家帮忙啊
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-12-01 08:03
同标准请求一样

只是 BmRequestType = 0x40 或 0xc0
singbear
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2008-05-20
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-01 16:01
大虾能不能说清楚些?我问了两个问题,谢谢!
singbear
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2008-05-20
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-03 08:10
大家看看啊!!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-03 11:23
我想在主机应用程序中控制68013的寄存器 应用程序中

固件上有个
DR_VendorCmnd函数
switch(setupdat[1])
case  0xb0
  ...

这个用户自定义命令是不是也可以控制?setupdat[1]的值是主机发过来的么?
 

可以控制,是
控制面板上有一个Vendor的按钮,它的右边有一排框,在框里填上Vendor Request的内容你就可以在设备上收到该命令,可以仿真一下。
singbear
驱动牛犊
驱动牛犊
  • 注册日期2004-10-12
  • 最后登录2008-05-20
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-03 14:30
终于有大虾了!谢!!!
那么我用下面的程序能不能访问所有的寄存器,是不是bRequest的值要设成别的?

myRequest.bRequest = 0xA0;
myRequest.wValue = 0xE600;
myRequest.wIndex = 0x00;
myRequest.wLength = 0x01;
myRequest.bData = 1;
myRequest.direction = 0x00;

bResult = DeviceIoControl (hDevice
jack_qi
驱动牛犊
驱动牛犊
  • 注册日期2008-07-15
  • 最后登录2008-11-25
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-09-03 15:38
参数设置里要和寄存器里一致。
交流是为了更好的学习
游客

返回顶部