新聞中心

        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)閉
        主站蜘蛛池模板: 子长县| 平顶山市| 蓬莱市| 长垣县| 资兴市| 东平县| 东兰县| 镶黄旗| 宁安市| 綦江县| 华阴市| 芒康县| 锦屏县| 通道| 马公市| 克拉玛依市| 英德市| 全南县| 长泰县| 桐庐县| 珲春市| 兴国县| 乌拉特前旗| 松江区| 遵化市| 抚宁县| 临武县| 化德县| 肇庆市| 巍山| 尉氏县| 张掖市| 福鼎市| 聂荣县| 新沂市| 诸暨市| 苍山县| 彭泽县| 庆安县| 高青县| 宜昌市|