当前位置: 首页 > news >正文

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)、设备复位重启,后续流程同方式一

http://www.xdnf.cn/news/1382455.html

相关文章:

  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU之串口DMA
  • list 手动实现 1
  • 学习日志40 python
  • 微服务即时通信系统(十三)--- 项目部署
  • 【后端】微服务后端鉴权方案
  • 虚函数指针和虚函数表的创建时机和存放位置
  • 【Linux知识】Linux 设置账号密码永不过期
  • 完整代码注释:实现 Qt 的 TCP 客户端,实现和服务器通信
  • 【LINUX网络】TCP原理
  • WEEX唯客上线C2C交易平台:打造安全便捷的用户交易体验
  • 现在购买PCIe 5.0 SSD是否是最好的时机?
  • 前端实现Linux查询平台:打造高效运维工作流
  • [光学原理与应用-320]:光学产品不同阶段使用的工具软件、对应的输出文件
  • 华为S5720S重置密码
  • c语言动态数组扩容
  • MCU平台化实践方案
  • STL库——list(类函数学习)
  • 财务数据报销画像技术实现:从数据采集到智能决策的全流程解析
  • 【AI自动化】VSCode+Playwright+codegen+nodejs自动化脚本生成
  • 当new一块内存时,操作系统做了哪些事情
  • 软考 系统架构设计师系列知识点之杂项集萃(134)
  • leetcode算法刷题的第二十天
  • 鸿蒙OS与Rust整合开发流程
  • 面试tips--JVM(3)--类加载过程
  • 动态加载和异步调用tasklet/workqueue day63 ay64
  • 中国剩余定理(以及扩展..)
  • .Net Core Web 架构(管道机制)的底层实现
  • [光学原理与应用-321]:皮秒深紫外激光器产品不同阶段使用的工具软件、对应的输出文件
  • 【黑客技术零基础入门】2025最新黑客工具软件大全,零基础入门到精通,收藏这篇就够了!
  • JAVA全栈Redis篇————List常用命令讲解