|
關(guān)于CRC16校驗詳細(xì)原理與crc16.h頭文件的資料分享給大家
本文從理論上推導(dǎo)出CRC算法實現(xiàn)原理,給出三種分別適應(yīng)不同計算機或微控制器硬件環(huán)境的C語言程序。讀者更能根據(jù)本算法原理,用不同的語言編寫出獨特風(fēng)格更加實用的CRC計算程序。
0.png (238.27 KB, 下載次數(shù): 67)
下載附件
2018-5-23 03:06 上傳
0.png (43.3 KB, 下載次數(shù): 64)
下載附件
2018-5-23 03:06 上傳
0.png (99.65 KB, 下載次數(shù): 57)
下載附件
2018-5-23 03:06 上傳
0.png (65.21 KB, 下載次數(shù): 55)
下載附件
2018-5-23 03:07 上傳
0.png (106.9 KB, 下載次數(shù): 60)
下載附件
2018-5-23 03:07 上傳
crc16.h頭文件源程序如下:
0.png (22.22 KB, 下載次數(shù): 65)
下載附件
2018-5-23 03:09 上傳
調(diào)用:
- /* HELLO.C -- Hello, world */
- #include "stdio.h"
- #include "conio.h"
- unsigned cal_crc(unsigned char *ptr,unsigned char len)
- {
- unsigned int crc;
- unsigned char da;
- unsigned int crc_ta[16]={
- 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
- 0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
- };
- crc=0;
- while(len--!=0) {
- da=((unsigned char)(crc/256))/16;
- crc<<=4;
- crc^=crc_ta[da^(*ptr/16)];
- da=((unsigned char)(crc/256))/16;
- crc<<=4;
- crc^=crc_ta[da^(*ptr&0x0f)];
- ptr++;
- }
- return(crc);
- }
- main()
- {
- unsigned int w1=0,w2=0;
- int a=0x0f;
- char b[9]={1,2,3,4,5,6,7,8,1};
- int i=0,j=0;
- unsigned int temp=0;
- temp=cal_crc(b,9);
- if(temp>0)
- {
- printf("%d\n",temp);
- w1=temp/256;
- w2=temp%256;
- printf("%d\n",w1);
- printf("%d",w2);
- }
- else
- printf("%d",a);
- getch();
- }
復(fù)制代碼
0.png (46.17 KB, 下載次數(shù): 61)
下載附件
2018-5-23 03:05 上傳
所有資料51hei提供下載:
crc16.rar
(59.03 KB, 下載次數(shù): 72)
2018-5-22 08:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|