jiuxian_chu
驱动牛犊
驱动牛犊
  • 注册日期2010-07-09
  • 最后登录2010-07-13
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4538回复:0

请教关于libusb问题

楼主#
更多 发布于:2010-07-09 20:53
hi,大家好。
我最近在学习libusb,想用libusb_bulk_transfer()试一下u盘是否工作正常。
调用的过程是
过程是libusb_init()->libusb_open_device_with_vid_pid()->l
ibusb_claim_interface()->libusb_set_interface_alt_setting()
->libusb_bulk_transfer->libusb_release_interface->libusb_exit..
我想这个过程应该是没有问题的。
但是我不太确定libusb_claim_interface(libusb_device_handle *dev,
int interface_number)
第二个参数应该填什么,如果我填1或者2或者3,就会失败。
填0的时候才可以。
对于libusb_set_interface_alt_setting(libusb_device_handle *dev,
int interface_number, int alternate_setting)
遇到的问题是一样的,后两个参数都填的是0.

这样的话,在传输时会失败。打印信息如下。
libusb:debug [libusb_claim_interface] interface 0
libusb:debug [libusb_set_interface_alt_setting] interface 0 altsetting 0
libusb:debug [submit_bulk_transfer] need 1 urbs for new transfer with length 1024
libusb:debug [libusb_submit_transfer] arm timerfd for timeout in 1000ms (first in line)
libusb:debug [handle_events] poll() 3 fds with timeout in 60000ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [reap_for_handle] urb type=3 status=-32 transferred=0
libusb:debug [handle_bulk_completion] handling completion status -32 of bulk urb 1/1
libusb:debug [handle_bulk_completion] detected endpoint stall
libusb:debug [disarm_timerfd]
libusb:debug [bulk_transfer_cb] actual_length=0
do_write: failed to send data
main: test failed

另外如果不把usb_storage 模块卸载掉的话,claim_interface 都不会成功。

我也不确认需要几个接口,只想简单的试一下。。

请高手帮忙指点一下。
游客

返回顶部