crc校验函数c语言 crc校验c#( 二 )


unsigned short crc_dsp(unsigned short reg, unsigned char data_crc)
//reg为crc寄存器,data_crc为将要处理的8bit数据流
{
unsigned short msb; //crc寄存器将移出的最高1bit
unsigned short data;
unsigned short gx = 0x8005, i = 0; //i为左移次数,gx为生成多项式
data = https://www.04ip.com/post/(unsigned short)data_crc;
data = https://www.04ip.com/post/data8;
reg = reg ^ data;
do
{
msb = reg0x8000;
reg = reg1;
if(msb == 0x8000)
{
reg = reg ^ gx;
}
i++;
}
while(i8);
return (reg);
}
以上为处理每一个8bit数据流的子程序,在计算整个数据流的CRC校验码时 , 我们只需将CRC_reg的初值置为0x0000,求第一个8bit的CRC值,之后 , 即可将上次求得的CRC值和本次将要处理的8bit数据作为函数实参传递给上述子程序的形参进行处理即可,最终返回的reg值便是我们所想得到的整个数据流的CRC校验值 。
C语言实现CRC校验把我知道的说一下:
码流后面加8个0可以用移位得到(码流8;)
单次异或运算可以用运算符:^(运算符两边为常数)
由于你校验的是5个字节 , 且要多次异或运算,所以得借助数组,或其它的数据结果才能完成 。
最后问一下你是做硬件的吗
【crc校验函数c语言 crc校验c#】crc校验函数c语言的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于crc校验c#、crc校验函数c语言的信息别忘了在本站进行查找喔 。

推荐阅读