找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3731|回复: 0
收起左侧

VB调入计算机存在的串口

[复制链接]
ID:51773 发表于 2013-7-13 00:21 | 显示全部楼层 |阅读模式
在单片机串口通信开发中,使用上位机的人机交互界面丰富了用户体验,也能相应的扩展功能,弥补单片机单一的任务处理能力。使用单片机串口通信,接口简单,易于上位机编程的实现。如果在VisualBasic编写串口通信程序中,实现自动调入计算机存在的串口的功能,能大大方便了用户轻松的连接到想要的串口,这将是一个更好的用户体验。目的是使得用户不用大费周章去寻找串口号。实现这一功能并不难实现,下面阿浩介绍这一种方法。
1.JPG

VB与串口VisualBasic可以打开16个串口,但是通常计算机只配置一个或者两个串口,或者根本就没有串口,这时就需要我们使用串口转USB来支持。而且有时计算机的串口还可能被其他程序使用,因此,为了增强软件使用的鲁棒性,必须增加一段代码,用语庞端本计算机可以利用的有效串口数,如果串口在使用,也应加入可使用的行列来,只是在使用过程中要考虑其是否已经被其他程序打开,为了用户提示相应的信息。
关于VB编写串口通信程序详见 《PC机与单片机串行通信的实现》、《VB平台下串口通信的实现》

程序调入串口的方法调入计算机可用的串口,简单的方法是尝试去打开那个串口。简单来说,我们只需要对16个串口号进行逐个扫描。扫描的方法是:尝试打开该串口,串口可以打开,则加入列表中去,供用户连接;否则计算机不存在那个串口或者被其他程序占用时,VB将产生一个错误。

调入串口时错误的处理在调入串口的过程中,会产生一些错误。这时我们必须捕获错误并解决掉,否则程序无法往下执行。如果串口存在并被其他程序占用,如已处于打开状态,也会发生错误。我们需要编写一段错误处理函数,当发生错误的时候,进入错误处理函数。

程序代码:
'--------------------------------------------------------------------------'                            调入计算机存在的串口'版本:V1.0.2'程序设计:JH单片机'--------------------------------------------------------------------------Private Sub CommLoad()   On Error GoTo ErrLine   '如果错误,进入错误处理程序   Dim I As Integer        '定义可访问的串口数   Dim Counter As Integer  '用于记录经检查可以使用的串口号   Counter = 0             '计数器清零   For I = 1 To 16         '循检可能存在的16个串口     MSComm.CommPort = I   '将每个串口依次打开     MSComm.PortOpen = True                           '打开串口     If MSComm.PortOpen = True Then                   '如果打开成功,说明该串口可用       MSComm.PortOpen = False                        '检查完毕,关闭串口       CboSerialPort.AddItem "COM" + CStr(I), Counter   '将可用串口增加到组合框内       Counter = Counter + 1                            '记数器加1     End If   Next I   CboSerialPort.ListIndex = 0          '将第一个可用串口设为默认值  Exit Sub        '跳出程序ErrLine:   If Err.Number = 8005 Then            '如果在处理过程中有串口被其它程序打开,则应将其加入组合框内      CboSerialPort.AddItem "COM" + CStr(I), Count  '将可用串口增加到组合框内      Counter = Counter + 1  '计数器加1   End If   Resume Next      '回到出错入口处,继续执行循检串口程序!End Sub代码简述上述代码利用Err函数进行串口检查,首先对可能存在的16个串口进行扫描,逐个打开,如果串口能打开,说明其存在并且是空闲的,然后关闭该串口,将其加入端口号组合框内,并且计数器Counter加1,进行下一个端口扫描。反之端口不能打开,则会出现错误,转入错误处理函数进行处理。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表