我正在使用Python通过Beagle Bone进行串行通信。我需要以十六进制格式传输数据。所以我用struct
这样:
import Adafruit_BBIO.UART as UART
import serial
import struct
UART.setup("UART1")
ser = serial.Serial(port='/dev/ttyO1', baudrate = 19200)
print ser.portstr
ser.open()
tx_hex = 0x1234
tx_str = struct.pack('!I', tx_hex)
if ser.isOpen():
print "Serial is open!"
ser.write(tx_str)
else:
print "Serial is closed!"
ser.close()
但是,我收到00 00 12 34
(十六进制),而我希望它只是12 34
。我如何摆脱领先的零?
答案 0 :(得分:1)
为struct
使用不同的格式:
tx_str = struct.pack('!H', tx_hex)
另见https://docs.python.org/2/library/struct.html#format-characters