您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页S7-200_MODBUS与PIC单片机的通讯之CRC16校验

S7-200_MODBUS与PIC单片机的通讯之CRC16校验

来源:测品娱乐


S7-200_MODBUS与PIC单片机的通讯之CRC16校验

void CHECK_RX_data(void)

{

CRC_Hi = 0;

CRC_Low = 0;

CRC = 0XFFFF; // 1,设置CRC寄存器,并给其赋值FFFF(hex)

for(a=0;a<15;a++) // 8,重复第2至第7步直到所有数据全部处理完成

{

CRC ^= RX_Data[a]; // 2,将数据的第一个字节与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

for( b=0; b<8; b++ ) // 7,重复第3与第4步直到8次移位全部完成。

{

CRC_LSB = CRC & 1; // 3,提取LSB

CRC = CRC >> 1; // 4,CRC寄存器向右移一位

CRC = CRC & 0x7FFF ; // 5,MSB补零

if( CRC_LSB==1 ) { CRC^=0xA001; } // 6,检查LSB,如果LSB为0,重复第3步;若LSB为1,CRC寄存器与多项式码0xA001相异或。

}

}

CRC_Hi = CRC/256; CRC_Low = CRC%256; }

// 提取CRC高字节

// 提取CRC低字节

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务