【问题标题】:Communication with usb device using pyusb使用 pyusb 与 USB 设备通信
【发布时间】:2011-06-15 16:45:14
【问题描述】:

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

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

现在,write 函数只能接受字符串或只读缓冲区。我需要向 USB 设备发送十六进制字节 0xFE0x040x000x030x000x010xD50xC5
我不确定如何将其编码为字符串或只读缓冲区。

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

# write bytes (serial mode)

print h.write('Hello world!\r\n")

如何传输十六进制字节?

【问题讨论】:

    标签: python usb communication pyusb


    【解决方案1】:
    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)
    

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

    '\xfe\x04\x00\x03\x00\x01\xd5\xc5'
    

    在 Python 3 中,这需要:

    b'\xfe\x04\x00\x03\x00\x01\xd5\xc5'
    

    (即一个字节串,不是 unicode)

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 2012-12-19
      • 2015-04-02
      • 1970-01-01
      • 2023-04-07
      • 2020-03-25
      • 1970-01-01
      • 2018-02-17
      相关资源
      最近更新 更多