如何使用Python

时间:2015-05-24 12:59:29

标签: python linux hex raspberry-pi

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

到目前为止我的代码是

import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
usart.flushInput()
usart.write("0111050200013F0804")

1 个答案:

答案 0 :(得分:1)

Hex只是一种以更简洁的方式显示二进制信息的方法。每组4比特由从0F的字母数字数字表示。因此,如果您想以十六进制表示以下二进制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

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

import serial
port = "/dev/ttyAMAO"
usart = serial.Serial (port,4800)
message_bytes = "0111050200013F0804".decode("hex")
usart.write(message_bytes)