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语言的信息别忘了在本站进行查找喔 。
推荐阅读
- 电脑视频直播怎样录屏,电脑直播怎么录屏
- 切换到hbase用户的简单介绍
- python改变有序字符串,python中如何修改字符串的值
- bios怎么恢复独立显卡,显卡bios怎么恢复出厂频率
- c语言与函数的关系 c语言函数和数学函数一样吗
- Flutter爬数据,flutter wrap content
- 计算机类专业本科毕业设计,计算机专业本科毕业设计商城
- 团队经营类游戏,团队类型游戏
- java代码画法 java如何用代码画圆