python 发送十六进制字符串到串口
python sending a hex string to serial port
我正在尝试将十六进制字符串发送到串口
它必须采用以下格式 '\x02\x81.....'
这是我的代码
from binascii import unhexlify
string='0281E1B1'
print unhexlify(string)
给了我一些随机符号 ?a+ 而不是 \x02\x81\xE1\xB1
我有 python 2.7,所以 decode('hex') 也不工作
你做得对....你只需要通过端口发送它
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
尽管出于某种奇怪的原因我的终端没有添加任何内容?到那个特定的字符串
我正在尝试将十六进制字符串发送到串口 它必须采用以下格式 '\x02\x81.....' 这是我的代码
from binascii import unhexlify
string='0281E1B1'
print unhexlify(string)
给了我一些随机符号 ?a+ 而不是 \x02\x81\xE1\xB1 我有 python 2.7,所以 decode('hex') 也不工作
你做得对....你只需要通过端口发送它
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
尽管出于某种奇怪的原因我的终端没有添加任何内容?到那个特定的字符串