正文
单片机与vb.net通讯 单片机与vb之间的串行通信
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
通过VB编程,如何实现计算机同8位单片机的串口通信?
**********************VB代码 PC**************************
Dim s As String
Dim sent() As Byte
Private Sub Form_Load()
With MSComm1
If .CommPort 2 Then .CommPort = 2 '设置Com2为通信端口
.Settings = "9600,N,8,1" '设置通信端口参数 9600赫兹、无校验、8个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
'含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)
.InBufferSize = 1024 '设置缓冲区接收数据为1024字节
.OutBufferSize = 512
.OutBufferCount = 0 '清空发送缓冲区
.InBufferCount = 0 '滑空接收缓冲区
If Not .PortOpen Then
.PortOpen = True '打开通信端口
End If
End With
End Sub
Private Sub Command1_Click()
s = Text1.Text
Call sendmsg
End Sub
Private Sub sendmsg()
Dim i As Integer
ReDim sent(Len(Text1.Text) + 1) As Byte
For i = 1 To Len(Text1.Text)
sent(i) = Asc(Mid(s, i, 1)) '发送ASC码
Next i
sent(i) = Asc(vbCrLf) '发送换行表示数据结束
MSComm1.Output = sent
MSComm1.OutBufferCount = 0
End Sub
************************C代码,单片机*****************************
#include STDIO.H
#include AT89LV52.h
void initial(void); //初始化
vvoid initial(void)
{
IP = 0X00; //定义串口高优先及
IE=0x00; //允许串口,定时器0
TCON=0X05;
TMOD=0x21; //定时器1为自动装入方式
PCON=0x00; //速率bu翻倍
SCON=0X50; //串口工作方式:8位UART,数据传输速率可变
TH1=0XFD; //OXFF(22.184M)57600 baud
TL1=0XFD; //设置定时器
//PCON=0X80|PCON; //速率为9600 baud(晶振11.059M),SMOD=0数据传输速率4.8KB,th1=tl1=fd,smod=1,速率为19.2kb
TR1 = 1; //启动定时器1
}
main()
{
int i=0,j,getbuf[5];
initial();
while(i5)
{
getbuf[i]=_getkey(); //接受ASC码
if (getbuf[i] == 13) break; //接收到换行表示数据结束
i++;
}
}
如何用VB通过串口和51单片机通讯使得单片机能够在IO口产生脉冲,脉冲的数量和频率由VB设定?
这个需要分步来完成
1、实现单片机串口通讯
2、编写VB程序,添加串口控件,实现VB与单片机串口通讯
3、写单片机IO驱动,实现脉冲输出
4、VB发数据给单片机,实现脉冲数量和频率控制
5、更详细的可以私信我完成
VB与单片机通信,传送11字节的数据,有时接受的是正确的,有时接受少一位,什么原因呢?
VB与单片机通信。如 VB 为上位机单片机与vb.net通讯,单片机为下位机。
通讯必须以协议形式,不然分不清 是第一字节数据,还是第几个字节数据。
通讯协议可以 自己设计 如
指令码 - (多机通讯需要加从机 号)- 数据1 - 数据n - 校验码 - 结束码。
接收数据 首先 判断 指令码, 接着开始接收 数据,
校验码 是为单片机与vb.net通讯了判断 接收单片机与vb.net通讯的数据 与 发送的数据 是否一致,不一致 就是数据受到干扰错误。
结束码 表示 数据 发送 或者 接收 完毕,等待接收 下一组数据,这样就不会出错。
vb.net程序可以在单片机上运行吗?
绝对不行单片机与vb.net通讯!基于x86处理器构架单片机与vb.net通讯的程序单片机与vb.net通讯,是不能在不是x86构架单片机与vb.net通讯的单片机上运行的。
vb.net 做的通信程序,设备掉电后出错:无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接
看下这个异常单片机与vb.net通讯的类型 在捕捉异常单片机与vb.net通讯的时候处理为关闭并重新打开端口监听(这个看你自己需求) 然后在socketException下面再catch其它exception 进行弹出错误提示之类的操作 就可以了
vb 与单片机通信 &hbb数据收不到
MSComm1.Output = Chr(send3) 这句有问题。
请不要将send3转化为字符,使用MSComm1.Output = send3
====================================
dim sende(0) as byte
send3(0)=Hbb
mscomm1.output=send3
单片机与vb.net通讯的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机与vb之间的串行通信、单片机与vb.net通讯的信息别忘了在本站进行查找喔。