vb 串口通信协议, 使用mscommon部件进行通信,如何能看出数据的传输过程?救急呀

作者&投稿:禾菊 (若有异议请与网页底部的电邮联系)
求助:vb串口通信,RS-485通信协议~

先用串口调试器 发送试试。

你用msgbox ubound(s)看看吧,一定是小于4的,所以你s(4)就出错了

以下内容摘自VS6.0 MSDN,希望对你有帮助。MSComm1控件的input 方法是接收数据,output方法是发送数据。

接收缓冲区
Input 属性被用来保存和接收从接收缓冲区获取的数据。例如,如果希望从接收缓冲区获取数据,并将其显示在一个文本框中,可以使用下面的代码:
TxtDisplay.Text =MSComm1.Input
如果需要获得接收缓冲区的所有内容,就必须将 InputLen 属性设置为 0。这可以在设计时或运行时设置。
InputMode 属性可以设置为如下 Visual Basic 常数:comInputModeText 或 comInputModeBinary,即可分别以文本或二进制格式接收传入的数据。该数据将以字符串或 Byte 数组中的二进制数据格式访问。对 ANSI 字符集的数据应使用 comInputModeText;而对其它数据,比如嵌入了控件字符、空值等的数据,应使用 comInputModeBinary。
接收到的每一个字节都被移入接收缓冲区,同时 InBufferCount 属性加一。这样 InBufferCount 属性就可被用于获得接收缓冲区中字节的数目。将该属性的值设置为 0,即可清空接收缓冲区。
发送缓冲区
Output 属性被用来向发送缓冲区发出命令和数据。
与 Input 属性类似,数据可以以文本或二进制格式发送。Output 属性必须用字符串变体型发送文本,用 Byte 数组变体型发送二进制数据。
可用 Output 属性发送命令、文字字符串或 Byte 数组数据。例如:
'发送AT命令MSComm1.Output = "ATDT 555-5555"'发送文本字符串MsComm1.Output = " This is a text string "'发送Byte数组数据MSComm1.Output = Out
如前面提到的,每发送一行必须以回车字符 (vbCr) 结束。在上例中,Out被定义为 Byte 数组变体型:Dim Out() As Byte。假如它是字符串变体型,则应定义为:Dim Out() As String。
可用 OutBufferCount 属性监视发送缓冲区中的字节数目。将该值设置为 0 可将发送缓冲区清空。

没有错

安装 msdn 很好 的

太高级了,不动


奉贤区17165674309: VB编程 使用MSComn控件向串口通信端口发送字符信息,把例子的程序完整的复制了,编译没错,但就是不显示 -
弋祝西曼: 你的程式是通过Com口实现两台电脑间的通信,就是向Commport 1号口发送字符以及监听该口接收字符.一般调试的方式是,用串口线将A,B两台电脑的Com1口连接起来,并且两台电脑都运行该程式.这样在A电脑TextBox输入字符后发送,B电脑就会收到,并在程式界面中显示出来.在B电脑输入的就会在A电脑显示出来.如果没有两台电脑做测试的话,就用mlista1的方案,将Com口短路,这样就是电脑自己同自己通信了.

奉贤区17165674309: vb与单片机的串口通信 -
弋祝西曼: 要用MSComm控件.发送MSComm.output 接受MScomm.input 你的串行通信必须先定好于单片机的通信协议,定了通信协议才能写程序.我这里有《VB与RS-232串行通信》这本书的电子版,如果你需要把你邮箱给我,我发给你,这书对你学习串行通信很管用.我们也可以一起讨论,我也是菜才学这个,刚做了个VB与单片机串行通信显示温湿度的曲线.我QQ49370340

奉贤区17165674309: VB串行通讯中MSComm1.InputLen 的用法 -
弋祝西曼: msdn中的说明:InputLen 属性的缺省值是 0.设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容. 如果每次我要接受4个字节的数据进行处理,MSComm1.InputLen 应该设为多少? 其实就是一次从缓冲区中读区的字节数了,要读4个字节就设置inputlen=4 如果知道帧长时就很有用的, 发送过来后都用字节数组进行接收吗? 当InputMode=1时用字节数组 同时MSComm1.RThreshold 设为4对不对? 这是指当接收缓冲区达到4个字节时触发OnComm 事件

奉贤区17165674309: 笔记本怎样实现串口通信,要用VB中MSComm控件实现真正与器件的通信?不仅可以模拟,还应真实通信 -
弋祝西曼: 这个好简单哦,我在公司经常做类似的工程.首先 笔记本一半没有串口,所以需要一个USB转串口线,其次你说的器件要具有串口功能,然后你就可以编程啦,简单的很.

奉贤区17165674309: 利用VB串口通信控件MSComm,以二进制方式传输一个900KB左右的文件 -
弋祝西曼: 你的代码问题太多了.Open "c:\a.dat" For Binary As #1 '打开a.DAT文件 ReDim b(LOF(1)) Get #1, , b Close #1'''''''''''''''''''''''' Private Sub MSComm1_OnComm() '数据大了会被多次触发, Dim buffer As Variant Dim a() As Byte buffer = ...

奉贤区17165674309: vb 串行通信MSCOMM -
弋祝西曼: 你贴出的代码明显不完整,从这两个函数看逻辑上没有什么大问题.简单分析如下:1、Private Function SendString() As Boolean 调用该函数,则通过MSComm1指向的串口发送外部变量MyData中存储的数据.2、Private Function ...

奉贤区17165674309: VB环境下使用MSComm实现PC机与单片机的通信程序 -
弋祝西曼: MSComm1.CommPort = 3 '这里搞一个你的电脑上没有的串口号,例如我的电脑没有串口3 MSComm1.PortOpen = True MSComm1.PortOpen = FalseExit SubComm_Error:If (Err.Number = comPortInvalid) Then MsgBox "无效的串口号!" & ...

奉贤区17165674309: 用VB编写串异步串口通讯,MSComm控件的发送缓存器的工作流程是怎样的 -
弋祝西曼: 是这样的! 因为串口传输时就是某脚间的电压按一定的规律变化(波特率等),是单向的,而对方按此规律去解读那电压就还原信息了,不管对方断开与否,那电压还是在那里.

奉贤区17165674309: vb串口数据读取
弋祝西曼: 没有通信协议和读取指令,就LZ这点描述我看得有点迷糊. VB串口通信则需要利用MSCOMM控件来实现. 串口通信代码可参考:http://www.vbgood.com/thread-83700-1-1.html

奉贤区17165674309: VB中串口通讯用什么控件? -
弋祝西曼: MSComm控件Private Sub Command1_Click() Dim a As String, B As String If MSComm1.PortOpen = True Then a = Text2.Text MSComm1.Output = a Else MsgBox "请打开串口!" End If End SubPrivate Sub Command2_Click() If MSComm1....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网