VB是可视化的编程,就是把一些图标控件拖到编程板上,然后用代码编写每个按钮的实现功能,(如:按下按钮会发生什么事)

vb在零几年的时候非常流行,近年来逐渐淡出人们的视野,但是用其来编写一些简单的上位机还是很方便的,可搭配单片机使用。如编写个串口助手,单片机检测到温湿度在上位机上显示等

言归正传,我就是编写了一个串口助手的简单上位机,来给大家分享一下。

程序中含有超多注释,用最直观的大白话解释清楚代码的意思,极利于学习。

首先看一下界面:

内容比较丰富,基本上和我们日常所用串口助手差不多。

介绍一下本程序重要的几部分,也是较难的几部分

一、串口连接部分

可自动识别电脑上的可用端口

我查了很多资料,发现其他人写的程序大多是将串口一一罗列,很不好,如下所示:

而本次介绍的程序和设备管理器中的端口号一一对应而不是单纯的罗列出来。

'函数功能:查询电脑可用的串口号,将其显示在组合框中
Private Sub Uart_Init()
Dim a
Dim temp%
temp = 0
For a = 1 To 16                                              '循环检查可能存在的16个串口MSComm1.CommPort = aOn Error Resume Next                                   '出现错误时,不会被打断(假如电脑上可用端口为COM1、COM2、COM4,若没有这行代码 当a=3时会报错)MSComm1.PortOpen = True                                '打开串口If MSComm1.PortOpen = True ThenCombo1_select.AddItem ("COM" & a), temp          '将检测可用的端口添加到组合框中temp = temp + 1MSComm1.PortOpen = FalseEnd If
Next

二、发送数据

采用定时器控件,可连续发送也可手动调用发送


'函数功能:发送数据(判断数据格式)
'如何实现:1、通过开启定时器连续发送; 2、直接调用该函数单词发送
Private Sub Timer1_Timer()Dim longth As IntegerIf Option3.Value = True ThenintOutMode = 1ElseintOutMode = 0End IfstrSendText = Text2.TextIf intOutMode = 0 ThenMSComm1.Output = strSendTextElselongth = strHexToByteArray(strSendText, bytSendByte())      '只要勾选了十六进制发送,Text2中的数据都是十六进制的ASCII码(文本形式)(如1的十六进制ASCII码为 31)If longth > 0 ThenMSComm1.Output = bytSendByteEnd IfEnd IfEnd Sub

三、接受数据

用MSComm控件的OnComm事件。当接收到数据时,就会触发OnComm事件,从而接收到数据。


'只要有通讯错误或事件发生时都会产生 OnComm 事件
Private Sub MSComm1_OnComm()Dim bytInput() As ByteDim intInputLen As IntegerDim n As IntegerDim teststring As StringSelect Case MSComm1.CommEventCase comEvReceive                            '接受事件中断If Option1.Value = True ThenMSComm1.InputMode = 1                    '1:十六进制显示ElseMSComm1.InputMode = 0                    '0:文本方式显示End IfintInputLen = MSComm1.InBufferCountbytInput = MSComm1.Input                 '提取接收缓冲区中的数据(数据格式:十进制的ascii码)If Option1.Value = True ThenFor n = 0 To intInputLen - 1Text1.Text = Trim(Text1.Text) & " " & IIf(Len(Hex$(bytInput(n))) > 1, Hex$(bytInput(n)), "0" & Hex$(bytInput(n)))    'hex函数:用十进制的ASCII码 返回十六进制的StringNext nElseteststring = bytInputText1.Text = Text1.Text + teststringEnd IfEnd SelectText1.SelStart = Len(Text1.Text) '光标移到最后,每次显示最后一行
End Sub

在这里重点强调一下MSComm控件。

该控件就时串口通讯最主要的控件,串口连接、串口通讯都是该控件。

当新加载工程时,在左侧控件窗口中是没有该控件的,如下图:

需要手动去添加:工程——>部件——>Microsoft Comm Control 6.0前面勾选上

完整开源工程:https://download.csdn.net/download/m0_59113542/76680304

下面这个也是用vb6.0做的温度采集控制系统,单片机测数据经过串口传输给上位机显示。

开源工程:https://download.csdn.net/download/m0_59113542/77294120

欢迎大家提出宝贵的意见。

有机会一起讨论代码,嘿嘿嘿!

vb6.0开发的上位机串口助手(自动识别电脑端口号、支持文本、十六进制发送)相关推荐

  1. LabVIEW开发的上位机界面在其它电脑分辨率下-界面窗口偏移显示问题解决

    目录 问题: 分析: 解决方式 1)编辑前面板边界适配对应的分辨率 2)编辑前面板窗口-窗口边界 3)编辑前面板窗口-保持窗口比例 4)设置VI属性--窗口运行时位置居中显示 参考 问题: 在基于La ...

  2. 串口调试助手,VB6.0开发

    1.开发的初衷 通常我们都是:在网上直接下载一个串口助手,可执行文件,直接使用,并无法得到其源码,在此我们提供了一个VB6.0开发的串口助手: (1)让你极速掌握串口开发的要点: (2)提供源码,并且 ...

  3. matlab上位机串口通信,MATLAB GUIDE 上位机串口通信开发 绘制图形

    本人因项目需求,需要开发这个串口通信上位机界面,用于实时绘制串口发送过来的数据.本人之前基本没使用过MATLAB,也就知道个zeros(100)这种在命令行窗口中输入的函数.至于MATLAB能开发图形 ...

  4. VB6.0开发的计算机串口通讯程序1

    VB6.0开发的计算机串口通讯程序1 下面介绍几个使用VB6.0开发的计算机串口通讯程序,这些程序可以自动发送16进制字符,并接收这些字符.这些程序可以在链接: 链接: https://pan.bai ...

  5. react android 串口,Maix Bit(K210) 与上位机串口通信

    串口通信 1.K210 UART 1.1 .串口通信函数 1.2 .常用函数 3.代码 4.效果展示 准备工具 K210开发板 USB转TTL串口 (俗称ISP烧录器) 串口助手 其实Maix Bit ...

  6. QT上位机串口实时温湿度显示

    STM32与上位机通信协议--UART协议: 串行通讯需要有通信协议 通信协议:规定发送与接收方,通信的方式与要求,数据的格式 由RXD和TXD两条线,由于没有时钟线,所以需要规定波特率 数据传输速率 ...

  7. 基于VS2015,MFC平台的上位机串口程序搭建详细教程(兼容debug x64、win32 、x86等解决方案平台)

    通常在32位编译环境下,我们可以通过插入MFC串口控件(MSCOMM32.OCX)的方式来实现串口通信,但是MSCOMM32.OCX不支持64位编译环境,也就是说,在x64解决方案平台下会报错.为此, ...

  8. C#上位机——串口发送

    C#上位机--串口发送 第一步:搭建框架 第二步:设置属性 第三步:编写代码,实现各个模块之间的联系和功能. using System; using System.Collections.Generi ...

  9. QT 篇 QT上位机串口编程

    QT 篇 QT上位机串口编程 最近因为项目需要,需要用到上位机,通过串口与上位机进行通讯,来上传和下发一些数据以及控制指令,所以用QT写了一个上位机,并记录下来,免得到时候要用又到处翻资料. QT版本 ...

最新文章

  1. objective-c系列-单例
  2. 基于yolo4和yolo3(pytorch)的口罩识别的对比
  3. 20211231 使用windows 10代理时,快捷设置“手动设置代理”的“不使用代理”条目
  4. java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...
  5. 2017.9.5.1.语文
  6. Java 如何设置时间_如何在Java中设置尊重用户操作系统设置的日期和时间格式
  7. 从苹果店员到机器学习工程师:学习AI,我是这样起步的
  8. 基于基因数据的神经网络模式分类研究
  9. java udp 接收16进制_java UDP通信中十六进制的接收与发送
  10. 最好的Javaweb教程JavaWeb架构演变-动力节点
  11. 在线出境游竞品分析报告:携程、途牛和马蜂窝
  12. ubuntu 挂载U盘 NTFS
  13. 初生牛犊不怕虎,管他呢! 干就是了。
  14. 操作系统—PV操作解决和尚打水问题
  15. 蜀山前传之二---------------第八回
  16. WATCH ME 2007
  17. 数据结构C语言版第二版第六章原创总结
  18. 模式识别技术漫谈(3)
  19. Modern Cpp 并发编程指南
  20. 事关年终奖,备受关注的项目绩效管理攻略来喽

热门文章

  1. apache java 搭建服务器搭建_Linux下Java Web服务器搭建(Apache2.2+2Tomcat6)
  2. 2022甘肃最新食品安全管理员模拟考试试题及答案
  3. 7月4日云栖精选夜读:从《网安法》出发,给企业安全管理者的五条建议
  4. 开源 SPL 消灭数以万计的数据库中间表
  5. 网站关键词排名下掉?快查下是否入坑了这6个SEO误区
  6. mysql数据库逆心_数据库系统基础笔记(7)--函数
  7. RTX 7900xt和RX 6950 XT 差距 RTX7900xt和RX6950 XT参数对比
  8. 低压LED驱动芯片推荐
  9. Synopsys SV lab guide—lab1
  10. 网络测试期末复习大纲