我必须开发一个应用程序来与C8051F340-TB通过 USB 从 Silicon Labs 开发板(需要明确的是,我使用的是上一个链接图 4 中的 P3 连接器,而不是图 1 中的 USB 调试适配器)。我已经用一个示例程序刷新了该设备,该程序应该通过 USB 回显接收到的数据。但是我无法尝试它,因为我不知道如何将数据发送到 USB 设备。这是我第一次在低级别使用 USB 设备。
我在 Xubuntu 18.04 中,lsusb -v
命令除其他外还显示以下内容:
Bus 001 Device 023: ID 10c4:ea61 Cygnal Integrated Products, Inc. CP210x UART Bridge
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x10c4 Cygnal Integrated Products, Inc.
idProduct 0xea61 CP210x UART Bridge
bcdDevice 1.00
iManufacturer 1 Myself
iProduct 2 USB communication test
iSerial 3 0001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 64mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
这似乎是我的设备(我识别出了“iManufacturer”和“iProduct”字段)。
如何向设备发送字节、字符串或其他内容?另外,我如何读取它发送给我的数据?
答案1
对于 HID 设备,查看dmesg
,找到相应的hidraw
设备,写入或读取该设备 ( cat
, hexdump
)。
根据 HID 类别,您还可能会收到 上的事件/dev/event...
。
但是,对于 HID 设备,我希望
bInterfaceClass 3 Human Interface Device
所以您可能没有正确地对设备进行编程。 HID 描述符(可通过 debugfs 访问)也必须正确。
另请查看usbmon
(可通过 Wireshark 访问)和libusb
,以防您无法使 HID 工作。