C#写的一键自动测灯带的应用 AI帮写的。

通讯协议V1.00

版本 日期 修订说明

V1.00 2025-8-23 初稿

目录

一、 前言 2

1、 通讯方式: 2

2、 协议介绍: 2

3、 设备类型列表: 2

二、 通用协议 2

1、获取设备版本 2

2、升级包 2

3、设备重启 3

4、设置灯带颜色 3

5、保存灯带设置 3

三、 升级流程 3

1、方式一: 3

2、方式二: 4

一、前言

1、通讯方式:

采用HID通讯方式;

2、协议介绍:

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 - - - - -

设备->PC 0x5A 0xA5 - - - - -

校验方式:CRC16(CCITT标准-0x1021),参与计算的内容从设备类型开始到数据内容结束。

数据长度:数据内容的长度

所有协议均为高字节在前

3、设备类型列表:

注:本项目固定用0x0002

二、通用协议

1、获取设备版本

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 - 0x00 0x00 0x00 0x00 无 CRC16

设备->PC 0x5A 0xA5 - 0x00 0x00 - 内容 CRC16

内容说明 如:Boot:"boot V1.00" 或 App:"app V1.00"

2、升级包

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 - 0x00 0x03 n 内容 CRC16

设备->PC 0x5A 0xA5 - 0x00 0x03 0x00 0x02 内容 CRC16

内容说明 发送内容:2byte总包数+2byte当前包+1byte类型(此项目固定1)+程序包(需能被4整除,不足末尾补0xFF)

返回内容:成功返回当前包号 失败返回:0xFFFF

此命令只在boot生效,此命令可适当的将超时时间放长,设备擦除跟写入需要时间

3、设备重启

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 - 0x00 0x05 0x00 0x00 无 CRC16

设备->PC 0x5A 0xA5 - 0x00 0x05 0x00 0x02 0xAA[成功] 0x55[失败] CRC16

4、设置灯带颜色

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 0x02 0x00 0xA1 - 内容 CRC16

设备->PC 0x5A 0xA5 0x02 0x00 0xA1 - 内容 CRC16

内容说明 发送内容:

Data[0]:预留固定0x01

Data[1]:灯带R值,0-255

Data[2]:灯带G值,0-255

Data[3]:灯带B值,0-255

Data[4]:模式,0=常亮 1=呼吸

Data[5]:周期,单位100ms,如呼吸灯灭-亮-灭为一个周期

返回内容:成功返回当0xAA 失败返回:0x55

5、保存灯带设置

方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度

(2byte) 数据内容(nbyte) 校验值(2byte)

PC->设备 0x5A 0xA5 - 0x00 0xA2 0x00 0x00 无 CRC16

设备->PC 0x5A 0xA5 - 0x00 0xA2 0x00 0x02 0xAA[成功] 0x55[失败] CRC16

三、升级流程

1、方式一:

(1)、设备上电,进入boot

(2)、在boot检测升级n秒

(3)、若无升级,超时跳转到app

(4)、若存在升级,则接收更新,更新完成后进入app

2、方式二:

(1)、设备处于app,发送重启指令

(2)、设备复位重启,后续流程同方式一