今天,我们共同学习在Windows环境下设计串口通信程序,利用Microsoft公司提供的ActiveX控件MSComm.ocx。
首先,要对MSComm控件的基本知识有所了解。
MSComm控件只有一个事件,即OnComm事件。当CommEvent属性的值发生变化时,就产生OnComm事件,标志发生了一个通信事件或一个错误。在事件处理程序设计中可以根据CommEvent属性值来执行不同的操作。
1)添加MSComm控件。默认状态下工具箱中并无MSComm控件,需要在“工程”→“部件” →选择Microsoft Comm Control 6.0组件,这样就可以在工具箱中找到MSComm控件,把MSComm控件添加到FORM中。
2)串口属性设置。在添加MSComm控件后,在通信之前要对属性进行设置。根据前面的介绍,对MSComm控件设置如下:
Com.CommPort=1; 设定串口号
If( com.PortOpen )
Com.PortOpen=false; 若该端口已经打开,则关闭该端口
Com.Rthreshold=1; 当接收到数据时就触发OnComm事件
Com.Settings=” 9600,n,8,1”; 设置参数:数据传输速率为9600bit/s,没有奇偶校验,数据位是8位,停止位是1位
Com.Handshaking=MSCommLib.HandshakeConstants.comNone; 没有使用握手协议
Com.InputMode=MSCommLib.InputModeConstants.comInputModeText; 文本形式取回
Com.InputLen=0; 当设置为0时,在Input可用时读取所有的数据
Com.OnComm+=new System.EventHandler(this.OnComm); OnComm事件发生加入列表
Com.PortOpen=true; 打开端口
'程序初始化
Private Sub Form_Load()
MSComm1.CommPort = 1 '通信口
MSComm1.Settings = '9600,E,7,1' '串口参数设置
MSComm1.Handshaking = 0 '握手信号
MSComm1.InputLen = 0 '设置和返回input每次读出的字节数,设为0时读出接收缓冲区中的内容
MSComm1.OutBufferCount = 0 '设置和返回发送缓冲区的字节数,设为0时清空发送缓冲区
MSComm1.InBufferCount = 0 '设置和返回接收缓冲区的字节数,设为0时清空接收缓冲区
MSComm1.PortOpen = True '打开串口
InAlarm.FillColor = QBColor(10) '输入信号指示灯,初始绿色
OutAlarm.FillColor = QBColor(10) '输出信号指示灯,初始绿色
End Sub
学习只要态度认真,就一定能够学有所成!
信息技术时代,掌握编程至关重要!
联系客服