我正在尝试通过libusb与设备(没有linux驱动程序)通信。我已经写了很多基本的代码,并在windows上使用USB侦听软件(它有一个驱动程序)来找出我需要发送给它的代码。然而,当我执行"lsusb -v -d 1267:0000“时,只显示了一个端点,如下所示:
Bus 003 Device 005: ID 1267:0000 Logic3 / SpectraVideo plc
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1267 Logic3 / SpectraVideo plc
idProduct 0x0000
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 8
Device Status: 0x0000
(Bus Powered)问题是应该有一个写端点,我可以向下发送数据,但是只显示了0x81端点,据我所知,它是一个读端点(我对此非常陌生)。我是否需要执行某些操作才能访问此端点?
发布于 2013-07-16 23:49:53
你要么还没有声明你的设备(google声明了一个带有libusb的设备),要么你需要以root身份运行,要么你正在处理的设备只有一种报告方法。是的,确实会发生这种情况。
在任何HID设备上,都有三种可能的通信方法:输入、输出和功能报告。但是,根据HID描述符的不同,您的设备可能只支持一个。在这种情况下,我猜它只支持功能报告。幸运的是,这些报告可以进行输入和输出。(这是DigiSpark的描述方式。)
也许这些选项都不起作用,但它们值得一试!
https://stackoverflow.com/questions/15232261
复制相似问题