阅读:1595回复:7
请教用户自定义命令的问题,多谢大家帮忙!!
我想在主机应用程序中控制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]的值是主机发过来的么?不知怎么用这个函数,请大家帮忙!!多谢 |
|
沙发#
发布于:2004-11-30 23:28
自己顶一下!大家帮忙啊
|
|
板凳#
发布于:2004-12-01 08:03
同标准请求一样
只是 BmRequestType = 0x40 或 0xc0 |
|
地板#
发布于:2004-12-01 16:01
大虾能不能说清楚些?我问了两个问题,谢谢!
|
|
地下室#
发布于:2004-12-03 08:10
大家看看啊!!
|
|
5楼#
发布于:2004-12-03 11:23
我想在主机应用程序中控制68013的寄存器 应用程序中 可以控制,是 控制面板上有一个Vendor的按钮,它的右边有一排框,在框里填上Vendor Request的内容你就可以在设备上收到该命令,可以仿真一下。 |
|
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 |
|
7楼#
发布于:2008-09-03 15:38
参数设置里要和寄存器里一致。
|
|
|