百思不得其解VB编小程序的错误
给定的端口名称未以 COM/com 开头或未解析为有效的串行端口,这个是什么原因 --------------------编程问答-------------------- 上代码,让我们见识见识。 --------------------编程问答-------------------- --------------------编程问答-------------------- Imports System.IO.PortsImports System.Text
Public Class Form1
'声明一个通讯端口对象
Dim RS232 As SerialPort
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each sp As String In SerialPort.GetPortNames
cmbCOM.Items.Add(sp)
Next
cmbCOM.Sorted = True
cmbCOM.SelectedIndex = 0
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim mBaudRate As Integer
Dim mParity As Parity
Dim mDataBit As Integer
Dim mStopbit As StopBits
Dim mPortName As String
mPortName = cmbCOM.SelectedIndex.ToString
mBaudRate = 9600
mParity = Parity.None
mDataBit = 8
mStopbit = StopBits.One
'建立一个通讯端口对象
RS232 = New SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit)
RS232.Encoding = Encoding.Unicode
If Not RS232.IsOpen Then
RS232.Open()
btnSend.Enabled = True
btnReceive.Enabled = True
Else
MsgBox("~~通讯端口打开错误(通讯端口已被打开~~)", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
End
End If
End Sub
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
RS232.Write(txtSend.Text)
End Sub
Private Sub btnReceive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceive.Click
Dim InString As String
InString = ""
Try
RS232.ReadTimeout = 1000
InString = RS232.ReadExisting()
If InString Is Nothing Then
Exit Sub
Else
txtReceive.Text = InString
End If
Catch ex As Exception
MessageBox.Show("读取错误:" + ex.ToString, "错误通知", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Sub
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
If RS232 Is Nothing OrElse Not RS232.IsOpen Then
MsgBox("~~通讯端口尚未打开~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
Else
RS232.Close()
btnStart.Enabled = False
btnReceive.Enabled = False
End If
End Sub
Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
If Not RS232 Is Nothing Then
If RS232.IsOpen Then RS232.Close()
End If
End Sub
Private Sub cmbCOM_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbCOM.SelectedIndexChanged
End Sub
End Class
--------------------编程问答-------------------- cmbCOM.SelectedIndex.ToString
这个里面必须是com1 com2之类的 --------------------编程问答-------------------- cmbCOM.SelectedIndex.ToString
这句改为COM4
提示 “对端口“COM4”的访问被拒绝。”
有没有可能是我的电脑中的这个端口的问题呀 --------------------编程问答--------------------
你先看看有没有这个端口吧. "我的电脑"右键->"管理"->"设备管理器"->"端口" --------------------编程问答-------------------- 这个口是有的。
补充:VB , COM/DCOM/COM+