发表于:2004/10/29 12:52:00
#0楼
发送端程序
MSComm1.Output = "aaaaa" '以aaaaa作为数据起始标志
MSComm1.Output = Text1.Text
MSComm1.Output = "zzzzz" ' 以zzzzz作为数据结束标志
接收端程序
Private Sub MSComm1_OnComm()
Dim rec(100) As String
Dim testtag(5) As String
Dim enddata As Integer
Dim realdata As Integer
Dim i As Integer
Dim j As Integer
j = 0
realdata = 0
enddata = 0
On Error Resume Next '出错处理语句
Select Case MSComm1.CommEvent '在此可插入处理各种不同错误或事件的代码
Case comEventFrame
lable1.Caption = "硬件检测到一个数据帧错误"
Case comEventDCB
Label1.Caption = "检取端口DCB时发生了没有预料到的错误"
Case comEventTxFull
labell1.Caption = "发送缓冲区已满"
Case comEventRxParity
Label1.Caption = "奇偶校验错"
Case comEventRxOver
Label1.Caption = " 接收缓冲区已满"
Case comEventOverrun
Label1.Caption = "端口溢出"
Case comEventCTSTO
Label1.Caption = "在发送字符时,在系统指定的事件内,CTS线是低电平"
Case comEvReceive
Do While realdata = 0 '判断是否有有效数据到达
For i = 0 To 4
testtag(i) = MSComm1.Input
Next i
labal1.Caption = "暂时没有收到有效数据"
If testtag(0) = "a" And testtag(1) = "a" And testtag(2) = "a" And testtag(3) = "a" And testtag(4) = "a" Then '判断是否收到起始标志
realdata = 1
End If
Loop
Do While enddata = 0
Label4.Caption = "正在接收数据……"
rec(j) = MSComm1.Input '接收存储有效数据
Text1.Text = Text1.Text + rec(j) '显示有效数据
If rec(j) = "z " And rec(j - 1) = "z" And rec(j - 2) = "z" And rec(j - 3) = "z" And rec(j - 4) = "z" Then
enddata = 1
End If
j = j + 1
Loop
labal1.Caption = "数据接收完毕"
End Select
End Sub
这样能不能收到正确数据呢 我上次是收到乱码 里面好多 ???????的 这是我帮别人写的 调试不方便 高手看怎么改好啊 ?我以前没写过这些东东的
MSComm1.Output = "aaaaa" '以aaaaa作为数据起始标志
MSComm1.Output = Text1.Text
MSComm1.Output = "zzzzz" ' 以zzzzz作为数据结束标志
接收端程序
Private Sub MSComm1_OnComm()
Dim rec(100) As String
Dim testtag(5) As String
Dim enddata As Integer
Dim realdata As Integer
Dim i As Integer
Dim j As Integer
j = 0
realdata = 0
enddata = 0
On Error Resume Next '出错处理语句
Select Case MSComm1.CommEvent '在此可插入处理各种不同错误或事件的代码
Case comEventFrame
lable1.Caption = "硬件检测到一个数据帧错误"
Case comEventDCB
Label1.Caption = "检取端口DCB时发生了没有预料到的错误"
Case comEventTxFull
labell1.Caption = "发送缓冲区已满"
Case comEventRxParity
Label1.Caption = "奇偶校验错"
Case comEventRxOver
Label1.Caption = " 接收缓冲区已满"
Case comEventOverrun
Label1.Caption = "端口溢出"
Case comEventCTSTO
Label1.Caption = "在发送字符时,在系统指定的事件内,CTS线是低电平"
Case comEvReceive
Do While realdata = 0 '判断是否有有效数据到达
For i = 0 To 4
testtag(i) = MSComm1.Input
Next i
labal1.Caption = "暂时没有收到有效数据"
If testtag(0) = "a" And testtag(1) = "a" And testtag(2) = "a" And testtag(3) = "a" And testtag(4) = "a" Then '判断是否收到起始标志
realdata = 1
End If
Loop
Do While enddata = 0
Label4.Caption = "正在接收数据……"
rec(j) = MSComm1.Input '接收存储有效数据
Text1.Text = Text1.Text + rec(j) '显示有效数据
If rec(j) = "z " And rec(j - 1) = "z" And rec(j - 2) = "z" And rec(j - 3) = "z" And rec(j - 4) = "z" Then
enddata = 1
End If
j = j + 1
Loop
labal1.Caption = "数据接收完毕"
End Select
End Sub
这样能不能收到正确数据呢 我上次是收到乱码 里面好多 ???????的 这是我帮别人写的 调试不方便 高手看怎么改好啊 ?我以前没写过这些东东的
![表情](http://static.gkong.com/bbs/files/pic/em27.gif)