24小时热门版块排行榜    

查看: 2590  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tju_dongla

金虫 (小有名气)

[求助] python串口发送十六进制的问题 已有1人参与

今天遇到一个小问题,就是要通过串口,向下位机发送一个命令,命令由六个十六进制数组成,可以暂时定义成55 AA 04 01 03 FF。对于其他语言来说,将这些十六进制数字储存在byte数组里面,然后发送就可以。在python里面,没有byte这个类型,是不是需要用到struct模块里面的pack方法呢?
看了网上的一些资料,脑袋里有些乱?还有的说直接serial.write("\x55"就可以发送十六进制数据。很乱?求大神给指点迷津,捋一下
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengyunlsm

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by tju_dongla at 2014-01-09 17:42:48
对的,但是发送的时候要用serial.write("\x55\xaa"...

没用啊,还是不行
6楼2016-01-31 23:22:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
直接0x加后面的内容就是十六进制了,例如0x55,0xAA等
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2014-01-07 00:13:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tju_dongla

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2014-01-07 00:13:36
直接0x加后面的内容就是十六进制了,例如0x55,0xAA等

对的,但是发送的时候要用serial.write("\x55\xaa"
3楼2014-01-09 17:42:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
3楼: Originally posted by tju_dongla at 2014-01-09 17:42:48
对的,但是发送的时候要用serial.write("\x55\xaa"...

直接用字符串构造就行吧
CODE:
>>> data = '55 AA 04 01 03 FF'
>>> s = data.split()
>>> s
['55', 'AA', '04', '01', '03', 'FF']
>>> ss = ['\\x'+x for x in s]
>>> ss
['\\x55', '\\xAA', '\\x04', '\\x01', '\\x03', '\\xFF']
>>> for c in ss:
        print c

       
\x55
\xAA
\x04
\x01
\x03
\xFF

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2014-01-09 18:01:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见