串口通讯CRC校验和求和校验怎么用

串口通讯CRC校验和求和校验怎么用,第1张

串口通信时,需要发校验字节,校验和是最为简单的,就是在发送一帧数据时,把发送的多字节数据相加得到和,但只保留8位,作为一个字节的校验和再发送出去。接收一方在接收到数据后,也按相同的方法求和,也得一个校验和,就与接收的校验和比较,如果相同,接收不是正常的,反之,接收就是错误的。不作处理。

而CRC校验比较麻烦点,方法与校验和相似,但是要对发送的多个字节的数据进行CRC计算,结果可以是8位的,也可是16位的。这CRC计算是一个标准算法,网上可以查到,并有CRC计算的程序。

直接发送这个16位数据和其和就可以了,也就是发送3个字节。接收到和同样求一下和看是否一致就行。例如:

senddat()

{

dat[2]=dat[0]+dat[1];

i=0;

while(i<3)

{

SBUF=dat[i];

while(!TI);

TI=0;

i++;

}

}

char recive()

{

i=0;

while(i<3)

{

if(RI)

{

RI=0;

dat[i]=SBUF;

}

}

if(dat[2]==dat[0]+dat[1])return(1);

else return(0);

}

#include<iostream>

using namespace std;

int main()

{

ifstream fin("ptxt");

int i;

while (fin>>i)cout<<i<<' ';

cout<<endl;

system("pause");

return 0;

}

输入文件:qtxt

输出在屏幕上

以上就是关于串口通讯CRC校验和求和校验怎么用全部的内容,包括:串口通讯CRC校验和求和校验怎么用、我要51单片机串口发送16位的数据,谁能给我个最方便的校验代码例如CRC什么的…谢谢!、用C++,串口接收到的数据怎样提取并进行累加和校验呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10116804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存