串口发送数据.......
VB串口发送一组168个字节的数据,其中前6个字节是发送16进制,后面160个字节是发送16进制的ASCII码,第167个字节是全面166个16进制数据的校检和取低位,再转换成16进制的ASCII码,就占了2个字节,全部数据就是168个字节的数据了
这段代码可以实现发送数据了,但是好像稳定性不强,发送的数据可能会经常出错,是不是因为数据长度越大,出错的几率就越大?168个字节的数据发送出错几率大不大呢?
有什么办法可以同样实现以上数据的发送,让发送的数据都正确,或者说可不可以优化一下这段代码呢?
Private Sub clearDksj_Click()
If MSComm1.PortOpen = False Then
MsgBox "请先打开串口!", vbOKOnly + vbExclamation, "提示!"
End If
If MSComm1.PortOpen = False Then Exit Sub
Dim send_buf() As Byte
Dim Abyte(166) As Byte
Dim ss As Single
Dim XX As String
Abyte(0) = &H1F
Abyte(1) = &H6D
Abyte(2) = &H30
Abyte(3) = &H31
Abyte(4) = &H2A
Abyte(5) = &H2B
For I = 6 To 165
Abyte(I) = &H30
Next
For I = 0 To 165
ss1 = ss1 + Val(Abyte(I))
Next
Abyte(166) = ss1 Mod 256
XX = Right("00" & Hex(Abyte(166)), 2)
send_buf = StrConv(Chr(&H1F) & Chr(&H6D) & Chr(&H30) & Chr(&H31) & Chr(&H2A) & Chr(&H2B) & Right(String(160, "0"), 160) & Right("00" & Hex(Abyte(166)), 2), vbFromUnicode)
MSComm1.Output = send_buf
End Sub