vb.net与单片机通信 vb 单片机

VB和单片机串口通信

下面是我做的一个测试程序:

成都创新互联成立于2013年,先为安定等服务建站,安定等地企业,进行企业商务咨询服务。为安定企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

'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

VB与单片机通信,传送11字节的数据,有时接受的是正确的,有时接受少一位,什么原因呢?

VB与单片机通信。如 VB 为上位机,单片机为下位机。

通讯必须以协议形式,不然分不清 是第一字节数据,还是第几个字节数据。

通讯协议可以 自己设计 如

指令码 - (多机通讯需要加从机 号)- 数据1 - 数据n - 校验码 - 结束码。

接收数据 首先 判断 指令码, 接着开始接收 数据,

校验码 是为了判断 接收的数据 与 发送的数据 是否一致,不一致 就是数据受到干扰错误。

结束码 表示 数据 发送 或者 接收 完毕,等待接收 下一组数据,这样就不会出错。

vb与单片机如何进行通讯,如何发送大于128字符给下位机,如何处理不定长的数据传送??先谢

串口传送数据实质是传送ASCII码,如是8位二进制数据,其ASCII码值(10进制)为0-255。用二进制表示为00000000 - 11111111

16进制表示为 00 - FF

传送数据大于255,则用16位二进制(即2字节ASCII码组成)。10进制范围-32768到+32767。

如有小数,则应由上下位机约定,不进行串送。

串口通信中数制转换必须相当重视。

以上是以二进制方式收发数据。

也可直接以ASCII码的文本方式发送数据,而字节量大。


网站栏目:vb.net与单片机通信 vb 单片机
网站链接:http://scyanting.com/article/hhhgde.html