C libusb正在抛出libusb\u错误\u在libusb\u bulk\u transfer()上找不到
我的问题是libusb无法传输大量数据来读取键盘输入。代码如下:C libusb正在抛出libusb\u错误\u在libusb\u bulk\u transfer()上找不到,c,libusb,C,Libusb,我的问题是libusb无法传输大量数据来读取键盘输入。代码如下: #include <stdio.h> #include <libusb-1.0/libusb.h> int main(void) { libusb_init(NULL); libusb_device **list; libusb_device *found = NULL; ssize_t cnt = libusb_get_device_list(NULL, &l
#include <stdio.h>
#include <libusb-1.0/libusb.h>
int main(void)
{
libusb_init(NULL);
libusb_device **list;
libusb_device *found = NULL;
ssize_t cnt = libusb_get_device_list(NULL, &list);
ssize_t i = 0;
struct libusb_device_descriptor desc;
libusb_device_handle *h;
unsigned char strDesc[128];
for (i = 0; i < cnt; i++) {
libusb_device *device = list[i];
libusb_get_device_descriptor(device, &desc);
if (desc.idProduct == 0x203) {
libusb_open(device, &h);
libusb_get_string_descriptor_ascii(h, desc.iProduct, strDesc, 128);
printf("=== %s found in host ===\n", strDesc);
found = device;
break;
}
}
libusb_device_handle *handle;
libusb_open(found, &handle);
unsigned char data[16];
int act_len;
libusb_get_device_descriptor(found, &desc);
int r = libusb_bulk_transfer(handle, LIBUSB_ENDPOINT_IN, data, sizeof(data), &act_len, 0);
const char *err = libusb_error_name(r);
printf("%s\n", err);
libusb_free_device_list(list, 1);
libusb_close(handle);
return 0;
}
#包括
#包括
内部主(空)
{
libusb_init(空);
libusb_设备**列表;
libusb_device*found=NULL;
ssize\u t cnt=libusb\u get\u device\u list(NULL,&list);
ssize_t i=0;
结构libusb_设备描述符desc;
libusb_设备_手柄*h;
无符号字符strDesc[128];
对于(i=0;i
基本上,它通过所有列出的设备循环,直到找到我的键盘,pId 0x203。然后,它尝试启动libusb\u bulk\u传输()
,但在执行时抛出libusb\u错误\u找不到
。
有人能帮我吗?我已经搜索过了,但似乎没有人有解决办法。谢谢
我正在运行OS X 10.10.1。键盘是隐藏设备,它们不支持像记忆棒这样的批量传输。改为使用libusb\u interrupt\u transfer()。你好非常感谢你的帮助。这是我第一次尝试使用USB硬件,我可能会得到更多的文档。不管怎样,您提供的代码似乎正在工作,但我现在得到了一个
LIBUSB\u ERROR\u ACCESS
。尝试使用权限运行它,但仍然出现错误。