新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CRC校驗(yàn)原理與程序設(shè)計(jì)――(RS485總線系統(tǒng)應(yīng)用之1)

        CRC校驗(yàn)原理與程序設(shè)計(jì)――(RS485總線系統(tǒng)應(yīng)用之1)

        作者: 時(shí)間:2018-08-17 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201808/387091.htm

        0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,

        0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 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, 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, 0x9A, 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 } ;

        static unsigned char auchCRCLo[] = {

        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, 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, 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, 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, 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, 0x01, 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 } ;

        3.1.2 用VB編寫的程序

        Private Function CRC16(data() As Byte) As String

        Dim CRC16Hi As Byte

        Dim CRC16Lo As Byte

        CRC16Hi = HFF

        CRC16Lo = HFF

        Dim i As Integer

        Dim iIndex As Long

        For i = 0 To UBound(data)

        iIndex = CRC16Lo Xor data(i)

        CRC16Lo = CRC16Hi Xor GetCRCLo(iIndex) ’低位處理

        CRC16Hi = GetCRCHi(iIndex) ’高位處理

        Next i

        Dim ReturnData(1) As Byte

        ReturnData(0) = CRC16Hi ’CRC高位

        ReturnData(1) = CRC16Lo ’CRC低位

        CRC16 = ReturnData

        End Function

        Function GetCRCHi(Ind As Long) As Byte ’CRC高位字節(jié)值表

        GetCRCHi = Choose(Ind + 1,_

        H00, HC0, HC1, H01, HC3, H03, H02, HC2, HC6, H06,_

        H07, HC7, H05, HC5, HC4, H04, HCC, H0C, H0D, HCD,_

        H0F, HCF, HCE, H0E, H0A, HCA, HCB, H0B, HC9, H09,_

        H08, HC8, HD8, H18, H19, HD9, H1B, HDB, HDA, H1A,_

        H1E, HDE, HDF, H1F, HDD, H1D, H1C, HDC, H14, HD4,_

        HD5, H15, HD7, H17, H16, HD6, HD2, H12, H13, HD3,_

        H11, HD1, HD0, H10, HF0, H30, H31, HF1, H33, HF3,_

        HF2, H32, H36, HF6, HF7, H37, HF5, H35, H34, HF4,_

        H3C, HFC, HFD, H3D, HFF, H3F, H3E, HFE, HFA, H3A,_

        H3B, HFB, H39, HF9, HF8, H38, H28, HE8, HE9, H29,_

        HEB, H2B, H2A, HEA, HEE, H2E, H2F, HEF, H2D, HED,_

        HEC, H2C, HE4, H24, H25, HE5, H27, HE7, HE6, H26,_

        H22, HE2, HE3, H23, HE1, H21, H20, HE0, HA0, H60,_



        關(guān)鍵詞: CRC校驗(yàn) RS485總線

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 青海省| 杨浦区| 贺兰县| 电白县| 株洲市| 石家庄市| 乌海市| 壤塘县| 石楼县| 邵阳县| 陕西省| 遂川县| 呈贡县| 武威市| 专栏| 富裕县| 应城市| 沅陵县| 钟祥市| 乾安县| 宣武区| 册亨县| 海丰县| 东台市| 石河子市| 师宗县| 南通市| 册亨县| 金门县| 板桥市| 祁门县| 同心县| 南靖县| 甘谷县| 静海县| 延寿县| 永春县| 郸城县| 双牌县| 柳州市| 乐昌市|