pyserial的二进制数据(python串口)

Ati*_*liz 17 python binary serial-port pyserial

pyserial中的serial.write()方法似乎只发送字符串数据.我有像[0xc0,0x04,0x00]这样的数组,并希望能够通过串口发送/接收它们吗?原始I/O有什么单独的方法吗?

我想我可能需要将数组更改为['\ xc0','\ x04','\ x00'],仍然,null字符可能会造成问题.

Eli*_*sky 12

另一种方法,不使用array模块:

def a2s(arr):
    """ Array of integer byte values --> binary string
    """
    return ''.join(chr(b) for b in arr)
Run Code Online (Sandbox Code Playgroud)


dF.*_*dF. 11

您需要将数据转换为字符串

"\xc0\x04\x00"
Run Code Online (Sandbox Code Playgroud)

空字符在Python中不是问题 - 字符串不是空终止的,零字节的行为就像另一个字节"\x00".

一种方法:

>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
Run Code Online (Sandbox Code Playgroud)