如何从预定义十六进制常量创建bytearray并写入串口?
如何从独立十六进制字符创建bytearray并写入串口?
嘿,这事儿其实挺容易搞定的!你已经有了几个单独定义的十六进制字节变量,要把它们整合成bytearray然后发给串口,只需要两步就够了:
1. 把所有字节变量打包成bytearray
你只需要把这些十六进制变量(本质都是整数)放进一个列表,然后传给bytearray()构造函数就行。这样就能得到一个可以直接发给串口的字节数组啦。
2. 用串口对象写入设备
拿到bytearray之后,直接调用串口对象的write()方法把它发出去就OK了。
给你改好的示例代码,一看就懂:
import serial # 预定义的十六进制字节(本质是整数) START_BYTE = 0x03 END_BYTE = 0x10 RANDOM_BYTE1 = 0xCE RANDOM_BYTE2 = 0xAB # 打开并连接串口(这里需要根据你的实际设备参数调整,比如端口、波特率等) sp = serial.Serial('COM3', 9600) # 示例参数,记得改成你自己的 # 把所有需要发送的字节按顺序放进列表,再转成bytearray send_data = bytearray([START_BYTE, RANDOM_BYTE1, RANDOM_BYTE2, END_BYTE]) # 写入串口 sp.write(send_data) # 用完记得关闭串口哦 sp.close()
补充一句:如果你的字节序列有固定的顺序要求,只要在列表里按正确顺序排列就行,bytearray会严格按照列表里的顺序生成对应的字节。
内容的提问来源于stack exchange,提问作者user2840470
相关产品推荐
相关产品推荐

