是否有一个bash命令,一个程序或一个libusb函数(虽然我没有找到一个),它指示我什么是一个USB设备的OUT或IN端点?知道一个USB设备的端点
例如,libusb_interface_descriptor的bNumEndpoints(来自libusb1.0库)显示我的usb驱动器有3个端点,但我怎么知道他们的idnumber是什么?
是否有一个bash命令,一个程序或一个libusb函数(虽然我没有找到一个),它指示我什么是一个USB设备的OUT或IN端点?知道一个USB设备的端点
例如,libusb_interface_descriptor的bNumEndpoints(来自libusb1.0库)显示我的usb驱动器有3个端点,但我怎么知道他们的idnumber是什么?
我终于在lubusb-1.0中找到了答案。在实际上不是一个函数,而是一个结构域:
uint8_t libusb_endpoint_descriptor :: bEndpointAddress端点
此描述符描述的端点的地址。
位0:3是端点号。位4:6保留。位7 表示方向,请参阅libusb_endpoint_direction。
对于每个接口为USB驱动器,我不得不写这几行显示可用的端点:
cout<<"Number of endpoints: "<<(int)interdesc->bNumEndpoints<<endl;
for(int k=0; k<(int)interdesc->bNumEndpoints; k++) {
epdesc = &interdesc->endpoint[k];
cout<<"Descriptor Type: "<<(int)epdesc->bDescriptorType<<endl;
cout<<"EP Address: "<<(int)epdesc->bEndpointAddress<<endl;
}
哪里epdesc是libusb_endpoint_descriptor和interdesc是libusb_interface_descriptor。
你都声称该设备后,运行这个(其中$表示终端入口点):
$ sudo lsusb -v -d 16c0:05df
其中16c0:05df是由冒号分隔您的供应商和产品ID。 (如果你不知道这些,类型和的lsusb找出哪些设备是你拔下并重新运行的lsusb)
如果你感到困惑的使用人的lsusb页:
http://linux.die.net/man/8/lsusb
然后一旦你的描述出现了,找到标记为bEndpointAddress的行,下面的十六进制代码将成为该特定报告的端点。