2016-09-25 123 views
0

我想通过PySerial连接到我的MultiWii,但我不断收到此错误。Arduino'错误沟通... unicode字符串不支持,请编码为字节'PySerial

Error communicating...unicode strings are not supported, please encode to bytes: '$M<\x00ll'

这是代码的多数民众赞成失败的部分:

BASIC="\x24\x4d\x3c\x00" 
MSP_ATTITUDE=BASIC+"\x6C\x6C" 
ser.write(MSP_ATTITUDE) 

我已经试过编码字符串与.encode()中,我得到这个错误:

Error communicating...'bytes' object has no attribute 'encode' 

我已经尝试了bytearray(MSP_ATTITUDE,'ascii')并获得了以前的错误。

我只问这个,因为这个错误圈子并不合理。谁能帮忙?如果它能提供帮助,我可以提供更多关于代码的信息。

在此先感谢

回答

0

请勿创建字符串。

字符串用于unicode文本,其中\x24\x4d\x3c\x00不是。

对于任意字节,请使用字节字符串。你可以直接使用b''构建这些。

>>> type('foo') 
<class 'str'> 

>>> type(b'foo') 
<class 'bytes'> 
0

你应该尝试:

BASIC = b"\x24\x4d\x3c\x00" 
MSP_ATTITUDE = BASIC + b"\x6C\x6C" 

,使他们为bytes的对象,而不是unicode字符串处理。

相关问题