跪求高人指点:VB MSComm控件串口打不开,错误代码:0!
同一台机器,相同的设备(可以确定设备没问题),使用其他程序可打开端口,使用以下代码不行:
程序报告错误代码:0,错误描述:无!
程序代码如下:
Private Sub cmdPortOpen_Click() '打开端口按键功能控制
On Error GoTo errHandle:
Call portCheck(MSComm, cmbCOM, portCheckFlag) '检查被选中的端口是否可用,如果可用就指定端口
If portCheckFlag Then 'portCheckFlag 为变量,已强制申明
MSComm.CommPort = Val(Mid(cmbCOM.Text, 4, 1))
Else
GoTo errHandle
End If
Call initCOMPort(cmbBaudRate, cmbData, cmbStopBit, cmbParity) '实例化端口
With MSComm:
.InputMode = comInputModeBinary '指定以二进制形式进行输入
.InputLen = 0 '每次读完缓冲区中字符
.InBufferCount = 0 '清除发送缓冲区数据
.OutBufferCount = 0 '清除接收缓冲区数据
End With
DoEvents
errHandle:
msgValue = MsgBox("COM" + CStr(MSComm.CommPort) + " 打开出错。错误代码:" + CStr(Err.number) + "。" + CStr(Err.Description) + "!", vbOKOnly + vbInformation, "提示")
If cmdPortOpen.Caption = "关闭串口" Then ’按键还原
cmdPortOpen.Caption = "打开串口"
End If
Exit Sub
End Sub
Public Sub portCheck(msc As MSComm, cmb As ComboBox, flag As Boolean) '端口检查是否可用,放于标准模块中
Dim str As String
Dim number As Integer
str = Trim(cmb.Text)
number = Val(Mid(str, 4, 1))
msc.CommPort = number
If msc.PortOpen = True Then
msc.PortOpen = False
flag = True
Else
flag = False
End Sub
程序执行时未实例化端口,直接跳到错误处理语句,之后就退出子过程了!
问:
1、MSComm 的初始化必须要放在Frame——Load()事件中吗?
2、MSComm 初始化时,是要先指定端口并打开之后再设置诸如settings,input之类的东东还是反过来,还是这个没有特别限制,请指点?
我有参考:http://www.vbgood.com/thread-82688-1-1.html的解释,正在琢磨中^
小弟初学串口通信,求高人指点,可发送至邮箱:qingfy2007@126.com,不胜感激!!!
[解决办法]
LZ给出的http://www.vbgood.com/thread-82688-1-1.html链接的2L(本人)有过回复.
[解决办法]
参考一下这个代码:http://download.csdn.net/source/1262066
[解决办法]
On Error GoTo errHandle先去掉,然后看哪一行出错