CRC校验原理与程序设计――(RS485总线系统应用之1)

时间:2018-08-17来源:网络

H61, HA1, H63, HA3, HA2, H62, H66, HA6, HA7, H67,_

HA5, H65, H64, HA4, H6C, HAC, HAD, H6D, HAF, H6F,_

H6E, HAE, HAA, H6A, H6B, HAB, H69, HA9, HA8, H68,_

H78, HB8, HB9, H79, HBB, H7B, H7A, HBA, HBE, H7E,_

H7F, HBF, H7D, HBD, HBC, H7C, HB4, H74, H75, HB5,_

H77, HB7, HB6, H76, H72, HB2, HB3, H73, HB1, H71,_

H70, HB0, H50, H90, H91, H51, H93, H53, H52, H92,_

H96, H56, H57, H97, H55, H95, H94, H54, H9C, H5C,_

H5D, H9D, H5F, H9F, H9E, H5E, H5A, H9A, H9B, H5B,_

H99, H59, H58, H98, H88, H48, H49, H89, H4B, H8B,_

H8A, H4A, H4E, H8E, H8F, H4F, H8D, H4D, H4C, H8C,_

H44, H84, H85, H45, H87, H47, H46, H86, H82, H42,_

H43, H83, H41, H81, H80, H40)

End Function

Function GetCRCLo(Ind As Long) As Byte ’CRC低位字节值表

GetCRCLo = Choose(Ind + 1,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H01, HC0, H80, H41,_

H00, HC1, H81, H40, H00, HC1, H81, H40, H01, HC0,_

H80, H41, H01, HC0, H80, H41, H00, HC1, H81, H40,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H00, HC1,_

H81, H40, H01, HC0, H80, H41, H01, HC0, H80, H41,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H00, HC1,_

H81, H40, H00, HC1, H81, H40, H01, HC0, H80, H41,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H00, HC1, H81, H40,_

H01, HC0, H80, H41, H01, HC0, H80, H41, H00, HC1,_

H81, H40, H01, HC0, H80, H41, H00, HC1, H81, H40,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H00, HC1, H81, H40,_

H01, HC0, H80, H41, H00, HC1, H81, H40, H01, HC0,_

H80, H41, H01, HC0, H80, H41, H00, HC1, H81, H40,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H01, HC0, H80, H41,_

H00, HC1, H81, H40, H00, HC1, H81, H40, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H01, HC0, H80, H41,_

H01, HC0, H80, H41, H00, HC1, H81, H40, H01, HC0,_

H80, H41, H00, HC1, H81, H40, H00, HC1, H81, H40,_

H01, HC0, H80, H41, H01, HC0, H80, H41, H00, HC1,_

H81, H40, H00, HC1, H81, H40, H01, HC0, H80, H41,_

H00, HC1, H81, H40, H01, HC0, H80, H41, H01, HC0,_

H80, H41, H00, HC1, H81, H40)

End Function

3.2 用计算法求CRC函数的程序

计算法的优点是程序编码量小,虽然比查表法速度偏慢,但当被校验的数据量不大时并不明显。

3.2.1 用VC编写的程序

unsigned short CRC16(unsigned char buf[], int n)

{

unsigned short crc = 0xffff ;

for(i = 0; i n; i++)

{

crc ^ = buf[i] ;

for(b = 0; b 8; b++)

{

bool f = crc 1 ;

crc >> = 1 ;

if(f)

crc ^ = 0xa001 ;

}

}

return(crc) ;

}

3.2.2 用VB编写的程序

Function CRC16(Data() As Byte, No As Integer, CRC16Lo As Byte, CRC16Hi As Byte) As String

1 2 3 4

关键词: CRC校验 RS485总线

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版