3
我用5v脈衝脈衝USB攝像頭拍攝照片。脈衝相機然後發送一個USB信號回到樹莓派。我正在編寫一個程序來收集通過USB發送的圖像。以下是我的代碼,該功能在觸發後從攝像頭開始進行輸入。爲什麼我會從libusb批量傳輸的USB輸出接收0個字節的數據?
void opendevice()
{
libusb_device_handle* dev;
struct libusb_device_descriptor* desc;
int r;
int err;
int transfered;
libusb_init(NULL);
dev = libusb_open_device_with_vid_pid(NULL, 0x2a0b, 0x00f8);
if (dev == NULL)
{
printf("device not found\n");
}
if(libusb_kernel_driver_active(dev, 0) == 1)
{
printf("Driver active\n");
if(libusb_detach_kernel_driver(dev, 0) == 0)
{
printf("Kernel Driver Detached\n");
}
}
libusb_set_configuration(dev,1);
err = libusb_claim_interface(dev, 0);
if(err != 0)
{
printf("cannot claim interface\n");
}
unsigned char usb_data[4];
int size = sizeof(unsigned int) *1280 *960;
unsigned *data;
data = (unsigned int *)malloc(size);
r = libusb_bulk_transfer(dev, LIBUSB_ENDPOINT_IN | 0x83, usb_data, sizeof(data), &transfered, 0);
if(r == 0)
{
printf("data has been transfered\n");
}
else{
printf("error code %d\n", r);
printf("bytes transfered %d\n", transfered);
}
}
我找到該設備分離檢查,看是否內核使用它那麼如果是我卸下。分離之後,我聲稱界面然後等待批量傳輸內部發生傳輸。但是,我從來沒有收到來自轉移的數據。即使從USB端口拔下攝像頭r返回值-1,我的傳輸尺寸爲0.誰能告訴我我在這裏失蹤了什麼?
如果您需要更多信息,請告知我。
http://stackoverflow.com/help/how-to-ask – Olaf