我用VB中的MSComm接收单片机发到电脑上的数据,但是VB的程序没有效果,想要实现接收到数据时文本框中显示1

但是调试助手上有接收到数据,调试VB时文本框里没有变化,求助各位前辈高人这个是MSComm的配置... 但是调试助手上有接收到数据,调试VB时文本框里没有变化,求助各位前辈高人
这个是MSComm的配置
展开
 我来答
百度网友ae4a33a
2012-07-20 · TA获得超过188个赞
知道答主
回答量:27
采纳率:0%
帮助的人:24万
展开全部
最关键的属性没有设置导致的: 将MSCOMM1的RThresHold设置为1(不能为0)
RThresHold=1表示每当串口接收缓冲区有>=1个字符时将引发一个OnComm事件

也可以写成以下方式:
Private Sub MSComm1_OnComm()
Dim str1 As String
str1 = MSComm1.Input
If str1 <> "" Then
Text1.Text = "1"
End If
End Sub
追问

谢谢,但是RThresHold已经设置为1了,会不是单片机上串口数据发送的太快了?

 

 

追答
不会啊,我刚才都测试过这段程序了,只要信号到了主机的COM口,Text1.Text一定会变成1的
就怕单片机没有数据到COM口,你可以:
1. 加个按钮,里面加上代码MSComm1.OutPut= "1"
2. 然后将你主机的COM口的2号脚跟3号脚短路。
3. 运行程序,点击该按钮,看看是不是有收到数据并且Text1.Text = 1

请问您打开COM口了没?把如下代码加到Form_Load事件里面去
并且注意你的电脑上的COM口是不是COM4,是多少就将CommPort设置为多少.
If MSComm1.PortOpen=False Then MSComm1.PortOpen=True

补充一下,单片机跟电脑的波特率,奇偶校验,停止位......等所有参数必须一致.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式