# 数据包格式 ## 基础 | 含义 | 数据 | | ---- | ---- | | 发送包头 | 0x00 | | 发送包尾 | 0xff | | 返回包头 | 0x01 | | 返回包尾 | 0xfe | `数据包头` + `包体长度` + `指令` + `数据包体` + `数据包尾` 如: `00 06 20 AA BB FF` ## 信息查询 ### 查询蓝牙连接状态 `0x10` 查询示例 `00 04 10 FF` | 返回数据 | 含义 | | -------- | ---- | | 01 | 已连接 | | 00 | 未连接 | 返回示例 `01 05 10 01 FE` ### 查询 SPI Flash 挂载状态 `0x11` 查询示例 `00 04 11 FF` | 返回数据 | 含义 | | -------- | ---- | | 01 | 已挂载 | | 00 | 未挂载 | 返回示例 `01 05 11 01 FE` ### 查询超声波距离 `0x12` 查询示例 `00 04 12 FF` 返回一个 4 字节浮点数,表示距离,单位 m 返回示例 `01 08 12 距离3 距离2 距离1 距离0 FE` ## 控制 ### 行进控制 `0x20` | 方向数据 | 含义 | | -------- | ---- | | 0x00 | 停止 | | 0x01 | 前进 | | 0x02 | 后退 | 包体 `00 06 20 方向 速度 FF` 控制示例 `00 06 20 01 FF FF` ### 方向控制 `0x21` | 方向数据 | 含义 | | -------- | ---- | | 0x00 | 左转 | | 0x01 | 右转 | 包体 `00 06 21 方向 差速 FF` 控制示例 `00 06 21 01 01 FF` ### 单轮控制 `0x22` | 轮数据 | 含义 | | -------- | ---- | | 0x00 | 左前轮 | | 0x01 | 左后轮 | | 0x02 | 右后轮 | | 0x03 | 右前轮 | | 方向数据 | 含义 | | -------- | ---- | | 0x00 | 停止 | | 0x01 | 顺时针 | | 0x02 | 逆时针 | 包体 `00 07 22 轮 方向 速度 FF` 控制示例 `00 07 22 01 01 01 FF` ### 原地控制 `0x23` | 方向数据 | 含义 | | -------- | ---- | | 0x00 | 顺时针 | | 0x01 | 逆时针 | 包体 `00 06 23 方向 时间 FF` 控制示例 `00 06 23 01 01 FF` ## 状态回报 ### 电机状态汇报 `0xE0` 包体 `01 0C E0 电机A_IN_1_2 电机A_PWM 电机B_IN_1_2 电机B_PWM 电机C_IN_1_2 电机C_PWM 电机D_IN_1_2 电机D_PWM FE` 示例 `01 0C E0 01 FF 02 FF 02 FF 01 FF FE`