2015-05-08 120 views
1

我想一個十六進制字符串發送到串行端口 和它必須按以下格式「\ X02 \ X81 ......」 這是我的代碼蟒蛇發送一個十六進制字符串轉串口

from binascii import unhexlify 
string='0281E1B1' 
print unhexlify(string) 

給了我一些randon符號?的\ X02 \ X81 \ XE1 \ XB1 A +,而不是我的Python 2.7解碼等等( '十六進制')心不是工作要麼

回答

2

你正在做的是正確的....你只需要通過端口發送它

print repr(unhexlify(my_string)) 

my_serial.write(unhexlify(my_string)) 

#or 

my_serial.write(my_string.decode("hex")) 

問題是你不能只是打印隨機字節("\x##")到終端,並期望看到有意義的東西......終端顯示它無法解碼的字符?或像一個帶問號的鑽石

>>> '0281E1B1'.decode("hex") 
'\x02\x81\xe1\xb1' 
>>> print '0281E1B1'.decode("hex") 
☻üß▒ 
>>> '0281E1B1'.decode("hex") == unhexlify('0281E1B1') 
True 

雖然無論什麼奇怪的原因,我的終端沒有添加任何?到那個特定的字符串

+0

感謝您的解釋!你是對的,現在所有的作品:) –

相關問題