MSCommLib.MScomm是什么东东,用来干什么使得?

betterjonah 2003-10-06 04:15:55
MSCommLib.MScomm是什么东东,用来干什么使得?
主要用来解决什么问题?
...全文
1387 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2003-10-07
  • 打赏
  • 举报
回复
是一个MSCOMM控件,用来做串口通信用,还有接口等
查找MSDN
wp8031 2003-10-07
  • 打赏
  • 举报
回复
使用MSCOMM控件主要是通过事件来处理串行口的交互,即当数据到达时,控件的OnComm的事件就会来捕获或处理这些通讯事件。而OnComm事件也可以用来捕获和处理通讯错误。在实际应用中,一个MSCOMM控件就对应一个串行口,所以如果要处理多个串行口的话,必须有相应数量的控件与之对应。下面介绍一下此控件的主要属性:

  CommPort---------设置或者返回串行端口号

  Settings-------------用来设置和返回波特率,奇偶校验,数据位和结束位

  PortOpen----------设置或者返回通讯端口的状态,也可以打开和关闭一个端口

  Input----------------从接受缓冲区里获取或删除数据

  Output-------------给发送缓冲区里写数据

  另外对于OnComm事件来说,每当CommEvent的数值发生改变时就会产生这种事件,这就表明要么就是一个通讯事件的产生,要么是一个通讯错误产生。CommEvent属性里面包含了通讯事件或者产生的错误的编号。
那么为了能够更加清楚的说明上述问题,下面给出一个例程,例程要实现的功能很简单,就是在一个过程里给一个特定的串行口发送数据,然后在另外一个过程里实时检测此串行口以便一旦此串行口的发送缓冲区有数据就显示消息,如果发送空数据就会显示"无数据的字样"。界面如下:



  主要核心代码如下:

Private Sub Command1_Click()
If Text1.Text = "" Then
List1.AddItem "发送缓冲区无数据"
Exit Sub
End If
MSComm1.Output = Text1.Text
End Sub
Private Sub Command2_Click()
Unload Me
End Sub

'主要进行串口的初始化
Private Sub Form_Load()
'选择com1
MSComm1.CommPort = 1
'设置波特率为9.6kpbs,没有奇偶校验,8位数据位,1位结束位
MSComm1.Settings = "9600,N,8,1"
'读取全部的输入缓冲区
MSComm1.InputLen = 0
'端口打开
MSComm1.PortOpen = True
MSComm1.RThreshold = 10
MSComm1.SThreshold = 10
'以下就可以进行数据的发送了
End Sub

'所有的通讯事件都可以激发MSComm1控件的OnComm事件
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
'此处的代码可以进行当串口的接受缓冲区里有RThreshold个字符的处理
Case comEvSend
'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理
List1.AddItem "发送缓冲区有数据"
End Select
End Sub

  四、小结

  虽然上面的例程实现的功能简单,但是从文中的分析不难看出,通过控件MSCOMM的input 和output属性可以很方便的接受和发送串口缓冲区的数据。当然要编制比较完善的通讯应用程序,还需要进行更深入的研究,比如通过使用"握手"的机制来增强通讯的安全性和稳定性,另外通过数据的重复的发送达到收发数据的准确性等等。这些方面希望读者在实际开发中多实践,以便能够满足实际的需要。
easydone 2003-10-06
  • 打赏
  • 举报
回复
串口通信用。
goodname008 2003-10-06
  • 打赏
  • 举报
回复
这些都是MSDN中的啊。
海牛 2003-10-06
  • 打赏
  • 举报
回复
goodname008(卢培培,LPP Software)能把你的资料共享一下吗?
zjcxc 2003-10-06
  • 打赏
  • 举报
回复
MSDN上有详细介绍.
goodname008 2003-10-06
  • 打赏
  • 举报
回复
MSComm 控件示例
下面这个简单的例子演示了用调制解调器进行基本的串行通讯:

Private Sub Form_Load ()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 确保
' 调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' 从串行端口读 "OK" 响应。

' 关闭串行端口。
MSComm1.PortOpen = False
End Sub

注意 MSComm 控件可以采用轮询或事件驱动的方法从端口获取数据。这个简单的例子使用了轮询方法。关于事件驱动方法的例子请参阅 OnComm 事件的帮助。
goodname008 2003-10-06
  • 打赏
  • 举报
回复
MSComm 控件


MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

语法

MSComm

说明

MSComm 控件提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。


在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。

尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

属性 描述
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
Jackile 2003-10-06
  • 打赏
  • 举报
回复
是一个MSCOMM控件,用来做串口通信用,还有接口等

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧