通信CRC校驗是必須的,為了降低通信長度,采用了CRC8校驗算法。
算法順利通過了測試,附有源程序,共享出來給大家用啊
源程序如下:
- /* 函數名: cal_crc8_07
- * 參數[in]: len 待校驗數據長度
- * 參數[in]: ptr 待校驗數組數據首地址
- * 返回值[out] : 返回ptr為首地址數據長度為len的 CRC8的檢驗碼(多項式為 07)
- */
- unsigned char cal_crc8_07(unsigned char len , unsigned char *ptr)
- {
- unsigned char i;
- unsigned char crc=0;
- while(len--!=0)
- {
- for(i=0x80; i!=0; i=i>>1)
- {
- if((crc&0x80)!=0)
- {
- /* 余式CRC乘以2再求 CRC */
- crc*=2;
- crc^=0x07;
- }
- else
- {
- crc*=2;
- }
- if((*ptr&i)!=0)
- crc^=0x07; /* 再加上本位 CRC */
- }
- ptr++;
- }
- return(crc);
- }
復制代碼
所有資料51hei提供下載:
CRC8校驗方法.zip
(5.76 MB, 下載次數: 22)
2017-9-21 19:27 上傳
點擊文件名下載附件
|