VB和单片机串口通信
先说下工作过程,把从机工作方式和从机地址下的下拉框中的内容加在一起,再放到中间的文本框中显示出来,最后点发送,将数据通过RS232串口发到单片机上。(VB发送的是二进制数...
先说下工作过程,把从机工作方式和从机地址下的下拉框中的内容加在一起,再放到中间的文本框中显示出来,最后点发送,将数据通过RS232串口发到单片机上。(VB发送的是二进制数,串口波特率为9600)请问大侠VB怎么编程,单片机怎么接受数据(具体编程)。
展开
展开全部
下面是我做的一个测试程序:
'TextReceive =
' 初始化程序:主要完成对串口的设置,包括选择串口、设置波特率、设置数据格式、打开串口等。
' 注意:在程序开始之前,必须清空发送和接收缓冲区,以免出错。
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1" ' 设置波特率和发送字符格式
MSComm1.CommPort = 1 ' 设置通讯串口
MSComm1.InputLen = 0 ' 设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
MSComm1.InBufferSize = 2 ' 设置接收缓冲区2Byte
MSComm1.InBufferCount = 0
MSComm1.OutBufferSize = 2 ' 设置发送缓冲区2Byte
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1 ' 每个字符到接收缓冲区都触发接收事件
MSComm1.SThreshold = 1
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.PortOpen = True ' 打开串口
End Sub
Private Sub Command1_Click()
Dim number As Integer
Dim outbyte(0) As Byte
number = Val(170)
outbyte(0) = CByte(number)
MSComm1.Output = outbyte
Label4 = outbyte(0)
Print outbyte(0)
End Sub
'TextReceive =
' 初始化程序:主要完成对串口的设置,包括选择串口、设置波特率、设置数据格式、打开串口等。
' 注意:在程序开始之前,必须清空发送和接收缓冲区,以免出错。
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1" ' 设置波特率和发送字符格式
MSComm1.CommPort = 1 ' 设置通讯串口
MSComm1.InputLen = 0 ' 设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
MSComm1.InBufferSize = 2 ' 设置接收缓冲区2Byte
MSComm1.InBufferCount = 0
MSComm1.OutBufferSize = 2 ' 设置发送缓冲区2Byte
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1 ' 每个字符到接收缓冲区都触发接收事件
MSComm1.SThreshold = 1
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.PortOpen = True ' 打开串口
End Sub
Private Sub Command1_Click()
Dim number As Integer
Dim outbyte(0) As Byte
number = Val(170)
outbyte(0) = CByte(number)
MSComm1.Output = outbyte
Label4 = outbyte(0)
Print outbyte(0)
End Sub
展开全部
根据你提供的分析如下;
1.程序分两部分:单片机部分;PC机部分
2.我做过,sth110为温度传感器,采集到温度数据后,显示在1602显示屏上,并且通过串口传输给PC机,PC机接受并显示温度值。PC收到数据若温度过高,传输指令给单片机,就是VB跟单片机的通信过程。
3.你可以参考我代码,可以到我的博客去下载:
http://www.shenzhenwangzhanyouhua.com/seo/danpianji-temperaturemachine.html
解压出来你看vb代码要安装vb否则打不开,运行的时候PC机的串口端口号要对,否则也会报错。
单片机程序,如
/*************接收电脑发送过来的数据*************/
if(RI)
{
RI=0;
yexu[t]=SBUF;
if(t==2)
t=0;
}
详细代码你可以下载去看,vb与单片机通信相对比较简单。
1.程序分两部分:单片机部分;PC机部分
2.我做过,sth110为温度传感器,采集到温度数据后,显示在1602显示屏上,并且通过串口传输给PC机,PC机接受并显示温度值。PC收到数据若温度过高,传输指令给单片机,就是VB跟单片机的通信过程。
3.你可以参考我代码,可以到我的博客去下载:
http://www.shenzhenwangzhanyouhua.com/seo/danpianji-temperaturemachine.html
解压出来你看vb代码要安装vb否则打不开,运行的时候PC机的串口端口号要对,否则也会报错。
单片机程序,如
/*************接收电脑发送过来的数据*************/
if(RI)
{
RI=0;
yexu[t]=SBUF;
if(t==2)
t=0;
}
详细代码你可以下载去看,vb与单片机通信相对比较简单。
参考资料: http://www.shenzhenwangzhanyouhua.com/seo/danpianji-temperaturemachine.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
百度一下吧,我也写过,很简单,看一下msdn
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机设置一下工作模式,波特率用T1溢出率
网上有很多历程,你随便下一个
网上有很多历程,你随便下一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询