libusb1.0 Windows
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Всем привет.
Пытаюсь тут научиться работать с USB. Но что-то я не то делаю. libusb-1.0.20 (c SF брал).
Вот код:
#include <stdio.h> #include <libusb-1.0/libusb.h> int main(int argc, char *argv[]) { struct libusb_device **devs; struct libusb_device_descriptor info; unsigned count,i; int rv=0; if (libusb_init(NULL)<0) { printf("Can't open libusb\n"); return 1; } libusb_set_debug(NULL, libusb_log_level::LIBUSB_LOG_LEVEL_INFO); count=libusb_get_device_list(NULL,&devs); if (count<=0) { printf("Error enumerating devices\n"); return 2; } for (i=0;i<count;i++) { libusb_get_device_descriptor(devs[i],&info); printf("VID=%04x PID=%04x\n",info.idVendor,info.idProduct); if (info.idVendor==0x1915 && info.idProduct ==0x7777) { libusb_device_handle* hndl; libusb_open(devs[i], &hndl); if (hndl != NULL) { printf("Opened\n"); rv = libusb_set_configuration(hndl, 1); if (rv != LIBUSB_SUCCESS) printf("Error libusb_set_configuration: %s\n", libusb_strerror(libusb_error(rv))); else { rv = libusb_claim_interface(hndl, 0); if (rv != LIBUSB_SUCCESS) printf("Error libusb_claim_interface: %s\n", libusb_strerror(libusb_error(rv))); else { printf("Claimed\n"); libusb_release_interface(hndl, 0); } } libusb_close(hndl); } } } libusb_free_device_list(devs,1); libusb_exit(NULL); return rv; }
И при попытке установить конфигурацию получаю следующее:
libusb: error [winusbx_claim_interface] could not access interface 0: [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 1 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 2 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 3 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 4 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 5 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 6 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 7 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 8 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 9 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 10 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 11 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 12 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 13 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 14 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 15 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 16 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 17 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 18 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 19 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 20 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 21 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 22 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 23 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 24 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 25 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 26 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 27 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 28 with WinUSB): [87VID=1002 PID=4397 VID=1002 PID=4399 VID=1002 PID=4397 VID=1002 PID=4397 VID=1002 PID=4396 VID=1002 PID=4396 VID=1002 PID=4396 VID=1106 PID=3483 VID=046d PID=c03e VID=046d PID=c517 VID=0483 PID=5740 VID=05e3 PID=0608 VID=05e3 PID=0736 VID=08bb PID=2902 VID=0a12 PID=0001 VID=1915 PID=7777 Opened Error libusb_set_configuration: Entity not found VID=1d5c PID=2000 ] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 29 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 30 with WinUSB): [87] The parameter is incorrect. libusb: warning [winusbx_claim_interface] failed to auto-claim interface 0 (required to claim 31 with WinUSB): [87] The parameter is incorrect. libusb: error [auto_claim] could not auto-claim any interface
Причем иногда код выше работает, а часто после какого-то момента перестает.
119 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів