紫外工控论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 4136|回复: 1

VB6.0 CRC校验程序

[复制链接]
冰糖 发表于 2009-7-11 20:43:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. 1、加入CRC校验的发送帧
  2. Private Sub Timer1_Timer() '发送数据
  3. Dim longCRC As Long '定义校验变量
  4. Dim aa(7) As Byte '定义动态数组
  5. aa(0) = &H1'地址
  6. aa(1) = &H3'功能码 读
  7. aa(2) = &H0'起始地址
  8. aa(3) = &HA
  9. aa(4) = &H0'数据点数
  10. aa(5) = &H8
  11. longCRC = CRC16(aa)'CRC校验
  12. aa(UBound(aa) - 1) = longCRC Mod 256
  13. aa(UBound(aa)) = longCRC \\ 256
  14. MSComm1.OutBufferCount = 0 '清空输出寄存器
  15. MSComm1.Output = aa'发送
  16. End Sub
  17. 2,CRC校验程序
  18. Function CRC16(Coun() As Byte) As Long
  19. Dim intBit, intTemp As Integer
  20. Dim lonCRC As Long
  21. lonCRC = &HFFFF&
  22. For intCnt = 0 To UBound(Coun) - 2
  23. lonCRC = lonCRC Xor Coun(intCnt)
  24. For intBit = 0 To 7
  25. intTemp = lonCRC Mod 2
  26. lonCRC = lonCRC \\ 2
  27. If intTemp = 1 Then
  28. lonCRC = lonCRC Xor &HA001&
  29. End If
  30. Next intBit
  31. Next intCnt
  32. CRC16 = lonCRC
  33. End Function
复制代码
zwk34 发表于 2024-1-11 14:50:39 | 显示全部楼层

谢谢楼主,支持共享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


--------------------------------------------------------------------------------------------------------------------
本站是工控技术交流站点,论坛内容均为网络收集或会员所发表,并不代表本站立场,会员拥有该内容的所有权力及责任!
本站内容如有侵犯您的版权,请按下面方式联系本站管理员,我们将及时删除处理
管理员:冰糖 QQ:5483695(请直击主题), Mail:admin#ziwai.net(#改成@) 其它非本人.
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

QQ|Archiver|手机版|小黑屋|紫外工控论坛. ( 苏ICP备11032118号-1 )

GMT+8, 2024-4-29 11:04 , Processed in 0.421878 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表