如何使用Python发送十六进制

如何使用Python发送十六进制,python,linux,hex,raspberry-pi,Python,Linux,Hex,Raspberry Pi,我想从我的Raspberry Pi发送一个十六进制代码到连接的伺服驱动器。我有一个RS 485屏蔽,用于通信。 这个屏蔽之所以有效,是因为我在pythonshell中得到了答案。我的问题是如何将01110500013F0804发送到伺服驱动器 到目前为止,我掌握的代码是 import serial port = "/dev/ttyAMAO" usart = serial.Serial (port,4800) usart.flushInput() usart.write("011105020001

我想从我的Raspberry Pi发送一个十六进制代码到连接的伺服驱动器。我有一个RS 485屏蔽,用于通信。 这个屏蔽之所以有效,是因为我在pythonshell中得到了答案。我的问题是如何将
01110500013F0804
发送到伺服驱动器

到目前为止,我掌握的代码是

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

十六进制只是以更简洁的方式显示二进制信息的一种方式。每组4位由字母数字数字表示,范围从
0
F
。因此,如果您想用十六进制表示以下二进制文件
101100011111
,它将是
B1F
。欲了解更多信息,请参阅

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中,字符串和字节是相同的。但是,您仍然需要将十六进制文本转换为其等效字节。这可以使用字符串上的
解码(“十六进制”)
来完成

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

十六进制只是以更简洁的方式显示二进制信息的一种方式。每组4位由字母数字数字表示,范围从
0
F
。因此,如果您想用十六进制表示以下二进制文件
101100011111
,它将是
B1F
。欲了解更多信息,请参阅

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中,字符串和字节是相同的。但是,您仍然需要将十六进制文本转换为其等效字节。这可以使用字符串上的
解码(“十六进制”)
来完成

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

你可能想问我的代码:导入序列号。。。port=“/dev/ttyamo”。。。usart=serial.serial(端口,4800)。。。usart.flushInput()。。。usart.write(“01110500013F0804”)。。。是下一行我不能在这里做。你用的伺服驱动器是什么?您能否编辑您的问题,以包括伺服驱动器的名称,最好是一个指向该驱动器文档的链接?您需要发送文本还是十六进制数字?我有一个伺服表Linmot a c1200。我想发送十六进制数字。有了这些数字,伺服机构知道他必须做什么。在这种情况下,它是归位。明天我会把手册寄给你。你可能想问我的代码:导入序列号。。。port=“/dev/ttyamo”。。。usart=serial.serial(端口,4800)。。。usart.flushInput()。。。usart.write(“01110500013F0804”)。。。是下一行我不能在这里做。你用的伺服驱动器是什么?您能否编辑您的问题,以包括伺服驱动器的名称,最好是一个指向该驱动器文档的链接?您需要发送文本还是十六进制数字?我有一个伺服表Linmot a c1200。我想发送十六进制数字。有了这些数字,伺服机构知道他必须做什么。在这种情况下,它是归位。明天我会把手册寄给你。