包含vb.net串口定时发送的词条

VB.NET使用AxMSComm实现串口通信的发送读取问题?上面的代码看不出问题,如果初始化串口控件时已经注册了AxMSComm1_OnComm , 有数据接收应该能触发 , 至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发 。
建议分开调试 , 用一个通用的串口助手 , 如格西烽火串口助手之类的 , 分别调试你的上位机和下位机 。格西烽火串口助手能轻松的定制如你上面的发送数据 。
VB串口发送数组数据'字符表示的十六进制数转化为相应的整数,错误则返回 -1
Function ConvertHexChr(str As String) As Integer
Dim test As Integer
test = Asc(str)
If test = Asc("0") And test = Asc("9") Then
test = test - Asc("0")
ElseIf test = Asc("a") And test = Asc("f") Then
test = test - Asc("a")10
ElseIf test = Asc("A") And test = Asc("F") Then
test = test - Asc("A")10
Else
test = -1 '出错信息
End If
ConvertHexChr = test
End Function
'字符串表示的十六进制数据转化为相应的字节串,返回转化后的字节数
Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer
Dim HexData As Integer '十六进制(二进制)数据字节对应值
Dim hstr As String * 1 '高位字符
Dim lstr As String * 1 '低位字符
Dim HighHexData As Integer '高位数值
Dim LowHexData As Integer '低位数值
Dim HexDataLen As Integer '字节数
Dim StringLen As Integer '字符串长度
Dim Account As Integer
Dim n As Integer
'计数
'txtSend = "" '设初值
HexDataLen = 0
strHexToByteArray = 0
StringLen = Len(strText)
Account = StringLen \ 2
ReDim bytByte(Account)
For n = 1 To StringLen
Do '清除空格
hstr = Mid(strText, n, 1)
n = n1
If (n - 1)StringLen Then
HexDataLen = HexDataLen - 1
Exit For
End If
Loop While hstr = " "
Do
lstr = Mid(strText, n, 1)
n = n1
If (n - 1)StringLen Then
HexDataLen = HexDataLen - 1
【包含vb.net串口定时发送的词条】Exit For
End If
Loop While lstr = " "
n = n - 1
If nStringLen Then
HexDataLen = HexDataLen - 1
Exit For
End If
HighHexData = https://www.04ip.com/post/ConvertHexChr(hstr)
LowHexData = https://www.04ip.com/post/ConvertHexChr(lstr)
If HighHexData = https://www.04ip.com/post/-1 Or LowHexData = -1 Then'遇到非法字符中断转化
HexDataLen = HexDataLen - 1
Exit For
Else
HexData = https://www.04ip.com/post/HighHexData * 16LowHexData
bytByte(HexDataLen) = HexData
HexDataLen = HexDataLen1
End If
Next n
If HexDataLen0 Then '修正最后一次循环改变的数值
HexDataLen = HexDataLen - 1
ReDim Preserve bytByte(HexDataLen)
Else
ReDim Preserve bytByte(0)
End If
If StringLen = 0 Then '如果是空串,则不会进入循环体
strHexToByteArray = 0
Else
strHexToByteArray = HexDataLen1
End If
End Function
下面跟你介绍strHexToByteArray(strText As String, bytByte() As Byte)的功能 。
假如text内输入"ff fe aa 14 af"(引号内的包括空格)那么
strHexToByteArray=5
则byteByte()中byteByte(0)=ff byteByte(1)=fe byteByte(2)=aa
byteByte(3)=14 byteByte(4)=af
注意:假如输入你想输入1 , 则必须写01
我想有了这个函数会给你很大的帮助 。
VB.net 串口发送数据vb.net串口定时发送你可以这样操作:
Form1.BeginInvoke(Sub()
'一些操作
End Sub)
这样主线程就会放下手里的事情并执行Sub里的操作vb.net串口定时发送了
vb.net 串口收发数据有问题不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完 。还有在接收的时候最好定义好通信协议 , 比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据 。
老兄,提问还是给点悬赏分嘛,不要吝啬哪点分,知识是无价的,你给得越多 , 回答你的人才会越多 。
vb.net串口定时发送的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net串口定时发送的信息别忘了在本站进行查找喔 。

    推荐阅读