我用VB中的MSComm接收单片机发到电脑上的数据,但是VB的程序没有效果,想要实现接收到数据时文本框中显示1
但是调试助手上有接收到数据,调试VB时文本框里没有变化,求助各位前辈高人这个是MSComm的配置...
但是调试助手上有接收到数据,调试VB时文本框里没有变化,求助各位前辈高人
这个是MSComm的配置 展开
这个是MSComm的配置 展开
展开全部
最关键的属性没有设置导致的: 将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表示每当串口接收缓冲区有>=1个字符时将引发一个OnComm事件
也可以写成以下方式:
Private Sub MSComm1_OnComm()
Dim str1 As String
str1 = MSComm1.Input
If str1 <> "" Then
Text1.Text = "1"
End If
End Sub
追答
不会啊,我刚才都测试过这段程序了,只要信号到了主机的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
补充一下,单片机跟电脑的波特率,奇偶校验,停止位......等所有参数必须一致.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询