我正在尝试将十六进制字符串发送到串行端口 它必须采用以下格式'\ x02 \ x81 ....' 这是我的代码
from binascii import unhexlify
string='0281E1B1'
print unhexlify(string)
给了我一些randon符号?a +而不是\ x02 \ x81 \ xE1 \ xB1 我有python 2.7所以解码('hex')不工作
答案 0 :(得分: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
虽然出于任何奇怪的原因我的终端没有添加任何东西?到那个特定的字符串