看了数据手册,没明白这个CRC算法,知道的大神能说明一下吗? 我是单字节读取,CRC应寄存器地址和读取的数据计算,但是具体怎么计算呢?红线标注的这个多项式中的X又代表哪项的值呢?
Coffee Ge73:
转电池管理
gang yang2:
***************************************************************************
//CRC效验程序
***************************************************************************/unsigned char cal_crc(unsigned char *ptr, unsigned char len){unsigned char i;unsigned char crc=0;while(len--!=0)//5次循环{for(i=0x80; i!=0; i/=2)//8次for循环{if((crc&0x80)!=0)//判断最高位是否是1{crc*=2; crc^=0x07;} /* 余式CRC乘以2再求CRC */elsecrc*=2;if((*ptr&i)!=0)crc^=0x07; /* 再加上本位的CRC */}ptr++;}return(crc);
}
TI中文支持网

