怎样用VB来判断串口是否存在,是否被占用?是否有数据输入?

如题。... 如题。 展开
 我来答
zdingyun
2009-04-27 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48170
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
如下是检测串口是否存在,是否被占用的代码:
Option Explicit
Dim a As Integer

Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
Shape1.FillStyle = 0
OpenPortNum
End Sub

Private Sub OpenPortNum()
On Error GoTo uerror
For a = 1 To 16
MSComm1.CommPort = a
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
Print "可用Com号= "; a
MSComm1.PortOpen = False
End If
Next
Exit Sub
uerror:
Print "出错或占用Com号= "; a
Resume Next
End Sub
如要探测某个COM口是否有数据输入则需在打开某个串口后,用OnComm事件来接收.
萍水e相逢
推荐于2018-04-12 · TA获得超过3万个赞
知道大有可为答主
回答量:5.9万
采纳率:46%
帮助的人:1.4亿
展开全部
错误消息(MS Comm 控件)

下表列出 MSComm 控件可以捕获的错误:

常数 值 描述
comInvalidPropertyValue 380 无效属性值
comSetNotSupported 383 属性为只读
comGetNotSupported 394 属性为只读
comPortOpen 8000 端口打开时操作不合法
8001 超时值必须大于 0
comPortInvalid 8002 无效端口号
8003 属性只在运行时有效
8004 属性在运行时为只读
comPortAlreadyOpen 8005 端口已经打开
8006 设备标识符无效或不支持该标识符
8007 不支持设备的波特率
8008 指定的字节大小无效
8009 缺省参数错误
8010 硬件不可用(被其它设备锁定)
8011 函数不能分配队列
comNoOpen 8012 设备没有打开
8013 设备已经打开
8014 不能使用 comm 通知
comSetCommStateFailed 8015 不能设置 comm 状态
8016 不能设置 comm 事件屏蔽
comPortNotOpen 8018 仅当端口打开时操作才有效
8019 设备忙
comReadError 8020 读 comm 设备错误
comDCBError 8021 为该端口检索设备控制块时的内部错误
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4ed3b5d6
2009-04-27 · 超过33用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:99.7万
展开全部
直接在打开,如果返回错误就是了
在打开操作之前先用 on error goto err语句说明出错跳到err标号处。
在err标号处 用msgbox显示 出错内容:
例如:MsgBox err.Description, vbExclamation + vbOKOnly, "提示信息"

如果端口是打开的,然后读取MSComm1.InBufferCount的值不为0就表示有数据。也可直接取数据MSComm1.Input。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maikhfy
2009-04-30
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
看书
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式