资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
C16校验C语言程序源码 (附完整的可执行的语言代码)/CR6校验在通讯中应用广泛,这里不对其理论进行讨论,只对常用的2种实现措施进行测试。措施一:查表法(56长度的校验表) 速度快,精确,但是对于单片机设备存储占用大,且校验表长度大,输入时容易浮现错误。/- POPUR POLYNOMIAL-/ CCI:x16 x12 x + 0 (001)/ CRC-1: x1 +x1 + x2 + 0 (0x005)defin CC_16_PLYNOMAL0x805onst BYchCRHTalb = / CR高位字节值表0x00, xC, 0x8, 040, 0x01,0C0,x8,x, x0, 0C, 0x80, 0x41,000, 0xC1, x8, 0x40, 0x0, xC0, 0x80,x4, 0x00, 0xC1, x81, 0x4,x00,0xC1, 081,x40, 001, 0xC0, 0x0, 0x1, 0x0, 0x0, x8,041,0x00, 0x, 0x81, 0x40, 0x0, 0xC1,0x,0x4,x0,xC0, 0x8, 0x41,x00,0xC1, x81, 0x40, 0x01, xC0, 08,0x41, 0x01,0xC0,080, x4,0x00, 0, x1, 0x4, x1, 0xC0,0x, 4, 0x00, 1,x81, 0x40,0x00, 0C1,0x81,x40, 0, 0xC0, x80,0x1, 00,0xC1, 0x1, 04,0x0,0x0, 0x80,0x41, x01, 0xC0, 0x0, 041,x00, 0xC, 0x1, 0x40,0x00,0xC1,0x81, 0x40, 0x1, 0xC0, 0x0,41, x01, 0xC0,0x0, 01,0x00, 0xC, 0x81,0x40,x01, 0C0, x8, 041,0x00, 0xC1, 0x1, 0x0,000,xC1, 0x1, x4,0x01,0xC0, 0x80, 041, 0x0, 0xC0, 080,041,000, 0xC1, x, 0x40, x00, 0x1,0x1, 04, 0x01, 0x0, 080,x41,0x0,0xC1, 0x81, 0x0, x01, 0xC0, 0x80, 0x4,0x01, 0x0, 0x0,0x41,0x0, 0C1,x81, 040, x00, 0C1, 0x81,0x40,0x1,0C0, 0x80, 041,x01,00,x80, x41,x00,0C,0x8, x0, 0x01,0x0, 00, 0x41,000,0xC1, x81, x40, x, 0x1, 1, 0x0, 0x01, C, 0x80,0x41,000,xC1, 081,0x40,0x01, 0xC0,0x80, 0x41, 0x,0xC, 00, 4,x00, 0C1, x81, 0x40, 001, 0xC0, 0x,0x41, 0x0,C,01, 040,x00, xC1,0x81, 040, 0x0,C0, 0x80, 0x41, 0x, xC, 0x80,0x41,0x00,0xC1, 0x81, 0x4, 0x00, 0xC1, 0x8, 0x4, ,0C, 0x8, x1,0x00, 0x1, x81,0x4, 01, 0x0, 080, 041, 001, 0, x80, 041,0x, C1, 81,x0;cns BYTE hCRTabe = CRC 低位字节值表0x00,xC0,0xC1, 0x01, 0C3, x3, 002, 0C2, 0xC6, 0x6, 07, 0xC7,0x0, 0xC5,0xC, 0x0, 0xCC, 0x, 0D,0xCD,0x0F, 0CF,0xCE, 0E,0x0,A, 0B, 0x0B, 0xC, 0x0, 0x0, 0C8,D, 0x8, 0x,x9,0x1B, xDB, 0D,, x,0xE, 0xF,xF, 0D,01D, 0x1C, 0xDC,0x14, 0x4,0xD5, 0x15, 0D7, 0x17, 0x16, xD6,0xD2, x12, 0x13, 0xD3,0x1,0D1, 0x, 01, 0F0,x3, 0x1, 0x1, 033, 0xF, 0F2, 0x32,0x36, 0x, F7, 0x7,0xF5, 035, 034,0xF4, 0x3C, 0xFC, 0x, 0x3D,F, 0x3F, 03E, 0xFE,0xFA, 0xA,0x3B, xFB, x39,0xF9, 0xF8, 0x38,0, 0x8, 0xE9, x, 0xE, 02B, x2A, 0xEA, 0xE, 2, 0xF, 0xE,2D, 0D, 0xC,0x2,xE, 0x24, 025, 0xE5, 0x27, 0, 0x, 026,x22,xE2,03, x3, 0xE1, x21, x2, xE, xA0, 0x0, x1, 0xA,06, x,0A2, 0x62, 0x66,A, 0x7, 0x, 0xA5, 065,06, 0xA,xC, 0xAC,xAD, 06, 0x, 0x6F, 06E, xE, 0xAA, x6,06, 0xAB,x69, 0xA9,0, 08, 0x78, 0x8, xB9,0x7, 0xBB, x7B, 0xA,xA,0xBE, x7, 07F, xB,0x7D, 0BD, 0xC,0xC, 0x4, x74,0x75,0xB,0x77, 0, 0B6, x76,072,0xB2, 0xB3, x3,xB1, 0x71,0x0,x,x50, x9, 0x1,0x51, 0x93, 0x53,0x52, x92,0x6, x6, x7, 0x9,05, 95, 4, 0x54, 0x9, 0xC, 0x, 0xD,0xF, 0x9F, 0x, 0x5E,05A, 0x,0x9B, 05B, 0x99, 9,x8, 0x8, x8, 0x48, 0x9, 09,0xB, 0xB, 08,x4,0xE, xE, x8F, 0xF, 0x8, 0x4D, 0x4, 0x8,44,4, 05, x4, 0x87, 0x47, 6, 08, 82, 0x42,03,0x83,0x41, 0x, 0x80,0x0;WORD CR6_(BYT* phsg, D wDaaLn)BYTE chCRC=0xFF; /高RC字节初始化 BYE chRLo= 0x; / 低CR字节初始化 RDwdx;/ CRC循环中的索引 hile (wDaaLen-) /计算CC wndex= hCRL *pchMg+ ; chCRCo=hCRCHi hCRCHTabwIndex; chCi= chRCTalbewIndx ; etur(cRCHi ) |chCLo) ;措施一:列表法(简朴表)const D CRCTalbebs =x000,xCC01,0D80, x1400, 0xF01,x3C00, 080,0E401, 0A001, 0x6C00, 7800, 0xB4, 0x5000,09C01, 80, 000, ;WRD R16_(BTE*pchMs, RD wDten)WORD wCR 0xFFF; WO i; YTE chChar;or (i=0;i 4); wCC = wCTalAbs(chChr ) CC) 15 (wCRC 4); rtun wCRC;措施二:定义法 根据RC16OBS原理直接计算,算法简朴但对单片机计算压力大。WORD RC_(BYTE* pchs, WORD wDtaLe)BTE,chChar; OR wCC 0xFFFF; whle (wDataLen) char = *pchMsg; chhar = ByteInver(chh); wCRC= (WRD) chChr) ); o(i = 0; i 8; i+)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号