libusb开发包中的接口使用问题

weigl_2008 2008-04-24 11:59:32
最近小弟在准备在linux下用libusb开发包写一个用户空间的mass storage驱动程序。在网上也找了许多例子,但是用起来都有问题,一时也找不到解决办法,在此请教各位大侠,望不吝指教:
进行bulk传输时,调用接口usb_bulk_write 总是出现问题,返回错误码有时是-2,有时是-16,这些错误码不知道代表什么意思。代码如下:

int main()
{
struct usb_bus *busses, *bus;
device_handle *handle = NULL;
int c, i, a;

usb_init();
usb_find_busses();
usb_find_devices();

busses = usb_get_busses();

for (bus = busses; bus; bus = bus->next) {
struct usb_device *dev;

for (dev = bus->devices; dev; dev = dev->next) {

/* 找到我想要操作的设备 */
if ( dev->idVendor == 0x0204 && dev->idProduct == 0x6025 ){

/*这里我发送的是一个包含INQURY命令的cbw数据包,事实上,可以使用usb_bulk_write接口发送任何的数据至设备*/
c = usb_bulk_write(handle, 0x01, cbw, sizeof(cbw), 1000);
if ( c < 0 ) {

/* 向设备发送数据失败 */
printf("bulk write error. errorcode(%d)\n", c);
return 1;
}
}
}
}

return 0;
}
请问:
1.在调用usb_bulk_write接口之前所做的准备工作就这些吗?是不是需要其他的初始化动作,比如调用usb_set_configuration重新配置设备,等等?
2.我调用usb_bulk_write接口的方法是否正确?
3.现在的情况是,按照这种方式,我试了好几个接口,usb_set_configuration,usb_set_altinterface ,usb_resetep,usb_claim_interface接口都不好用,总是报错。我想应该是我在调用这些接口之前少做了些动作,但是具体原因不太清楚。
多谢各位大侠多多指教,小弟感激不尽啊。
...全文
708 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
renjiajin 2009-09-16
  • 打赏
  • 举报
回复
少了操作了,加上usb_open,和usb_claim_interface,试试。祝好运。
rainbowwyl 2009-06-03
  • 打赏
  • 举报
回复
libusb里面 有现成的例程
cv_china 2009-05-26
  • 打赏
  • 举报
回复
顶上去,我也有此疑问
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
接分是王道!

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧