Imports System.IO.Ports Imports 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
Imports 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
这个里面必须是com1 com2之类的
这句改为COM4
提示 “对端口“COM4”的访问被拒绝。”
有没有可能是我的电脑中的这个端口的问题呀