2016-09-25 126 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字符串處理。

相關問題