⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.bas

📁 Modbus串行通讯的CRC16校验和计算方法
💻 BAS
字号:
Attribute VB_Name = "CRC"
  Option Explicit
 
  Public auchCRCHi(255) As Byte
  Public auchCRCLo(255) As Byte


Sub CRCinit()
    
    auchCRCHi(0) = &H0
    auchCRCHi(1) = &HC1
    auchCRCHi(2) = &H81
    auchCRCHi(3) = &H40
    auchCRCHi(4) = &H1
    auchCRCHi(5) = &HC0
    auchCRCHi(6) = &H80
    auchCRCHi(7) = &H41
    auchCRCHi(8) = &H1
    auchCRCHi(9) = &HC0
    auchCRCHi(10) = &H80
    auchCRCHi(11) = &H41
    auchCRCHi(12) = &H0
    auchCRCHi(13) = &HC1
    auchCRCHi(14) = &H81
    
    auchCRCHi(15) = &H40
    auchCRCHi(16) = &H1
    auchCRCHi(17) = &HC0
    auchCRCHi(18) = &H80
    auchCRCHi(19) = &H41
    auchCRCHi(20) = &H0
    auchCRCHi(21) = &HC1
    auchCRCHi(22) = &H81
    auchCRCHi(23) = &H40
    auchCRCHi(24) = &H0
    auchCRCHi(25) = &HC1
    auchCRCHi(26) = &H81
    auchCRCHi(27) = &H40
    auchCRCHi(28) = &H1
    auchCRCHi(29) = &HC0
    
    auchCRCHi(30) = &H80
    auchCRCHi(31) = &H41
    auchCRCHi(32) = &H1
    auchCRCHi(33) = &HC0
    auchCRCHi(34) = &H80
    auchCRCHi(35) = &H41
    auchCRCHi(36) = &H0
    auchCRCHi(37) = &HC1
    auchCRCHi(38) = &H81
    auchCRCHi(39) = &H40
    auchCRCHi(40) = &H0
    auchCRCHi(41) = &HC1
    auchCRCHi(42) = &H81
    auchCRCHi(43) = &H40
    auchCRCHi(44) = &H1
    
    auchCRCHi(45) = &HC0
    auchCRCHi(46) = &H80
    auchCRCHi(47) = &H41
    auchCRCHi(48) = &H0
    auchCRCHi(49) = &HC1
    auchCRCHi(50) = &H81
    auchCRCHi(51) = &H40
    auchCRCHi(52) = &H1
    auchCRCHi(53) = &HC0
    auchCRCHi(54) = &H80
    auchCRCHi(55) = &H41
    auchCRCHi(56) = &H1
    auchCRCHi(57) = &HC0
    auchCRCHi(58) = &H80
    auchCRCHi(59) = &H41
    
    auchCRCHi(60) = &H0
    auchCRCHi(61) = &HC1
    auchCRCHi(62) = &H81
    auchCRCHi(63) = &H40
    auchCRCHi(64) = &H1
    auchCRCHi(65) = &HC0
    auchCRCHi(66) = &H80
    auchCRCHi(67) = &H41
    auchCRCHi(68) = &H0
    auchCRCHi(69) = &HC1
    auchCRCHi(70) = &H81
    auchCRCHi(71) = &H40
    auchCRCHi(72) = &H0
    auchCRCHi(73) = &HC1
    auchCRCHi(74) = &H81
    
    auchCRCHi(75) = &H40
    auchCRCHi(76) = &H1
    auchCRCHi(77) = &HC0
    auchCRCHi(78) = &H80
    auchCRCHi(79) = &H41
    auchCRCHi(80) = &H0
    auchCRCHi(81) = &HC1
    auchCRCHi(82) = &H81
    auchCRCHi(83) = &H40
    auchCRCHi(84) = &H1
    auchCRCHi(85) = &HC0
    auchCRCHi(86) = &H80
    auchCRCHi(87) = &H41
    auchCRCHi(88) = &H1
    auchCRCHi(89) = &HC0
    
    auchCRCHi(90) = &H80
    auchCRCHi(91) = &H41
    auchCRCHi(92) = &H0
    auchCRCHi(93) = &HC1
    auchCRCHi(94) = &H81
    auchCRCHi(95) = &H40
    auchCRCHi(96) = &H0
    auchCRCHi(97) = &HC1
    auchCRCHi(98) = &H81
    auchCRCHi(99) = &H40
    auchCRCHi(100) = &H1
    auchCRCHi(101) = &HC0
    auchCRCHi(102) = &H80
    auchCRCHi(103) = &H41
    auchCRCHi(104) = &H1
    
    auchCRCHi(105) = &HC0
    auchCRCHi(106) = &H80
    auchCRCHi(107) = &H41
    auchCRCHi(108) = &H0
    auchCRCHi(109) = &HC1
    auchCRCHi(110) = &H81
    auchCRCHi(111) = &H40
    auchCRCHi(112) = &H1
    auchCRCHi(113) = &HC0
    auchCRCHi(114) = &H80
    auchCRCHi(115) = &H41
    auchCRCHi(116) = &H0
    auchCRCHi(117) = &HC1
    auchCRCHi(118) = &H81
    auchCRCHi(119) = &H40
    
    auchCRCHi(120) = &H0
    auchCRCHi(121) = &HC1
    auchCRCHi(122) = &H81
    auchCRCHi(123) = &H40
    auchCRCHi(124) = &H1
    auchCRCHi(125) = &HC0
    auchCRCHi(126) = &H80
    auchCRCHi(127) = &H41
    auchCRCHi(128) = &H1
    auchCRCHi(129) = &HC0
    auchCRCHi(130) = &H80
    auchCRCHi(131) = &H41
    auchCRCHi(132) = &H0
    auchCRCHi(133) = &HC1
    auchCRCHi(134) = &H81
    
    auchCRCHi(135) = &H40
    auchCRCHi(136) = &H0
    auchCRCHi(137) = &HC1
    auchCRCHi(138) = &H81
    auchCRCHi(139) = &H40
    auchCRCHi(140) = &H1
    auchCRCHi(141) = &HC0
    auchCRCHi(142) = &H80
    auchCRCHi(143) = &H41
    auchCRCHi(144) = &H0
    auchCRCHi(145) = &HC1
    auchCRCHi(146) = &H81
    auchCRCHi(147) = &H40
    auchCRCHi(148) = &H1
    auchCRCHi(149) = &HC0
    
    auchCRCHi(150) = &H80
    auchCRCHi(151) = &H41
    auchCRCHi(152) = &H1
    auchCRCHi(153) = &HC0
    auchCRCHi(154) = &H80
    auchCRCHi(155) = &H41
    auchCRCHi(156) = &H0
    auchCRCHi(157) = &HC1
    auchCRCHi(158) = &H81
    auchCRCHi(159) = &H40
    auchCRCHi(160) = &H0
    auchCRCHi(161) = &HC1
    auchCRCHi(162) = &H81
    auchCRCHi(163) = &H40
    auchCRCHi(164) = &H1
    
    auchCRCHi(165) = &HC0
    auchCRCHi(166) = &H80
    auchCRCHi(167) = &H41
    auchCRCHi(168) = &H1
    auchCRCHi(169) = &HC0
    auchCRCHi(170) = &H80
    auchCRCHi(171) = &H41
    auchCRCHi(172) = &H0
    auchCRCHi(173) = &HC1
    auchCRCHi(174) = &H81
    auchCRCHi(175) = &H40
    auchCRCHi(176) = &H1
    auchCRCHi(177) = &HC0
    auchCRCHi(178) = &H80
    auchCRCHi(179) = &H41
    
    auchCRCHi(180) = &H0
    auchCRCHi(181) = &HC1
    auchCRCHi(182) = &H81
    auchCRCHi(183) = &H40
    auchCRCHi(184) = &H0
    auchCRCHi(185) = &HC1
    auchCRCHi(186) = &H81
    auchCRCHi(187) = &H40
    auchCRCHi(188) = &H1
    auchCRCHi(189) = &HC0
    auchCRCHi(190) = &H80
    auchCRCHi(191) = &H41
    auchCRCHi(192) = &H0
    auchCRCHi(193) = &HC1
    auchCRCHi(194) = &H81
    
    auchCRCHi(195) = &H40
    auchCRCHi(196) = &H1
    auchCRCHi(197) = &HC0
    auchCRCHi(198) = &H80
    auchCRCHi(199) = &H41
    auchCRCHi(200) = &H1
    auchCRCHi(201) = &HC0
    auchCRCHi(202) = &H80
    auchCRCHi(203) = &H41
    auchCRCHi(204) = &H0
    auchCRCHi(205) = &HC1
    auchCRCHi(206) = &H81
    auchCRCHi(207) = &H40
    auchCRCHi(208) = &H1
    auchCRCHi(209) = &HC0
    
    auchCRCHi(210) = &H80
    auchCRCHi(211) = &H41
    auchCRCHi(212) = &H0
    auchCRCHi(213) = &HC1
    auchCRCHi(214) = &H81
    auchCRCHi(215) = &H40
    auchCRCHi(216) = &H0
    auchCRCHi(217) = &HC1
    auchCRCHi(218) = &H81
    auchCRCHi(219) = &H40
    auchCRCHi(220) = &H1
    auchCRCHi(221) = &HC0
    auchCRCHi(222) = &H80
    auchCRCHi(223) = &H41
    auchCRCHi(224) = &H1
    
    auchCRCHi(225) = &HC0
    auchCRCHi(226) = &H80
    auchCRCHi(227) = &H41
    auchCRCHi(228) = &H0
    auchCRCHi(229) = &HC1
    auchCRCHi(230) = &H81
    auchCRCHi(231) = &H40
    auchCRCHi(232) = &H0
    auchCRCHi(233) = &HC1
    auchCRCHi(234) = &H81
    auchCRCHi(235) = &H40
    auchCRCHi(236) = &H1
    auchCRCHi(237) = &HC0
    auchCRCHi(238) = &H80
    auchCRCHi(239) = &H41
    
    auchCRCHi(240) = &H0
    auchCRCHi(241) = &HC1
    auchCRCHi(242) = &H81
    auchCRCHi(243) = &H40
    auchCRCHi(244) = &H1
    auchCRCHi(245) = &HC0
    auchCRCHi(246) = &H80
    auchCRCHi(247) = &H41
    auchCRCHi(248) = &H1
    auchCRCHi(249) = &HC0
    auchCRCHi(250) = &H80
    auchCRCHi(251) = &H41
    auchCRCHi(252) = &H0
    auchCRCHi(253) = &HC1
    auchCRCHi(254) = &H81
    
    auchCRCHi(255) = &H40
    
    
    auchCRCLo(0) = &H0
    auchCRCLo(1) = &HC0
    auchCRCLo(2) = &HC1
    auchCRCLo(3) = &H1
    auchCRCLo(4) = &HC3
    auchCRCLo(5) = &H3
    auchCRCLo(6) = &H2
    auchCRCLo(7) = &HC2
    auchCRCLo(8) = &HC6
    auchCRCLo(9) = &H6
    auchCRCLo(10) = &H7
    auchCRCLo(11) = &HC7
    auchCRCLo(12) = &H5
    auchCRCLo(13) = &HC5
    auchCRCLo(14) = &HC4
    
    auchCRCLo(15) = &H4
    auchCRCLo(16) = &HCC
    auchCRCLo(17) = &HC
    auchCRCLo(18) = &HD
    auchCRCLo(19) = &HCD
    auchCRCLo(20) = &HF
    auchCRCLo(21) = &HCF
    auchCRCLo(22) = &HCE
    auchCRCLo(23) = &HE
    auchCRCLo(24) = &HA
    auchCRCLo(25) = &HCA
    auchCRCLo(26) = &HCB
    auchCRCLo(27) = &HB
    auchCRCLo(28) = &HC9
    auchCRCLo(29) = &H9
    
    auchCRCLo(30) = &H8
    auchCRCLo(31) = &HC8
    auchCRCLo(32) = &HD8
    auchCRCLo(33) = &H18
    auchCRCLo(34) = &H19
    auchCRCLo(35) = &HD9
    auchCRCLo(36) = &H1B
    auchCRCLo(37) = &HDB
    auchCRCLo(38) = &HDA
    auchCRCLo(39) = &H1A
    auchCRCLo(40) = &H1E
    auchCRCLo(41) = &HDE
    auchCRCLo(42) = &HDF
    auchCRCLo(43) = &H1F
    auchCRCLo(44) = &HDD

    auchCRCLo(45) = &H1D
    auchCRCLo(46) = &H1C
    auchCRCLo(47) = &HDC
    auchCRCLo(48) = &H14
    auchCRCLo(49) = &HD4
    auchCRCLo(50) = &HD5
    auchCRCLo(51) = &H15
    auchCRCLo(52) = &HD7
    auchCRCLo(53) = &H17
    auchCRCLo(54) = &H16
    auchCRCLo(55) = &HD6
    auchCRCLo(56) = &HD2
    auchCRCLo(57) = &H12
    auchCRCLo(58) = &H13
    auchCRCLo(59) = &HD3

    auchCRCLo(60) = &H11
    auchCRCLo(61) = &HD1
    auchCRCLo(62) = &HD0
    auchCRCLo(63) = &H10
    auchCRCLo(64) = &HF0
    auchCRCLo(65) = &H30
    auchCRCLo(66) = &H31
    auchCRCLo(67) = &HF1
    auchCRCLo(68) = &H33
    auchCRCLo(69) = &HF3
    auchCRCLo(70) = &HF2
    auchCRCLo(71) = &H32
    auchCRCLo(72) = &H36
    auchCRCLo(73) = &HF6
    auchCRCLo(74) = &HF7
    
    auchCRCLo(75) = &H37
    auchCRCLo(76) = &HF5
    auchCRCLo(77) = &H35
    auchCRCLo(78) = &H34
    auchCRCLo(79) = &HF4
    auchCRCLo(80) = &H3C
    auchCRCLo(81) = &HFC
    auchCRCLo(82) = &HFD
    auchCRCLo(83) = &H3D
    auchCRCLo(84) = &HFF
    auchCRCLo(85) = &H3F
    auchCRCLo(86) = &H3E
    auchCRCLo(87) = &HFE
    auchCRCLo(88) = &HFA
    auchCRCLo(89) = &H3A
    
    auchCRCLo(90) = &H3B
    auchCRCLo(91) = &HFB
    auchCRCLo(92) = &H39
    auchCRCLo(93) = &HF9
    auchCRCLo(94) = &HF8
    auchCRCLo(95) = &H38
    auchCRCLo(96) = &H28
    auchCRCLo(97) = &HE8
    auchCRCLo(98) = &HE9
    auchCRCLo(99) = &H29
    auchCRCLo(100) = &HEB
    auchCRCLo(101) = &H2B
    auchCRCLo(102) = &H2A
    auchCRCLo(103) = &HEA
    auchCRCLo(104) = &HEE

    auchCRCLo(105) = &H2E
    auchCRCLo(106) = &H2F
    auchCRCLo(107) = &HEF
    auchCRCLo(108) = &H2D
    auchCRCLo(109) = &HED
    auchCRCLo(110) = &HEC
    auchCRCLo(111) = &H2C
    auchCRCLo(112) = &HE4
    auchCRCLo(113) = &H24
    auchCRCLo(114) = &H25
    auchCRCLo(115) = &HE5
    auchCRCLo(116) = &H27
    auchCRCLo(117) = &HE7
    auchCRCLo(118) = &HE6
    auchCRCLo(119) = &H26
    
    auchCRCLo(120) = &H22
    auchCRCLo(121) = &HE2
    auchCRCLo(122) = &HE3
    auchCRCLo(123) = &H23
    auchCRCLo(124) = &HE1
    auchCRCLo(125) = &H21
    auchCRCLo(126) = &H20
    auchCRCLo(127) = &HE0
    auchCRCLo(128) = &HA0
    auchCRCLo(129) = &H60
    auchCRCLo(130) = &H61
    auchCRCLo(131) = &HA1
    auchCRCLo(132) = &H63
    auchCRCLo(133) = &HA3
    auchCRCLo(134) = &HA2
    
    auchCRCLo(135) = &H62
    auchCRCLo(136) = &H66
    auchCRCLo(137) = &HA6
    auchCRCLo(138) = &HA7
    auchCRCLo(139) = &H67
    auchCRCLo(140) = &HA5
    auchCRCLo(141) = &H65
    auchCRCLo(142) = &H64
    auchCRCLo(143) = &HA4
    auchCRCLo(144) = &H6C
    auchCRCLo(145) = &HAC
    auchCRCLo(146) = &HAD
    auchCRCLo(147) = &H6D
    auchCRCLo(148) = &HAF
    auchCRCLo(149) = &H6F
    
    auchCRCLo(150) = &H6E
    auchCRCLo(151) = &HAE
    auchCRCLo(152) = &HAA
    auchCRCLo(153) = &H6A
    auchCRCLo(154) = &H6B
    auchCRCLo(155) = &HAB
    auchCRCLo(156) = &H69
    auchCRCLo(157) = &HA9
    auchCRCLo(158) = &HA8
    auchCRCLo(159) = &H68
    auchCRCLo(160) = &H78
    auchCRCLo(161) = &HB8
    auchCRCLo(162) = &HB9
    auchCRCLo(163) = &H79
    auchCRCLo(164) = &HBB
    
    auchCRCLo(165) = &H7B '''
    auchCRCLo(166) = &H7A
    auchCRCLo(167) = &HBA
    auchCRCLo(168) = &HBE
    auchCRCLo(169) = &H7E
    auchCRCLo(170) = &H7F
    auchCRCLo(171) = &HBF
    auchCRCLo(172) = &H7D
    auchCRCLo(173) = &HBD
    auchCRCLo(174) = &HBC
    auchCRCLo(175) = &H7C
    auchCRCLo(176) = &HB4
    auchCRCLo(177) = &H74
    auchCRCLo(178) = &H75
    auchCRCLo(179) = &HB5
    
    auchCRCLo(180) = &H77
    auchCRCLo(181) = &HB7
    auchCRCLo(182) = &HB6
    auchCRCLo(183) = &H76
    auchCRCLo(184) = &H72
    auchCRCLo(185) = &HB2
    auchCRCLo(186) = &HB3
    auchCRCLo(187) = &H73
    auchCRCLo(188) = &HB1
    auchCRCLo(189) = &H71
    auchCRCLo(190) = &H70
    auchCRCLo(191) = &HB0
    auchCRCLo(192) = &H50
    auchCRCLo(193) = &H90
    auchCRCLo(194) = &H91
    
    auchCRCLo(195) = &H51
    auchCRCLo(196) = &H93
    auchCRCLo(197) = &H53
    auchCRCLo(198) = &H52
    auchCRCLo(199) = &H92
    auchCRCLo(200) = &H96
    auchCRCLo(201) = &H56
    auchCRCLo(202) = &H57
    auchCRCLo(203) = &H97
    auchCRCLo(204) = &H55
    auchCRCLo(205) = &H95
    auchCRCLo(206) = &H94
    auchCRCLo(207) = &H54
    auchCRCLo(208) = &H9C
    auchCRCLo(209) = &H5C
    
    auchCRCLo(210) = &H5D
    auchCRCLo(211) = &H9D
    auchCRCLo(212) = &H5F
    auchCRCLo(213) = &H9F
    auchCRCLo(214) = &H9E
    auchCRCLo(215) = &H5E
    auchCRCLo(216) = &H5A
    auchCRCLo(217) = &H9A
    auchCRCLo(218) = &H9B
    auchCRCLo(219) = &H5B
    auchCRCLo(220) = &H99
    auchCRCLo(221) = &H59
    auchCRCLo(222) = &H58
    auchCRCLo(223) = &H98
    auchCRCLo(224) = &H88
    
    auchCRCLo(225) = &H48
    auchCRCLo(226) = &H49
    auchCRCLo(227) = &H89
    auchCRCLo(228) = &H4B
    auchCRCLo(229) = &H8B
    auchCRCLo(230) = &H8A
    auchCRCLo(231) = &H4A
    auchCRCLo(232) = &H4E
    auchCRCLo(233) = &H8E
    auchCRCLo(234) = &H8F
    auchCRCLo(235) = &H4F
    auchCRCLo(236) = &H8D
    auchCRCLo(237) = &H4D
    auchCRCLo(238) = &H4C
    auchCRCLo(239) = &H8C
    
    auchCRCLo(240) = &H44
    auchCRCLo(241) = &H84
    auchCRCLo(242) = &H85
    auchCRCLo(243) = &H45
    auchCRCLo(244) = &H87
    auchCRCLo(245) = &H47
    auchCRCLo(246) = &H46
    auchCRCLo(247) = &H86
    auchCRCLo(248) = &H82
    auchCRCLo(249) = &H42
    auchCRCLo(250) = &H43
    auchCRCLo(251) = &H83
    auchCRCLo(252) = &H41
    auchCRCLo(253) = &H81
    auchCRCLo(254) = &H80
    
    auchCRCLo(255) = &H40
    
    End Sub

Sub CRC16(ByRef checkstr() As Byte, ByVal ln As Integer) ', ByRef CRCHi As Byte, ByRef CRCLo As Byte)

    Dim onechr, uchCRCHi, uchCRCLo, uIndex As Byte
    Dim i As Integer
    
    uchCRCHi = &HFF
    uchCRCLo = &HFF
    
    For i = 0 To ln
        'onechr = Val(Asc(Mid$(checkstr, i, 1)))
        onechr = checkstr(i)
        uIndex = uchCRCHi Xor onechr
        uchCRCHi = uchCRCLo Xor auchCRCHi(uIndex)
        uchCRCLo = auchCRCLo(uIndex)
    Next
    
    'CRCHi = uchCRCHi
    'CRCLo = uchCRCLo

    checkstr(ln + 1) = uchCRCHi
    checkstr(ln + 2) = uchCRCLo
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -