我试图将使用pyserial通过串口获得的三个值组合在一起。这些值对应于从fpga板传输的24位数据的3个部分,我想在python脚本中获取24位数据。什么样的转换和组合过程可以让我回复这个24位数据?我使用以下简单的while循环读取数据...
import serial
port = serial.Serial('/dev/ttyUSB0', 115200)
file = open("my_file.txt","a")
while True:
message = ord(port.read())
print(message)
file.write(str(message) + "\n")
file.close()
提前致谢:)
答案 0 :(得分:0)
您可以使用struct
模块(内置Python)将这3个字节打包成一个:
import struct
#Your code ...
while True:
message = port.read(3) #Read 3 bytes at once
combined = struct.unpack(">I", b'\x00' + message)[0]
>I
表示您解码以big-endian(I
)保存的32位无符号整数(>
)。因为struct.unpack()
不支持24位数字,所以我在24位数字的开头添加了1个零字节,这有效地创建了32位数字。