关于VB的MSCOMM控件的几个问题
我刚刚接触MScomm控件,请各位大侠回答几个问题,小弟在此谢过了!1.我的上位机是VB编写,下位机是单片机C51编写的,进行串口通信,在oncomm事件里,我不需要接受...
我刚刚接触MScomm控件,请各位大侠回答几个问题,小弟在此谢过了!
1.我的上位机是VB编写,下位机是单片机C51编写的,进行串口通信,在oncomm事件里,我不需要接受input, INPUT里的值是多少对我没有意义,只要inbuffercount里有数据我就执行oncomm,这时我需要怎么做?还是用case comevreceive事件吗?换句话说,在 comevreceive事件中可不可以没有a=mscomm1.input的语句?如果不可以那我应该怎么做呢?
2.假如我单片机传送过来的是unsigned char型,那我VB中接收的是什么型?是变体还是string?如果我VB 向单片机发送一个数据,这个变量在VB中一定是变体型吗?
3.类似mscomm1.output=a这样的传输语句,可以写在什么位置?只能写在oncomm事件里吗?传输语句后面需不需要加一句outbufferconut=0这样的句子?同理,是不是在a=mscomm1.input这样的句子后面加一句inbufferconut=0呢?
我看过了相关的教材,大体明白了,但是这些细节书上没有说。还请大侠帮帮小弟吧,多谢了 展开
1.我的上位机是VB编写,下位机是单片机C51编写的,进行串口通信,在oncomm事件里,我不需要接受input, INPUT里的值是多少对我没有意义,只要inbuffercount里有数据我就执行oncomm,这时我需要怎么做?还是用case comevreceive事件吗?换句话说,在 comevreceive事件中可不可以没有a=mscomm1.input的语句?如果不可以那我应该怎么做呢?
2.假如我单片机传送过来的是unsigned char型,那我VB中接收的是什么型?是变体还是string?如果我VB 向单片机发送一个数据,这个变量在VB中一定是变体型吗?
3.类似mscomm1.output=a这样的传输语句,可以写在什么位置?只能写在oncomm事件里吗?传输语句后面需不需要加一句outbufferconut=0这样的句子?同理,是不是在a=mscomm1.input这样的句子后面加一句inbufferconut=0呢?
我看过了相关的教材,大体明白了,但是这些细节书上没有说。还请大侠帮帮小弟吧,多谢了 展开
4个回答
展开全部
1. 事件式是在ComEvReceive下执行 mscomm1.input,查询式是在程序的任何搏伏猛部位执行 mscomm1.input
无基桥论如何都必须有类似a=mscomm1.input的语句
2. 接收变量a 的类型是你用Dim 语句定义,厅差同时对MSCOMM的接收类型comInputMode的设置也决定你对a选什么类型
3. mscomm1.output=a这个语句可以出现在任何地方
传输语句后面不需要加一句outbufferconut=0,相反,在传输语句前面按需要有可能需要
a=mscomm1.input这样的句子后面也不需要加一句inbufferconut=0
无基桥论如何都必须有类似a=mscomm1.input的语句
2. 接收变量a 的类型是你用Dim 语句定义,厅差同时对MSCOMM的接收类型comInputMode的设置也决定你对a选什么类型
3. mscomm1.output=a这个语句可以出现在任何地方
传输语句后面不需要加一句outbufferconut=0,相反,在传输语句前面按需要有可能需要
a=mscomm1.input这样的句子后面也不需要加一句inbufferconut=0
追问
那请问,我comInputMode设置是文本格式的,单片机要发送的数据时unsigned char类型的,那我vb中接受的数据用什么字型的呢?如果我vb中要发送的是string字型,单片机接收变量应该用什么字型呢?多谢了啊!
追答
1.发送方, 对于unsinged char,8位机是一个byte,16位机时两个byte, 接受方用byte类型更合适。
2 接收方, 设置comInputMode是文本格式 是有条件的, 也就是只能收字母,数字,标点,回车,换行等文本字符。 一般情况应设置为byte类型,你的发送方要求你用byte类型。
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
展开全部
1。事件被执行ComEvReceive下mscomm1.input,基于查询的任何部分的的程序mscomm1.input
在任何情况携答下必须有这样的语句= mscomm1.input
2接收变量的类型定义Dim语句中同时收到的型comInputMode MSCOMM的设置。 mscomm1.output一个语句可以出现在任何地方做隐银
传输也决定你选择的是什么类型
不需要添加一个背后outbufferconut声明纯宴,= 0,相反,可能需要在前面所必需的传输表 A = mscomm1.input这句话背后并不需要添加一个inbufferconut = 0
在任何情况携答下必须有这样的语句= mscomm1.input
2接收变量的类型定义Dim语句中同时收到的型comInputMode MSCOMM的设置。 mscomm1.output一个语句可以出现在任何地方做隐银
传输也决定你选择的是什么类型
不需要添加一个背后outbufferconut声明纯宴,= 0,相反,可能需要在前面所必需的传输表 A = mscomm1.input这句话背后并不需要添加一个inbufferconut = 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不Input怎么知道下面送上来什么呢? 没意义……不知怎么想的。
电线上走的全都是1、0二进制,两边能拿到的都是八位二进制字节。
你想理解成什么就把它当做什么,数据类型在最底层是没意义的。
MSCOMM收到的内容可以是字符串也可以是Byte(),你的MSComm1.Mode设的什么?
Output可以在任何位置,OutBuffcount不需要你顷型来置零,发完了自然就是零了猛迹。
Inbuffcount记录了缓冲区枝乎并中的字节数,Input操作会将它减去取出部分的字节数。
电线上走的全都是1、0二进制,两边能拿到的都是八位二进制字节。
你想理解成什么就把它当做什么,数据类型在最底层是没意义的。
MSCOMM收到的内容可以是字符串也可以是Byte(),你的MSComm1.Mode设的什么?
Output可以在任何位置,OutBuffcount不需要你顷型来置零,发完了自然就是零了猛迹。
Inbuffcount记录了缓冲区枝乎并中的字节数,Input操作会将它减去取出部分的字节数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
热 通过通过探讨探讨探讨探讨探讨
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询