vb6.0中mscomm控件接受数据时出现内存溢出的情况 30

我用的是Novatel的GPSoem4板,通过mscomm控件发送命令(如logGPGGA)后,接受不到数据并且出现内存溢出的情况,具体的代码如下:OptionExpli... 我用的是Novatel 的GPS oem4板,通过mscomm控件发送命令(如log GPGGA)后,接受不到数据并且出现内存溢出的情况,具体的代码如下:
Option Explicit
Dim sdata As String
Private Sub cmdPortOpen_Click()'打开串口
MSComm1.Settings = Trim(cboBuad.Text) + "," + Mid(cboCheck.Text, 1, 1) + "," + Trim(cboDBit.Text) + "," + Trim(cboSBit.Text) '串口波特率,停止位,数据位,检验位
MSComm1.CommPort = Val(Mid(cboCommPort.Text, 4, 1)) '...串口端口号
MSComm1.InputLen = 0 '读输入寄存器全部内容
MSComm1.InputMode = 0 '文本方式传输数据
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InBufferSize = 256
MSComm1.OutBufferSize = 256
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
'打开通信端口
MSComm1.PortOpen = True
End Sub

'把字符通过串口发送出去
Private Sub cmdSendData_Click()
If txtOutput.Text = "" Then
MsgBox "发送的数据不能为空!"
Exit Sub
End If
MSComm1.Output = txtOutput.Text & vbCrLf
End Sub

'处理MSComm事件
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
'关闭中断
MSComm1.RThreshold = 0
'接受数据
sdata = MSComm1.Input
'更新Input显示--------------------------------------------
txtInput.Text = txtInput.Text & sdata & vbCrLf
'txtInput.Refresh
MSComm1.RThreshold = 1
End If
End Sub
'关闭通信端口,停止程序运行
Private Sub cmdQuit_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
Unload Me
End Sub
解析数据的代码没贴。
求高人指点!!!!!!!!!!
展开
 我来答
匿名用户
2011-05-31
展开全部
Private Sub MSComm1_OnComm()
Dim a2 As Integer
Dim Inbyte() As Byte
Dim buffer As String
Dim i As Variant

Select Case MSComm1.CommEvent
Case comEvReceive
Inbyte = MSComm1.Input
buffer = StrConv(a1, vbUnicode)

... ...

参考资料: http://zhidao.baidu.com/question/274254709.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式