我正在尝试通过libusb与设备(没有linux驱动程序)进行通信。我已经写了很多基本代码,并在Windows(有驱动程序)上使用USB侦听软件来查找我需要发送给它的代码。但是,当我执行“lsusb -v -d 1267:0000”时,仅显示1个端点,如下所示:

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端点,据我所知,这是一个读取端点(对此我很陌生)。我需要做些什么才能访问此端点?

最佳答案

您可能尚未声明您的设备(Google声明使用libusb声明了设备),您需要以root用户身份运行,或者您正在处理的设备只有一种报告方法。是的,那确实发生了。

在任何HID设备上,都有三种可能的通信方法:输入,输出和功能报告。但是,取决于HID描述符,您的设备可能仅支持一个。在这种情况下,我想它仅支持功能报告。幸运的是,这些报告可以进行输入和输出。 (这是DigiSpark的描述方式。)

这些选项也许都不起作用,但是值得一试!

关于c++ - lsusb : only 1 endpoint available,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15232261/

10-09 19:57