24小时热门版块排行榜    

查看: 2589  |  回复: 6

tju_dongla

金虫 (小有名气)

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

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

» 猜你喜欢

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

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

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的回帖

aston1212

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by libralibra at 2014-01-09 18:01:42
直接用字符串构造就行吧
>>> data = '55 AA 04 01 03 FF'
>>> s = data.split()
>>> s

>>> ss =
>>> ss

>>> for c in ss:
        print c

       
\x5 ...

如果想从txt文件中来读取命令要怎么做嘞?
5楼2015-05-13 10:05:56
已阅   回复此楼   关注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的回帖

programfanny

铁杆木虫 (正式写手)


当作字串流从文件读出,再写入串口文件呢?

发自小木虫Android客户端
7楼2016-02-01 00:23:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tju_dongla 的主题更新
信息提示
请填处理意见