pyserial中的serial.write()方法似乎只發送字符串數據。我有像[0xc0,0x04,0x00]這樣的數組,希望能夠通過串口發送/接收它們?是否有任何單獨的原始I/O方法?pyserial的二進制數據(python串行端口)
我想我可能需要將數組更改爲['\ xc0','\ x04','\ x00'],但空字符可能會造成問題。
pyserial中的serial.write()方法似乎只發送字符串數據。我有像[0xc0,0x04,0x00]這樣的數組,希望能夠通過串口發送/接收它們?是否有任何單獨的原始I/O方法?pyserial的二進制數據(python串行端口)
我想我可能需要將數組更改爲['\ xc0','\ x04','\ x00'],但空字符可能會造成問題。
您需要將數據轉換爲字符串
"\xc0\x04\x00"
空字符不在Python的一個問題 - 字符串不是空終止的零字節的行爲就像另一個字節"\x00"
。
>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
的另一種方法,而無需使用array
模塊:
def a2s(arr):
""" Array of integer byte values --> binary string
"""
return ''.join(chr(b) for b in arr)
我+1最好的答案 – PALEN 2013-01-22 00:43:11