VB MSCOMM接收数据显示不出来

我用vbmscomm控件编的程序,通过串行口和52单片机;现在可以证实单片机可以正常接收数据,但是回传回来电脑就不识别了;请大神帮忙看一下。MSComm1.CommPor... 我用vb mscomm控件编的程序,通过串行口和52单片机;现在可以证实单片机可以正常接收数据,但是回传回来电脑就不识别了;请大神帮忙看一下。
MSComm1.CommPort = 1 配置部分
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputMode = 1
MSComm1.InBufferCount = 0
MSComm1.RThreshold = 1

Private Sub cmdtest_Click() 发送
MSComm1.OutBufferCount = 0 '清空发送缓冲区
textshow.Text = textshow.Text & vbCrLf & "准备发送... "
Dim senddata(0) As Byte
senddata(0) = &HF
MSComm1.Output = senddata
textshow.Text = textshow.Text & vbCrLf & "已经发送 " & senddata(0)
MSComm1.InBufferCount = 0 '清空接收缓冲区

Private Sub timerrec_Timer() ‘接收
Dim buf$
If MSComm1.PortOpen = True Then

buf = Trim(MSComm1.Input) ' 将缓冲区内的数据读入buf变量中
If Len(buf) <> 0 Then ' 判断缓冲区内是否存在数据
textshow.Text = textshow.Text & vbCrLf & "准备接收数据..."
'textshow.Text = textshow.Text & vbCrLf & buf
textshow.Text = textshow.Text + Chr(13) + Chr(10) + buf
textshow.Text = textshow.Text & vbCrLf & "数据接收完毕!"
End If
End If
End Sub

单片机回传
if(RI==1) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
P0 = tmp; // 数据传送到P0口
send_char(tmp); // 回传接收到的数据
}
展开
 我来答
百度网友bdb9803
2014-08-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
VB中,串口接收会触发事件,不是用时钟事件,串口事件名称为MSComm1_OnComm()
把你的代码中:
Private Sub timerrec_Timer() ‘接收
If MSComm1.PortOpen = True Then

改成:
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
更多追问追答
追问
准备发送... 
已经发送 15
然后就没有回应了。。。和之前一样
追答
那应该是你单片机发送的程序有问题,这一块我不了解。但我觉得send_char貌似就发送一个字符,而不是字符串。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式