




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上CRC16校驗(yàn)C語(yǔ)言程序源碼 (附完整的可執(zhí)行的C語(yǔ)言代碼)/CRC16校驗(yàn)在通訊中應(yīng)用廣泛,這里不對(duì)其理論進(jìn)行討論,只對(duì)常見(jiàn)的2種/實(shí)現(xiàn)方法進(jìn)行測(cè)試。方法一:查表法(256長(zhǎng)度的校驗(yàn)表) 速度快,準(zhǔn)確,但是對(duì)于單片機(jī)設(shè)備存儲(chǔ)占用大,且校驗(yàn)表長(zhǎng)度大,輸入時(shí)容易出現(xiàn)錯(cuò)誤。/ - POPULAR POLYNOMIALS -/ CCITT: x16 + x12 + x5 + x0
2、60; (0x1021)/ CRC-16: x16 + x15 + x2 + x0 (0x8005)#define CRC_16_POLYNOMIALS 0
3、x8005const BYTE chCRCHTalbe = / CRC 高位字節(jié)值表0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x
4、01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
5、0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1,
6、 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x0
7、0, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0
8、x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40;const BYTE chCRCLTalbe = / CRC 低位字節(jié)值表0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4
9、, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9,0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x
10、30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF,0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5,
11、0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB,0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A
12、, 0xBA,0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,0x5A, 0x9
13、A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,0x41, 0x81, 0x80, 0x40;WORD CRC16_1(BYTE* pchMsg, WORD wDataLen)
14、160; BYTE chCRCHi = 0xFF; / 高CRC字節(jié)初始化 BYTE chCRCLo = 0xFF; / 低CRC字節(jié)初始化 WORD wIndex; / CRC循環(huán)中的索引 while
15、(wDataLen-) / 計(jì)算CRC wIndex = chCRCLo *pchMsg+ ;
16、 chCRCLo = chCRCHi chCRCHTalbewIndex; chCRCHi = chCRCLTalbewIndex ;
17、60; return (chCRCHi << 8) | chCRCLo) ;方法一:列表法(簡(jiǎn)單表)const WORD wCRCTalbeAbs =0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, 0xA001, 0x6C00, 0x7800, 0xB401, 0x5000, 0x9C01, 0x8801, 0x4400, ;WORD CRC16_2(BYTE* pchMsg, WORD wDataLen) WORD w
18、CRC = 0xFFFF; WORD i; BYTE chChar; for (i = 0; i < wDataLen; i+)
19、0; chChar = *pchMsg+; wCRC = wCRCTalbeAbs(chChar wCRC) & 15 (wCRC >> 4); wCRC = wCRCTa
20、lbeAbs(chChar >> 4) wCRC) & 15 (wCRC >> 4); return wCRC;方法二:定義法 根據(jù)CRC16/MODBUS原理直接計(jì)算,算法簡(jiǎn)單但對(duì)單片機(jī)計(jì)算壓力大。WORD CRC16_3(BYTE* pchMsg, WORD wDataLen) BYTE i, chChar;
21、 WORD wCRC = 0xFFFF; while (wDataLen-) chChar = *pchMsg+;
22、160; chChar = ByteInvert(chChar); wCRC = (WORD) chChar) << 8);
23、0; for (i = 0; i < 8; i+) if (wCRC & 0x8000)
24、160; wCRC = (wCRC << 1) CRC_16_POLYNOMIALS;
25、; else wCRC <<= 1;
26、 wCRC = WordInvert(wCRC); return wCRC;/試驗(yàn)數(shù)據(jù):/ 采用Metrowerks CodeWarrior在DSP56F80x平臺(tái)上,對(duì)這3種
27、方法/進(jìn)行了性能測(cè)試。/ -/ 代碼大小(字) 額外存儲(chǔ)空間(字) 執(zhí)行時(shí)間(周期數(shù))/ -/ 方法1 32 512 540/ 方法2 57 &
28、#160;16 1120/ 方法3 142* 0 4598/附一個(gè)完整的C語(yǔ)言代碼#include <stdio.h>void InvertUint8(unsigned char *dBuf,unsigned char *srcBuf) int i;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車(chē)庫(kù)產(chǎn)權(quán)抵押擔(dān)保貸款合同樣本
- 氨水產(chǎn)品研發(fā)與知識(shí)產(chǎn)權(quán)保護(hù)合同
- 會(huì)計(jì)師事務(wù)所審計(jì)師聘用服務(wù)協(xié)議
- 教育建筑設(shè)計(jì)的研究與實(shí)踐
- 茶館服務(wù)員勞動(dòng)合同書(shū)(含茶藝表演培訓(xùn)證書(shū))
- 農(nóng)業(yè)產(chǎn)業(yè)化基地出租廠(chǎng)房租賃與合作種植養(yǎng)殖合同
- 商業(yè)街區(qū)開(kāi)放式車(chē)位租賃與維護(hù)管理合同
- 幼兒園游戲化教學(xué)的課程設(shè)計(jì)與實(shí)施效果分析
- 打造高效能的內(nèi)部培訓(xùn)團(tuán)隊(duì)
- 跨國(guó)餐飲品牌入駐合作協(xié)議范本
- 急性髓系白血病診斷治療規(guī)范經(jīng)典實(shí)用課件
- 學(xué)院財(cái)務(wù)處查閱檔案申請(qǐng)表
- 鑄鐵閘門(mén)及啟閉機(jī)安裝說(shuō)明及操作手冊(cè)
- 過(guò)敏性休克的急救及處理流程教材課件(28張)
- 物理發(fā)泡絕緣的生產(chǎn)與應(yīng)用課件
- 北交所評(píng)測(cè)20題及答案
- 《消防安全技術(shù)實(shí)務(wù)》課本完整版
- CLSI EP25-A 穩(wěn)定性考察研究
- SJG 44-2018 深圳市公共建筑節(jié)能設(shè)計(jì)規(guī)范-高清現(xiàn)行
- 職工子女暑期工會(huì)愛(ài)心托管班的方案通知
- (5年高職)客戶(hù)服務(wù)實(shí)務(wù)(第二版)教學(xué)課件全套電子教案匯總整本書(shū)課件最全教學(xué)教程完整版教案(最新)
評(píng)論
0/150
提交評(píng)論