我想从我的树莓派发送十六进制代码到连接的伺服驱动器。我有一个来自Link Sprite的RS 485防护罩用于通信。Shield之所以能工作,是因为我在Python shell中得到了答案。我的问题是如何将0111050200013F0804发送到我的伺服驱动器?
到目前为止,我拥有的代码是
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
usart.flushInput()
usart.write("0111050200013F0804")发布于 2015-05-30 06:19:33
十六进制只是一种以更简洁的方式显示二进制信息的方式。每组4位由范围从0到F的字母数字表示。因此,如果你想用十六进制表示下面的二进制101100011111,它应该是B1F。有关更多信息,请参阅this page on code project.
Python 3
在Python中,3字节的对象不同于字符串。需要做的第一件事是将十六进制转换为字节对象,然后可以将该字节对象写入串行端口。
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
message_bytes = bytes.fromhex("0111050200013F0804")
usart.write(message_bytes)Python 2
在Python2中,字符串和字节是一回事。但是,您仍然需要将十六进制文本转换为与其等效的字节。这可以使用字符串上的decode("hex")来完成。
import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
message_bytes = "0111050200013F0804".decode("hex")
usart.write(message_bytes)https://stackoverflow.com/questions/30423774
复制相似问题