Arm年度技术研讨会

vb单片机通信(单片机和vb的串行通信)

本篇目录:

VB中关于PC机与51单片机通信的一些问题

1、VB程序 与 单片机程序,没有问题,是波特率 误差的问题 该 VB 程序 发送 范围是 0 - 128 , 128 时发送 的 为 0 。

2、用串口调试助手 用PC机通过串口控制8952让端口上的LED亮灭很简单,如只需发送0XFE内容,再让P0=SUBF就可让P0口上的一个LED灭。

vb单片机通信(单片机和vb的串行通信)-图1

3、在你的vb程序中(MSCommOutput = TextText)直接将0发出去,单片机应接收48啊,以文本形式发送单片机就是以ASCII码接收,你可以改单片机的代码把k=0改为48试试,或者在vb中将ASCII码改为十进制试试。

vb和单片机通讯

1、VB与单片机通信。如 VB 为上位机,单片机为下位机。通讯必须以协议形式,不然分不清 是第一字节数据,还是第几个字节数据。

2、VB里用MSCOM控件,单片机用MAX232或者MAX485接单片机串口,具体的电路网上很多。试举一例,波特率9600,单片机用89S51,晶振10592mhz。

vb单片机通信(单片机和vb的串行通信)-图2

3、传送数据大于255,则用16位二进制(即2字节ASCII码组成)。10进制范围-32768到+32767。如有小数,则应由上下位机约定,不进行串送。串口通信中数制转换必须相当重视。以上是以二进制方式收发数据。

4、,建议通讯地址放在通讯开始标识后面,这样从机反映会可以做快些。3,不管多简单的协议,建议都有,开始标志,地址,命令,长度,数据,效验,结束标志。

5、当vb收到一个字节了,vb产生OnComm事件,但是vb是windows 操作系统下的程序,执行到事件的mscommInput 时已经过去一定时间,串口是有缓冲区的,这时候读input已经传过来很多字节了。

vb单片机通信(单片机和vb的串行通信)-图3

vb与单片机通讯问题

VB与单片机通信。如 VB 为上位机,单片机为下位机。通讯必须以协议形式,不然分不清 是第一字节数据,还是第几个字节数据。

当vb收到一个字节了,vb产生OnComm事件,但是vb是windows 操作系统下的程序,执行到事件的mscommInput 时已经过去一定时间,串口是有缓冲区的,这时候读input已经传过来很多字节了。

VB程序 与 单片机程序,没有问题,是波特率 误差的问题 该 VB 程序 发送 范围是 0 - 128 , 128 时发送 的 为 0 。

而这时你的单片机可能还来不及返回数据,所以读到的是空的。

,建议通讯地址放在通讯开始标识后面,这样从机反映会可以做快些。3,不管多简单的协议,建议都有,开始标志,地址,命令,长度,数据,效验,结束标志。

单片机能接收到单字节(如0AAH)吗?中断等参数设置是否正确。如果单字节能接收,说明你的设计没有问题,一定是中断处理除了问题。给一段我的中断处理程序,用c语音编写的。

vb串口通信如何接收单片机发过来的两字节数据

自己做一个CRC的校验,确认是你要的数据就接收过来,不是就扔掉,还有你单片机本身也要做一个CRC的校验,来确认你是不是发的这两个字节数据。

两个字节一起接收,然后再还原为Integer数据。

这你首先要知道单片机采集数据的格式(一般说明书上会有)。将采集到的数据进行分析(一般会有控制符头部、数据值、控制符尾部),取其中的数据值,然后用MSChart控件,将这些数据值转化为图形样式显示出来。

我的建议是这样,在mscomm的oncomm事件里写代码,以前写的vb的找不到了,给你个参考一下吧。

你先试一下把串口线txd和rxd接在一起,不接单片机,试一下可不可以用VB收到自己发出去的数据包。

到此,以上就是小编对于单片机和vb的串行通信的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇