网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月08日漏签0天
vb吧 关注:156,053贴子:1,166,227
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 11回复贴,共1页
<<返回vb吧
>0< 加载中...

求助..关于CRC校验.....

  • 只看楼主
  • 收藏

  • 回复
  • 8255842a
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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
Private Sub Command1_Click()
Dim SendStr(6) As Byte
SendStr(0) = &H11
SendStr(1) = &H3 '读多个字的命令代码
SendStr(2) = &H3 '起始地址高字节
SendStr(3) = &HEB '起始地址低字节
SendStr(4) = &H0 '数据长度高字节
SendStr(5) = &H3 '数据长度低字节?????
Call CRC16(SendStr(), 5) 'CRC计算
SendStr(6) = ReturnData
T1 = SendStr(6)
End Sub


  • oshi001
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
发个代码表达什么?


2026-01-08 20:02:10
广告
不感兴趣
开通SVIP免广告
  • 8255842a
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求个VB下,CRC校验代码,网上有一堆,找着乱乱的


  • 璐村惂鐢ㄦ埛_0748V5Z馃惥
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那我就顶一下,然后学习……


  • 8255842a
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Function CRC16(data() As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器
Dim CL As Byte, CH As Byte '多项式码&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim I As Integer
Dim Flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H1
CH = &HA0
For I = 0 To 8
CRC16Lo = CRC16Lo Xor data(I) '每一个数据与CRC寄存器进行异或
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1
CRC16Lo = CRC16Lo Or &H80 '则低位字节右移后前面补1
End If '否则自动补0
If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next Flag
Next I
Dim ReturnData(1) As Byte
ReturnData(0) = CRC16Hi 'CRC高位
ReturnData(1) = CRC16Lo 'CRC低位
asd = Right("00" + Hex(CRC16Lo), 2) + Right("00" + Hex(CRC16Hi), 2)
End Function
用这个倒是可以,,就是不知道要怎么调用这个自己定义的东西
用命令按钮...代码一堆,,&H后面的0也没有了...
Private Sub Command1_Click()
Dim data(0 To 8) As Byte
data(0) = &H11
data(1) = &H3 (这里应该是&H03)
data(2) = &H6
data(3) = &H17
data(4) = &H70
data(5) = &HB
data(6) = &HB8
data(7) = &H3
data(8) = &HE8
Call CRC16(data)
'Text2 = ""
For I = 0 To 8
Text2 = Text2 & Hex(data(I))
Next
Text2 = Text2 & Text1
End Sub


  • 璐村惂鐢ㄦ埛_0748V5Z馃惥
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示