协议表格和代码对不上?一个逐行比对工作流,找出 7 处错误
2026/7/29 15:45:37 网站建设 项目流程

一句话: 上位机和下位机之间的协议文档如果和代码不一致,联调就是灾难。本文分享一个实操方法——把 Excel 协议表逐行和代码比对,帧头、长度、通道名、偏移地址,一项一项过。15 条指令找出 7 处错误,修完全对上。

适合谁读:适合嵌入式开发者、单片机初学者及遇到类似问题的工程师

为什么要做这个

你手里有两份东西:

  • 协议 Excel 表— 上位机同事给你的,写着每条命令的帧格式、字段、含义
  • 固件代码— 你自己写的protocol.c,实现这些命令

如果这两份对不上,联调的时候就会出现:

上位机:"我发了命令 5,你回复的数据格式不对" 你:"我按协议写的啊" 上位机:"你那个协议文档是第几版的?" 你:"……"

在联调之前把协议和代码逐行对齐,能省掉一大半的联调时间。


方法:逐指令、逐字段比对

拿一个三列表格,对着协议文档和代码,逐条过:

指令协议文档说代码实际写一致?
命令 1帧头0x73 0x740x73 0x74
命令 1数据长度 8 字节u8Len = 8
命令 2帧头0x73 0x740x72 0x74✗ — 帧头写错
命令 3CH1 电流CH2 电流✗ — 通道名张冠李戴
............

不要相信"差不多"——必须一个字一个字对。


实际发现的 7 类错误

1. 帧头写错

协议文档: 帧头 0x73 0x74 代码: 帧头 0x72 0x74 ↑ 敲错了

少一个 bit 的区别。如果上线,上位机发的帧检查 0x73 0x74,你的代码也检查 0x72 0x74——永远对不上。

2. 数据长度不一致

协议文档: 命令 5 返回 12 字节 代码: memcpy(TxBuff, data, 10)

协议说回 12 字节,代码只回了 10 字节。上位机收到了 10 字节后还在等剩下 2 字节,超时。

3. 通道名张冠李戴

协议文档: 字节 3-4 = CH1 电流值 代码注释: 字节 3-4 = CH2 电流值

写代码的时候复制粘贴了上一行的注释,忘了改通道名。功能上不影响(反正都是两个字节存电流),但文档对不上,调试时一脸懵。

4. 偏移地址漏填

协议文档: 字节 5 = Flash 写入地址 [31:24] 代码: 跳过了字节 5,直接从字节 6 开始解析

少解了一个字节,后面的字段全部偏移一位——整条命令解析全错。

5. 读/写标志位反了

协议文档: bit 7 = 0 读, 1 写 代码: if (cmd & 0x80) → 读操作

逻辑反了。上位机发读命令,你的代码当写命令处理。

6. 校验和范围不一致

协议文档: 校验和 = 从字节 0 到字节 N-2 的累加和取反 代码: 校验和 = 从字节 0 到字节 N-1

多算了一个字节。校验和永远差一个数。

7. 帧尾忘写

协议文档: 帧尾 0x0D 0x0A 代码: 只发了数据,没发帧尾

上位机收不到帧尾,不知道这帧结束了——一直等。


对齐工作流

完整的操作步骤:

第 1 步:拿到最新版协议文档

找上位机同事要一份最新的 Excel 表。确认版本号、日期。旧版文档 = 浪费时间。

第 2 步:拉一个三列对比表

| 指令 | 字段 | 协议值 | 代码值 | 一致? | |:--:|------|--------|--------|:--:| | 1 | 帧头 | 0x73 0x74 | 0x73 0x74 | ✓ | | 1 | 长度 | 12 | 12 | ✓ | | 1 | 命令码 | 0x01 | 0x01 | ✓ | | 2 | 帧头 | 0x73 0x74 | 0x73 0x74 | ✓ | | 2 | 长度 | 8 | 10 | ✗ | | ... | ... | ... | ... | ... |

第 3 步:逐指令过,不一致的标红

不要跳。哪怕第 14 条命令觉得"肯定对的",也要看一眼。

第 4 步:修代码,改完一条测试一条

不要攒到最后一起测——万一修 A 的时候手滑改了 B,B 本来是对的。

第 5 步:改完把 Excel 更新

你发现的错误,如果协议文档本身有错(比如帧头写错),反馈给上位机同事让他们更新文档。文档是活的,不是刻在石头上的。


总结

步骤做什么
1拿最新版协议文档
2拉三列表,逐字段比对
3不一致的全标红
4修一条测一条
5文档和代码一起更新

对齐了再联调。这 15 条指令如果不先比对,联调至少要花一上午去找"为什么不通"。现在花了 40 分钟找出了 7 个错,联调 10 分钟就跑通了。前置投入换后端效率。



有用的话点个收藏,下次调试直接用。有问题欢迎评论区交流,看到了都会回。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询