关于vb.net串口助手实例的信息

vb.net 读取扫描枪USB接口数据的实例USB比较难抓数据vb.net串口助手实例,建议是USB模拟串口vb.net串口助手实例,或者直接就是串口,这样数据比较好抓 。
USB上传模式是鼠标光标在哪数据就上传在哪 , 所以vb.net串口助手实例你抓USB的数据的很难vb.net串口助手实例!
X猫-思刊办公专营店
vb串口通信程序实例我也是自己摸索开发出来的每一款VBtoCOM通讯,有具体的思路如下:
给你推荐一个工具“com串口测试工具 ComTone V1.0 中文绿色版”
1、打开你的噪音计的测试软件,调整好串口号、通讯频率等等,我用温度计举例说明 。
开始查询后有返回数值,这个Receive:就是返回的数值000304012200004b05,
打开串口监视精灵,监视软件的com口事件:
这里面的Write是测试软件发出的查询指令 , read是设备返回的数据指令
Private Sub Command1_Click() '发送指令
If Not MSComm1.PortOpen Then
MSComm1.CommPort = 7 '串口为7
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferCount = 0 '清除接收缓冲区
MSComm1.OutBufferCount = 0 '清除发送缓冲区
MSComm1.InputMode = comInputModeBinary '二进制接收
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
MSComm1.PortOpen = True'打开串口
MSComm1.RTSEnable = False '置为发送状态
End If
Dim pu() As Byte
Dim strdataAs String
Dim crc_js() As Byte
ReDim pu(7)'这个数组是8位的查询指令
pu(0) = "H00" '温度计地址
pu(1) = "H03" '查询指令
pu(2) = "H00" '2、3为温度计地址
pu(3) = "H00" '2、3为温度计地址
pu(4) = "H00" '4、5为读取寄存器长度
pu(5) = "H02" '4、5为读取寄存器长度
pu(6) = "HC5" '6、7为CRC校验码 因为我们不知道设备的CRC校验规则所以用测试软件产生的校验码
pu(7) = "HDA" '6、7为CRC校验码
MSComm1.Output = pu
'不做任何事情,仅仅允许其它应用程序处理它们的事件 。
DoEvents
MSComm1.InBufferCount = 0 '清除接收缓冲区
MSComm1.RThreshold = 9 '所要接收的数据长度,我们通过COM检测精灵看到了回传数据一共是9字节
MSComm1.RTSEnable = True '转为接收状态
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen Then
MSComm1.PortOpen = False'关闭串口
End If
Timer1.Enabled = False
End Sub
Private Sub MSComm1_OnComm() 'COM事件
Dim PA() As Byte
Dim PB As String
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
PB = MSComm1.Input
PA() = PB
For i = 0 To UBound(PA())
'Print "PA("i")"; PA(i)
If Len(Hex(PA(i))) = 1 Then
strdata = https://www.04ip.com/post/strdata"0"Hex(PA(i))
Else
strdata = https://www.04ip.com/post/strdataHex(PA(i))
End If
Next
'回传的数据串:000304012600000AC4 , 这9字节根据通讯协议我们进行拆分
'00为协议内回传机号 , 03为读命令 , 04为返回的数据长度 0126 为我要的温度数据为十六进制表达 , 下面我进行数据处理
wd = CLng("H"Left(Right(strdata, 12), 4)) / 10"℃"'根据通讯协议换算成温度
Text1 = Text1vbCrLfstrdata""wd
strdatahttps://www.04ip.com/post/= ""
MSComm1.PortOpen = False'关闭串口
End Select
End Sub
Private Sub Timer1_Timer()
Call Command1_Click
End Sub
这是我的测试结果 。
下面是通讯协议
这个是我的软件用检测精灵检测的结果
请教用VB.NET向串口发送16进制的数的方法应该是你的转换格式不正确,下面代码就是将文本框中以一个空格隔开的十六进制转为字节的代码,文本框中数字格式为:01 02 03
Dim TestArray() As String = Split(TextBox1.Text)
Dim hexBytes() As Byte
ReDim hexBytes(TestArray.Length - 1)
Dim i As Integer
For i = 0 To TestArray.Length - 1
hexBytes(i) = Val("h"TestArray(i))
Next
SerialPort.Write(hexBytes, 0, hexBytes.Length)
如果有问题可以再联系 。
VB.net实例1 生成txt文件 。
DimSaveFileDialog1AsNewSaveFileDialog() '创建一个保存对话框
SaveFileDialog1.Filter ="txt files (*.txt)|*.txt" '设置扩展名
IfSaveFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OKThen '如果确定保存
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.Filename, Textbox1.Text,False) '保存文本,False表示不追加文本vb.net串口助手实例,直接覆盖其内容
EndIf
原文链接vb.net串口助手实例:
vb.net SerialPort控件接收数据问题,用串口调试助手发数据,只有第一次可以正常接收你定义的委托需要带参数才行,DataReceived事件中没有接收数据代码,下面的代码经测试可用
Delegate Sub SetTextCallback(ByVal InputString As String)
Private Sub ShowString(ByVal comData As String)
txt_Rect.Text= comData'将收到的数据入接收文字框中
txt_Rect.SelectionStart = txt_Rect.Text.Length
txt_Rect.ScrollToCaret()
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim inData As String = SerialPort1.ReadExisting
Dim d As New SetTextCallback(AddressOf ShowString)
BeginInvoke(d, inData)
End Sub
VB.NET使用AxMSComm实现串口通信的发送读取问题?上面的代码看不出问题,如果初始化串口控件时已经注册了AxMSComm1_OnComm , 有数据接收应该能触发,至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令 , 是否已经有响应数据回发 。
建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的 , 分别调试你的上位机和下位机 。格西烽火串口助手能轻松的定制如你上面的发送数据 。
【关于vb.net串口助手实例的信息】vb.net串口助手实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net串口助手实例的信息别忘了在本站进行查找喔 。

    推荐阅读