还是先去看一下usb的协议吧,如果你的OUT请求期望设备有回答,那么在你发出OUT之后IN也应该挂上,在linux下有类似于下面这样的系统调用:usb_control_msg(pd_device->udev,
usb_rcvctrlpipe(pd_device->udev, 0),
REQ_GET_CMD | cmdid,
USB_DIR_IN | USB_TYPE_VENDOR |USB_RECIP_DEVICE,
lower_16,
upper_16,
&data,
(dataLen + sizeof(*cmd_status)),
USB_CTRL_GET_TIMEOUT);
这种系统调用就是直接向设备发一个命令,然后将data的地址交给usb kernel,挂一个IN请求。 |