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

我的单片机发送程序是if(a=='r'){uart_send_data(temperature>>8);//发送数据uart_send_data(temperature)... 我的单片机发送程序是
if(a=='r')
{uart_send_data(temperature>>8); //发送数据
uart_send_data(temperature);
a=0;}
}
发送的是温度数据,分为高八位和第八位依次发送
在vb中用什么接收?数组?字符?接收之后我还要进行进制转换
展开
 我来答
zdingyun
推荐于2017-09-11 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48174
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
VB6.0可设置MsComm控件的RThreshold 属性为2,通过OnComm 事件接收来自单片机的两字节数据。
如果两字节数据是二进制数据需要设置InputMode 属性为comInputModeBinary。
如果两字节数据是字符数据需要设置InputMode 属性为comInputModeText。
RThreshold 属性,在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。
OnComm 事件,无论何时当 CommEvent 属性的值变化时,就产生 OnComm 事件,标志发生了一个通讯事件或一个错误。
InputMode 属性。
设置或返回 Input 属性取回的数据的类型。
tiayu137308
推荐于2017-10-07 · TA获得超过5777个赞
知道大有可为答主
回答量:2944
采纳率:68%
帮助的人:595万
展开全部
VB里有专用控件用来接收和发送数据块。和C语言不一样。
你可以参照这个回答来操作,
http://zhidao.baidu.com/link?url=_Krb7jkWk0r4WLn3sqQgI1mDLGLnU8Qeu9rexk1loNHC1Gh-FeSisTS_5Ec8lnQIAzV8NRiP26ZfhYc3M7kpBK
启用该控件,然后再用该控件的相关方法和事件进行编程。
这个控件会在系统中开启一个接收发送内存缓冲区。然后用相关VB代码可以读取和写入。
追问
我知道用mscomm控件,我的vb程序主要部分是
Private Sub timer1_timer()
Dim Inbyte() As Byte
Inbyte = MSComm1.Input//接收单片机发来的数据,但是在这一步inbyte什么都收不到, 而我用串口助手试了一下能够收到两个字节的数据,我之前试过一个字节的数据PC能够收到
追答
你没搞清数据长度和存储区的关系。你不需要加 AS BYTE,直接DIM一个存储区就可以了。VB会自动分配,只是取数据的时候要声明变量类型。还有你要确定控件是打开的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式