本篇目录:
VB中关于PC机与51单片机通信的一些问题
1、VB程序 与 单片机程序,没有问题,是波特率 误差的问题 该 VB 程序 发送 范围是 0 - 128 , 128 时发送 的 为 0 。
2、用串口调试助手 用PC机通过串口控制8952让端口上的LED亮灭很简单,如只需发送0XFE内容,再让P0=SUBF就可让P0口上的一个LED灭。

3、在你的vb程序中(MSCommOutput = TextText)直接将0发出去,单片机应接收48啊,以文本形式发送单片机就是以ASCII码接收,你可以改单片机的代码把k=0改为48试试,或者在vb中将ASCII码改为十进制试试。
vb和单片机通讯
1、VB与单片机通信。如 VB 为上位机,单片机为下位机。通讯必须以协议形式,不然分不清 是第一字节数据,还是第几个字节数据。
2、VB里用MSCOM控件,单片机用MAX232或者MAX485接单片机串口,具体的电路网上很多。试举一例,波特率9600,单片机用89S51,晶振10592mhz。

3、传送数据大于255,则用16位二进制(即2字节ASCII码组成)。10进制范围-32768到+32767。如有小数,则应由上下位机约定,不进行串送。串口通信中数制转换必须相当重视。以上是以二进制方式收发数据。
4、,建议通讯地址放在通讯开始标识后面,这样从机反映会可以做快些。3,不管多简单的协议,建议都有,开始标志,地址,命令,长度,数据,效验,结束标志。
5、当vb收到一个字节了,vb产生OnComm事件,但是vb是windows 操作系统下的程序,执行到事件的mscommInput 时已经过去一定时间,串口是有缓冲区的,这时候读input已经传过来很多字节了。

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的串行通信的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。