通信设备--Visual Basic 编程方法

用Visual Basic 2005 控制串行端口

用Visual Basic 控制串行端口有使用 .NET Framework 2.0 串行端口类的方法和使用Win32 API的方法。 在此介绍使用串行端口类收发数据的相对简单的编程例子。

.NET Framework 2.0 SerialPort (串行端口类)

.NET Framework 从Ver.2.0 起添加了COM端口用类(SerialPort组件)。 Visual Basic 2005 能够使用.NET Framework 2.0 的SerialPort组件,能够相对简单地控制COM端口。 请注意,Visual Basic 6 等以前的版本常用的“ MSComm控件 ”不能再使用。

.NET Framework 2.0 SerialPort 的功能

  • 连接到串行端口的设置
  • 指令发送(RTS、CTS等串行接口各种控制信号控制以及状态输入)
  • 数据发送
  • 串行连接中的各种各样的事件以及错误监视与处置(各种控制信号的状态变化以及通信中发生错误时,能够发生事件)
  • 连接到串行端口的设置

.NET Framework 2.0 SerialPort 编程要点

  • 能够写入/读入包含NewLine(在后面的讲解中,为方便起见,描述为“分隔符代码”(结束代码/分隔符))的数据。通过附加分隔符代码,自动判断为连续的数据分隔。 发送时使用“WriteLine”,自动在数据列附加指定分隔符代码。
  • 通过中断(事件驱动)处理,能够进行双向处理。利用“DataReceived”、“PinChanged”事件,能够在控制信号线的变化、数据接收等的事件发生瞬间接收通知。 由于在事件发生时发生中断,能够迅速进行必要的处理。

粘贴SerialPort组件

从Visual Basic 的“工具箱”选择SerialPort组件,左击并拖放组件,粘贴到Form上。粘贴完成后,在Form下面出现粘贴的组件。

设置属性

点击出现的组件,切换到该组件的属性窗口。在“PortName”属性,设置通信使用的端口号。初始值为“COM1”。在“BaudRate”属性,设置通信速度。初始值为“9600”。除此之外,还可设置是否使用RTS。

还可设置事件

点击属性窗口的事件按钮,出现该组件的事件一览。选择要使用的事件,双击,添加该事件例程,在此记述发生各种事件时的处理。

事件种类

DataReceived 接收事件
Chars
接收字符,在接收缓冲区存储数据时
Eof
接收EOF(End-of-file),将其存储到接收缓冲区时
ErrorReceived 错误事件
Frame
检测帧出错
Overrun
检测溢出错误
RxOver
检测缓冲区溢出
RxParity
检测奇偶错误
TxFull
发送缓冲区已满,不能将数据存储在缓冲区的状态
PinChanged 串行芯变更事件
Break
检测Break信号
CDChanged
CD (Carrier Detect) 的状态发生变化
CtsChanged
CTS (Clear to Send) 的状态发生变化
DsrChanged
DSR (Data Set Ready) 的状态发生变化
Ring
检测振铃指示器

用Win32 API控制串行端口

串行端口的编程也有调用Win32 API(Application Program Interface)的方法。需要深入掌握Win32 API与编程语言的知识,但能够编写更高级的、更灵活的程序。

Win32 API是Windows标准提供的功能(函数)套件。以DLL形式提供,只要是在Windows上工作的应用,都能够共用。Windows以大约1000种API函数的方式提供主要功能,应用软件由这些功能的组合构成。虽然Visual Basic 、 Visual C 具有众多命令,但并非所有的 Windows 功能都能使用,而是根据需要调用 API函数使用。 要控制串行端口,使用以下的API等。

用于控制串行端口的 Win32 API

端口开
CreateFile
端口设置
SetCommState, SetCommTimeouts
数据发送
WriteFile
数据接收
ReadFile

To PageTop