《16位CRC校验码计算程序》由会员分享,可在线阅读,更多相关《16位CRC校验码计算程序(3页珍藏版)》请在金锄头文库上搜索。
1、/*16 位 CRC 计算方法1预置 1 个 16 位的寄存器为十六进制 FFFF(即全为 1);称此寄存器为 CRC 寄存器;2把第一个 8 位二进制数据(既通讯信息帧的第一个字节)与 16 位的 CRC 寄存器的低8 位相异或,把结果放于 CRC 寄存器;3把 CRC 寄存器的内容右移一位(朝低位)用 0 填补最高位,并检查右移后的移出位;4如果移出位为 0:重复第 3 步(再次右移一位);如果移出位为 1:CRC 寄存器与多项式 A001(1010 0000 0000 0001)进行异或;5重复步骤 3 和 4,直到右移 8 次,这样整个 8 位数据全部进行了处理;6重复步骤 2 到步骤
2、 5,进行通讯信息帧下一个字节的处理;7将该通讯信息帧所有字节按上述步骤计算完成后,得到的 16 位 CRC;*/*名称: UART_CRC16_Work()说明: CRC16 校验程序参数: *CRC_Buf:数据地址CRC_Leni:数据长度返回: CRC_Sumx:校验值*/unsigned int UART_CRC16_Work(unsigned char *CRC_Buf,unsigned char CRC_Leni)unsigned char i,j;unsigned int CRC_Sumx;CRC_Sumx=0xFFFF;for(i=0;i=1;CRC_Sumx=0xA001;elseCRC_Sumx=1;return (CRC_Sumx);Crc_Length = 9;for(k=0;k= 1; wCrc = 0xA001; elsewCrc = 1; return wCrc;