阅读:4549回复:0
请教关于libusb问题
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 都不会成功。 我也不确认需要几个接口,只想简单的试一下。。 请高手帮忙指点一下。 |
|