单片机与VB串口通信,数据传送!
最近在做一个项目,需51单片机与PC通讯,上位机程序用VB写,Mscomm控件通讯,我就是搞不懂怎样才能把我单片机发过来的数据在VB上一样的显示出来,比如单片机发送120...
最近在做一个项目,需51单片机与PC通讯,上位机程序用VB写,Mscomm控件通讯,我就是搞不懂怎样才能把我单片机发过来的数据在VB上一样的显示出来,
比如单片机发送1200,
1,在VB上怎样把1200显示出来,程序该怎样写?
2,VB接收和发送的格式用二进制或AISII码收发又是怎么写?
3,VB接收和发送数据收发,数据该是怎样转换? 展开
比如单片机发送1200,
1,在VB上怎样把1200显示出来,程序该怎样写?
2,VB接收和发送的格式用二进制或AISII码收发又是怎么写?
3,VB接收和发送数据收发,数据该是怎样转换? 展开
5个回答
展开全部
我最近正好也做了个相关的,我把VB的程序给你参考下吧,希望对你有帮助,就是用VB的MSCOMM来控制的,注释我都写上了,你应该能看懂,根据你自己的需要改下就可以了,我调试过的,没问题
MSCOMM1.COMMPORT1=1 '设置端口号为1
MSCOMM1.SETTINGS="19200,N,8,1" '设置波特率等通信协议
MSCOMM1.INPUTLEN=6 '设置一次从串口读取6个字节
MSCOMM1.PORTOPEN=TRUE '打开串行口
MSCOMM1.INPUTMODE=COMINPUTMODEBINARY '从串行口读取二进制数据
MSCOMM1.OUTPUT=SENDDAT '发送数据
DO UNTIL MSCOMM1.INBUFFERCOUNT>=6 '查询方式,等待收到6个字节
DOEVENTS
LOOP
DATTEMP=MSCOMM1.INPUT '从串口读取数据至变体变量
RCVDAT=DATTEMP '数据送至接收二进制数组
TXTRCV.TEXT=""
FOR I=0 TO 5 '接收数据送至接收文本框TXTRCV显示
TXTRCV.TEXT=TXTRCV.TEXT&RIGHT("0"&HEX(RCVDAT(I)),2)
NEXT I
MSCOMM1.PORTOPEN=FALSE '关闭串行口
CMDCOMM.ENABLED=TRUE '使能CMDCOMM按钮
END SUB
MSCOMM1.COMMPORT1=1 '设置端口号为1
MSCOMM1.SETTINGS="19200,N,8,1" '设置波特率等通信协议
MSCOMM1.INPUTLEN=6 '设置一次从串口读取6个字节
MSCOMM1.PORTOPEN=TRUE '打开串行口
MSCOMM1.INPUTMODE=COMINPUTMODEBINARY '从串行口读取二进制数据
MSCOMM1.OUTPUT=SENDDAT '发送数据
DO UNTIL MSCOMM1.INBUFFERCOUNT>=6 '查询方式,等待收到6个字节
DOEVENTS
LOOP
DATTEMP=MSCOMM1.INPUT '从串口读取数据至变体变量
RCVDAT=DATTEMP '数据送至接收二进制数组
TXTRCV.TEXT=""
FOR I=0 TO 5 '接收数据送至接收文本框TXTRCV显示
TXTRCV.TEXT=TXTRCV.TEXT&RIGHT("0"&HEX(RCVDAT(I)),2)
NEXT I
MSCOMM1.PORTOPEN=FALSE '关闭串行口
CMDCOMM.ENABLED=TRUE '使能CMDCOMM按钮
END SUB
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先用 串口调试助手 看看vb收到的是什么?
应该是二进制,二进制转换一下就可以了啊
应该是二进制,二进制转换一下就可以了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你有mscomm读数据就好了
Text10.Text = MSComm1.Input就可以读了然后就进行数据处理就好了!很简单的
不过mscomm要预先定义好
Text10.Text = MSComm1.Input就可以读了然后就进行数据处理就好了!很简单的
不过mscomm要预先定义好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询