问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb串口通信程序实例

发布网友 发布时间:2022-04-26 07:09

我来回答

3个回答

热心网友 时间:2022-06-25 02:39

我也是自己摸索开发出来的每一款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 strdata  As 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 = strdata & "0" & Hex(PA(i))
                Else
                    strdata = strdata & Hex(PA(i))
                End If
            Next
            '回传的数据串:000304012600000AC4,这9字节根据通讯协议我们进行拆分
            '00为协议内回传机号,03为读命令,04为返回的数据长度 0126 为我要的温度数据为十六进制表达,下面我进行数据处理
            wd = CLng("&H" & Left(Right(strdata, 12), 4)) / 10 & "℃"   '根据通讯协议换算成温度
            Text1 = Text1 & vbCrLf & strdata & "  " & wd
            strdata = ""
   MSComm1.PortOpen = False  '关闭串口
 End Select
End Sub

Private Sub Timer1_Timer()
Call Command1_Click
End Sub


这是我的测试结果。

下面是通讯协议

这个是我的软件用检测精灵检测的结果

热心网友 时间:2022-06-25 02:39

你有更详细的通讯协议吗?我想开发1532H的上位机软件,有的话请发一下qiaozb@163.com!

热心网友 时间:2022-06-25 02:39

串口初始化
Private Sub Form
Load()
MSComm1.CommPort = 1
设置通信端口号为
COM1
MSComm1.Settings = "9600,n,8,1"
设置串口
1
参数
MSComm1.InputMode = 0
接收文本型数据
MSComm1.PortOpen = True
打开通信端口
1
End Sub
把字符通过串口发送出去
Private Sub Cmdsend
Click()
If Textsend.Text = "" Then
pp = MsgBox("
发送的数据不能为空!
Exit Sub
End If
MSComm1.Output = Trim(Textsend.Text)
For i = 1 To 20000000
Next i
End Sub
通过时钟控制来自动接收字符
Private Sub Timer1_
Timer()
Dim buf$
buf = Trim(MSComm1.Input)
将缓冲区内的数据读入
buf
变量中
If Len(buf) <> 0 Then
判断缓冲区内是否存在数据
TextReceive.Text = TextReceive.Text +Chr(13) + Chr(10) + buf
回车换行
End If
End Sub
关闭通信端口
停止程序运行
Private Sub Cmdquit
Click()
MSComm1.PortOpen = False
Unload Me
End Sub
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何解决小米电视开机死机? 涂色部分所占的分数是五分之一.××(判断对错) 18个⭐,平均分成5份。每份是多少,还剩几份。 18个⭐,平均分成5份。每份是多少,还剩几份? 有6个五角星,平均分成2份,1份是五角星总数的什么,有什么个怎么解答 捷信现金贷款不还有哪些后果?有人知道吗? 怎样在淘宝上开网店具体步骤和流程是什么 淘宝怎么开网店 开网店详细步骤介绍 跟女朋友是异地恋,我因为实在太忙了没办法去找她,但是她又不愿意来... ...女朋友异地恋已经3个月了,她有时候对我冷淡,我不知道该怎么办... 上海市虹口区开便利店现在可以办营业执照吗 VB串口通信上位机的问题 我们公司在虹口区一个商场开了一个茶叶店,现在要办理工商执照,想问一下办理流程 我是虹口区大连路,请问我办营业执照哪 彩票中奖后去兑奖,怎样防止验证时被调包? 再不看就晚了,亚马逊两步验证如何避免 如何避免qq的短信验证 如何避免微信安全验证骗局? 如何避开qq添加好友的验证问题 如何避免输入验证码? 注册QQ账号的时候,如何避免手机验证? 怎么才能避免手机验证码泄露? 如何避开qq身份验证 怎么才能避免不用安全验证? 网上购物的有没有听说过华强商城?它家的东西怎么样? 我是做电子元器件生意的,怎么在网上去卖这个? 华强公司的后台? 华强电子网里有些商户不在线,可以直接下单吗? 华强芯城和华强pcb的关系? 深圳华强九阳网络技术有限公司怎么样? 上海虹口区在哪可以申请到营业执照 VB 上位机 串口 MSP430 在虹口注册外资公司需要准备哪些资料 单片机与VB串口通信,数据传送! vb串口通信编程,请高手帮忙 虹口区注册公司去哪里 你好,我想问一下vb中上位机与下位机以前是串口通信怎么改成IP通信啊?谢谢了 上海虹口区公司工商执照注销流程及需要什么证件材料 哪位大写有用VB编写的上位机串口通信程序啊,与单片机通信用RS232编的底层程序。谢谢高手指点一下! 虹口区公司注册哪家好? vb如何使用串口通讯 在上海虹口区注册公司,有没有什么优惠政策呢? 求VB写的上位机程序,与51单片机之间进行通信 高手来帮帮忙啊!vb的串口通信 是关于VB程序的,编写一个上位机程序,读取甚至修改下位机的参数。通信规约为MODBUS Keil C51实现单片机与PC串口(上位机)vb如何编写 如果用VB编写一个上位机界面,如何与下位机进行通信,即数据的传输 工商银行网上转账帐号错了钱能退回来吗? VB串口通信怎么编写?? VB编程,做上位机。