串行到字节将序列作为输入。您应该删除周围的双引号value
传递整数序列而不是str
代表你想要传递的序列:
value = [0x31, 0x0a, 0x32, 0x0a, 0x33, 0x0a]
self.s.write(serial.to_bytes(value)) # works now
在第一种情况下,您发送了表示的字节序列"[0x31, 0x0a, 0x32, 0x0a, 0x33, 0x0a]"
。现在,您将发送序列[0x31, 0x0a, 0x32, 0x0a, 0x33, 0x0a]
正如预期的那样。
如果你想发送一个字符串,只需将其发送为bytes
:
# Python 2
self.s.write('this is my string')
text = 'a string'
self.s.write(text)
# Python 3
self.s.write(b'this is my string')
text = 'a string'
self.s.write(text.encode())
对于一个序列:
for value in values:
# Python 2
self.s.write(value)
# Python 3
self.s.write(value.encode())