上位机串口数据检验方式(一)——校验和

最近还是在写上位机软件,还是有一堆问题,因为是第一次做这个东西,有些东西只能到论坛上来查,最近做到了数据通信,刚开始没有想到数据协议这些东西,现在涉及到了,就写写笔记,也方便了以后查资料的同学。

首先我讲的是校验和的方式来进行串口通信数据的校验,这个也是前辈说这个比较简单,先做个这个吧。。。。。。其他的后续补上。

校验值=数据类型+数据长度+数据内容

先说一下大致思路,就是数据包里面有校验值,校验值是由除了数据头和数据尾之外的数据的和来决定,当然还要除了校验值之外,下面做具体解释:

我定义的数据包如下(具体自定哈)

数据包
数据头 数据类型 数据长度 数据内容 校验值 数据尾
0x55 0x01或者... 具体自定 具体自定 根据计算得来 0xAA

 

 

 

校验值=数据类型+数据长度+数据内容

举个例子:数据类型为0x02    数据长度为10  数据内容为F3 E4 A9 A1 0C 1C 54 05 00 00

下面来计算它的校验值:02(数据类型)+0A(数据长度)+F3+ E4+ A9+ A1 +0C +1C+ 54+ 05 +00+ 00(数据内容)=AE

(前面有进位,不考虑)所以最后要发送的数据包就是

55(数据头) 02(数据类型)  0A(数据长度) F3 E4 A9 A1 0C 1C 54 05 00 00(数据内容) AE(校验值) AA(数据尾)

你可能感兴趣的:(嵌入式)