vb 串口与单片机传送数据 急!!!!

本人下了一个用VB编的利用串口发送数据给单片机的程序,但在运行的时候老是报错,说端口已打开 8005,一直没找到解决的办法,请教各位高手,能否帮我解决一下,本人万分感谢!!!急 急 急 急!!!!串口接受程序如下:On Error Resume Next Dim BytesReceived() As Byte Dim buffer As String Dim HData As String Dim i As Integer Select Case MSComm1.CommEvent Case comEvReceive ✀接收十六进制数据。并以十六进制显示 MSComm1.InputLen = 0 buffer = MSComm1.Input ✀接收数据至字符串中 BytesReceived() = buffer ✀将数据转入Byte数组中 For i = 0 To UBound(BytesReceived) ✀显示结果以十六进制显示 If Len(Hex(BytesReceived(i))) = 1 Then HData = HData & "0" & Hex(BytesReceived(i)) Else HData = HData & Hex(BytesReceived(i)) End If Text1.Text = HData ✀最后将结果后入Text1中 MSComm1.OutBufferCount = 0 ✀清除发送缓冲区 MSComm1.InBufferCount = 0 ✀清除接收缓冲区 Next End SelectEnd Sub
2026年09月27日 14:16
有3个网友回答
网友(1):

Private Sub Mscomm1_Oncomm()

'...通讯事件发生
Dim indata As Variant
Dim bte(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进
'...制Byte类型的变量进行转换!
bte(0) = AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...发送数据
Dim Num As Integer
Dim outbte(0) As Byte
Num = Val(Text1.Text)
outbte(0) = CByte(Num)
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = outbte(0) '...发送数据
End Sub
Private Sub Command2_Click()
'...退出
Unload Me
End Sub
Private Sub Form_Load()
'...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub

你试试这个~

网友(2):

看看有没有别的程序已经打开串口了。

网友(3):

你的代码都在这里?还有其他的把?都贴出来看看。