使用pyusb与usb设备通信

use*_*021 1 python usb communication pyusb

我正在使用一个名为pyUSB 1.6版的模块,我正在尝试与传感器通信.

我已经建立了连接,可以从传感器上的ROM中读取.传感器在连接时具有主/从关系,因此我需要向传感器发送消息以接收我需要的数据.

现在,该write函数只能接受字符串或只读缓冲区.我需要发送的USB设备的十六进制字节0xFE,0x04,0x00,0x03,0x00,0x01,0xD5,0xC5.
我不确定如何将其编码为字符串或只读缓冲区.

以下是调用write方法的方法.这是他们提供的示例代码.

# write bytes (serial mode)

print h.write('Hello world!\r\n")
Run Code Online (Sandbox Code Playgroud)

我如何传输十六进制字节?

Tho*_*s K 5

byte_ints = [0xFE, 0x04, 0x00, 0x03, 0x00, 0x01, 0xD5, 0xC5] # Python recognises these as hex.
byte_str = "".join(chr(n) for n in byte_ints)
Run Code Online (Sandbox Code Playgroud)

或者,您可以在字符串中的每对十六进制数字之前放置\ x:

'\xfe\x04\x00\x03\x00\x01\xd5\xc5'
Run Code Online (Sandbox Code Playgroud)

在Python 3中,需要:

b'\xfe\x04\x00\x03\x00\x01\xd5\xc5'
Run Code Online (Sandbox Code Playgroud)

(即字节串,而不是unicode)