import serial import struct # 定义串口通信参数 SERIAL_PORT = 'COM5' # 替换为你的串口名称 BAUDRATE = 9600 # 波特率 TIMEOUT = 1 # 秒 # 定义指令集 CMD_MULT_SERVO_MOVE = 0x03 # 控制多个舵机的转动 CMD_FULL_ACTION_RUN = 0x06 # 动作组运行 CMD_FULL_ACTION_STOP = 0x07 # 停止正在运行的动作 CMD_FULL_ACTION_ERASE = 0x08 # 擦除动作组 CMD_BLE_SERVO_DOWNLOAD = 0x25 # 通过蓝牙下载动作组 # 初始化串口 ser = serial.Serial(SERIAL_PORT, BAUDRATE, timeout=TIMEOUT) def build_data_packet(cmd, params): """ 构建数据包。 :param cmd: 指令码 :param params: 参数列表 :return: 打包后的数据 """ length = len(params) + 2 # 2为指令和长度本身占用的字节 packet = bytearray([0x55, 0x55, length]) # 帧头和数据长度 packet.extend(struct.pack('B',cmd)) # 指令 for param in params: if isinstance(param, int): packet.extend(struct.pack('B', param)) # 参数 else: raise ValueError("参数必须是整数类型") # 参数 checksum = sum(packet) & 0xFF
python与stm32串口通信遇到的问题
最新推荐文章于 2025-04-24 19:54:05 发布