首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Python发送十六进制

如何用Python发送十六进制
EN

Stack Overflow用户
提问于 2015-05-24 20:59:29
回答 1查看 4.6K关注 0票数 0

我想从我的树莓派发送十六进制代码到连接的伺服驱动器。我有一个来自Link Sprite的RS 485防护罩用于通信。Shield之所以能工作,是因为我在Python shell中得到了答案。我的问题是如何将0111050200013F0804发送到我的伺服驱动器?

到目前为止,我拥有的代码是

代码语言:javascript
复制
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
usart.flushInput()
usart.write("0111050200013F0804")
EN

回答 1

Stack Overflow用户

发布于 2015-05-30 06:19:33

十六进制只是一种以更简洁的方式显示二进制信息的方式。每组4位由范围从0F的字母数字表示。因此,如果你想用十六进制表示下面的二进制101100011111,它应该是B1F。有关更多信息,请参阅this page on code project.

Python 3

在Python中,3字节的对象不同于字符串。需要做的第一件事是将十六进制转换为字节对象,然后可以将该字节对象写入串行端口。

代码语言:javascript
复制
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
message_bytes = bytes.fromhex("0111050200013F0804")
usart.write(message_bytes)

Python 2

在Python2中,字符串和字节是一回事。但是,您仍然需要将十六进制文本转换为与其等效的字节。这可以使用字符串上的decode("hex")来完成。

代码语言:javascript
复制
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
message_bytes = "0111050200013F0804".decode("hex")
usart.write(message_bytes)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30423774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档