You are on page 1of 3

维普资讯 http://www.cqvip.

com

第 26卷第 2期  唐 山 师 范 学 院 学 报  2O04年 3月 



,.26No.
2  M ar.2004 

捌用 VB编 写串 口通信程 序 
李 小慧 

唐山师范学院 计算机系,河北 唐 山 06
300
0) 

摘 要:通过 实例 ,介绍利用 VB进行串行通信编程 的方法,即如何通过 Ms


comm 控件进行串口通信数据的 
读 写 

关键词 :串口通信 ;软件;属性;事件;端 口 


中图分类号 :TN91
9,3
  文献标识码:B  文章编号 :1
009-
91 
15(2
004)0
2-00
84-
03 

自动化 是 人类一起 努 力 的 目标 ,期待 以其他 的方 式来 代替人类 完成 一些 困难或 者是周 期性 的工作 。计 


算机 自从诞生以来,经过不断的发展 ,功能不断提升,软硬件各方面均有长足的进步。Vi sua
l 
Bas
ic(简称 
VB)是一种 在 窗 口操 作平 台上 的视觉 开 发工具 ,使得 开发 更方便 快捷 。
 
现代 的世 界是 一个 高度 自动化 的世 界 ,各 种设 备都可 以和计 算机作 连线 ,而最 简单 的 自动 化连线 方式 
就 是使用 串行 通信 。VI3提供 了串行通 信控 件 ,让开 发者可 以方便 快捷地 开 发 串行 通信程 序 。利用计 算机 
进行 串 口通讯 是 自动化 将来 发展 的一种方 向。
 

  串行 通信 的实现 

.1 实现方 式 
利 用 VB进 行 串 口通 信 的开发 ,主要 是使用 一个控 件 :Msc
omm 控 件 。它 的 目的是 为 了让用户 设计一 
个 系统 可 以和 串行 端 口进行 沟通 及传送 数据 ,提供 了下 列两种 方式米 处理信 息 的流动 :
 
事 件驱 动 :是处理 连 接端 口通信 的一种 有效方 法 。当有 事件发 生时 ,程 序会被 告 知 。例 如 ,在有 一个 
字符到 达或 者一 个变化 发 生时 ,程序 都 可 以利 用 Ms
comm 控 件来侦 测 并处理这 些通信 事件 及通信 错误 。预 
先将程 序 写入控件 的事 件程 序 区块 中,一旦 事件 发生 即可 自动 执行 该段程序 。
 
程 序通 过检 查 CommEve
nt属性 的值来 循环 查询 事件和错 误 。例如 ,对 于某 些程序 ,并没有必 要每接 
收一个 字符 时都 产生 事件 ,有 时需 要接 收多个字 符或 数据 包后再 回应 。固定地 向设备 查询状态 的方式 较好 。
 
这两 种方式 都可 达 到数据 读写 的 目的,使用 时要 看实际 系统环 境而 定 。
 

.2 控件属性 
在利 用 Mscomm 控件 进行 编程 以前 ,首先 要 了解 一下这 个控件 的主 要属性 :
 
CommPor
t:设置 或返 回通信 连接 端 口代 号 。程 序必 须指定所 要进 行通信 的端 口号 ,系 统才会 使用它 与 
外界 进行通 信 。端 口号 的范 围是 1
.16,一般 的计算 机只有 一个或 两个 端 口号 ,因此一 般我们 使用 的端 口号 
的范围就 是 l
-2。
 
Set
ti
ngs:设置初 始化 参数 。以字符 串的形式 设置或返 回连 线速 度 、校验码 、数据位 、停止位 四个参 数 。
 
连 线速 度又 叫波特 率 ,即每 秒通信 的以 Bi
t为单位 的数 据量 ,一 般使用 9 
600、4 
800等波 特率 。
 
Port
Open:设置 或返 回通 信连 接端 I
21的状态 , 即端 I
21的 “打开 ”和 “关 闭 ”两种 状态 。使 用 串 I
21
进行 
通信前要打开串口,使用完毕后要关闭串口。在 VB中用逻辑值 Tr ue代表打开,Fa ls
e代表关闭。  
In
pu t
:从输入 寄存器返 回并删除字符。即从 串口读取数据并清除寄存器中已被读取 的数据。  
Ou
tput
:将欲传 送 的数据 写入 传输 寄存器 。 即 向串I
21写数据 。
 

nputLen:指定 由串行端 I 2
1读入 的字 符 串长度字 节个数 。
 
Rthr
eshol
d:设置 或返 回 引发接 收事件 的字 长数 ,即 “最 小接 收字 符数 ”。 当接 收 寄存器达 到所 设置 的 

收稿 日期 :20
02.
12.
22 
作者简介:李小慧 (1 9
77.
),女 ,河北唐 山人,唐山师范学 院计算机系助教。
 

84 .
 
维普资讯 http://www.cqvip.com

李 小 慧:利用 VB编写 串口通信程 序 

字 节数时 ,将会 引 发 OnComm 事 件 中的接 收事件 。默认值 为 0,即 寄存 器 中有多 少字符 均不 引发接收 事件 。
 
CommEve
nt: 只要有 通信 错误 或事件 发生 都会产 生 OnComm 事件 ,CommEvent属 性存有 该错误 或事 
件 的数值 码 。CommEvent会 返 回这些 数值码 中 的一个数值 ,来表示 通信 错误或 事件 。例 如 ,ComEvRe
cei
ve 
数值,它的意义就是收到 Rt
hre
shol
d个字符或字节。该事件将持续产生直到用 I
npu
t发生从接收寄存器中删 
除数据 。
 
1.
3 程序 实例 
我 们 用一个 简 单读 写的例 子米说 明如何进行 串 口通信 。
 

建 立一 个 EXE文件 ,在 For
m1中分别添 加 5个对 象 :Te
xtl文本 ,用 来输入 要传输 的信 息;Comma
nd1
 
按 钮 ,用来 发送数 据 ,将 Te
xtl中 的字 符写入 传输 寄存 器;Comma
nd2按钮 ,J
{j米接收 数据 ,即从 串 口的 
寄存器 中读 取数 据并 删除 字符 ;Li
stl列表框 ,依 次显示 从 串 口寄存器 中读取 的数据 ;Ms
comml控件 ,利 
用 它 的属性 进行 串 口通讯 。
 
程 序如 下 :
 
Pdva
te 
Sub Command1 Cl
ick()
  ‘ 发送 数据 函数 
Ms comml。Out
put=Text1.
Text ‘
将 Te
xtl中 的字符 串写入 传输 寄存器 
End 
Sub 

Pr
ivat
e Sub 
Command2
 Cl
ick(
) ‘
判 断 串 口是否打 开,
如果没 有打 开,
打开 串 口并 初始化 

f Ms
comm 
1。Por
tOpen= Fal
se 
Then 

M scomm 
l。Por
tOpen  True 

Ms
comm1.
Set
ti
ngs=”
9600,
n,8,
1” ’
9600波 特率 ,
无校 验,
8位数据 位,
1位 停 止位 
Ms
comm1.
Input
Len=1‘
设 定 串 口读入 的字符 串长度 为 1
 
Ms
comm 1
.RThr
eshol
d=1
  ‘
当接收 寄存器 达到 1个字符 时,
引发接 收事 件 
End I
f 

FndSub 

Pr
ivat
e Sub 
Form Lo
_ ad(
)  ‘
窗体装 载 函数 
M scomm  
1.Com m Por
t= l
  ’
设 定 Com1.
用 来进行 串 口通 讯 

85-
 
维普资讯 http://www.cqvip.com

第 26卷第 2期  唐 山 师 范 学 院 学 报  2
004年第 2期 

If 
M scomm 
1.Port
Open= Fal
se 
Then 

M seomm 
1.
Por
tOpen=Tr
ue 

End 
If 

Ms
commI
.Out
Bufe
rCount=0  情 空发送 缓冲 区 
Ms
comm1.
InBufe
rCount=0  ’
清 空 接收缓 冲 区 
End 
Sub 

Pf
iv ̄e
 Sub 
Msc
omml
 OnComm0  ‘
_
显 示接 收数据 函数
Di
m buferAs
 St
ring  ‘
定 义 bufe
r为字符 串 
bufer=Ms
comm1
.Input
  ‘
将 接收 寄存器 中 的字符赋值 给 bufe
r 
Li
st1
.Addl
tem 
bufer
  ・
将 bufe
r的值 加 入到列 表框 中显示 出来 
End 
Sub 

程序编 写完 毕 ,就 可 以连 接上其 它进 行 串 口通信 的设备 ,进行 调试 。


 
2 结论 
利用 VB 中的 Ms
comm 控 件进 行 串 口通 信是一种 方便 和快捷 的方 式 ,主 要利用 该控件 的 I
nput方法 从 
串 口中读 取数 据 ,利用 Ou ̄ut方法 向串 口写数 据 。在 自动化过 程 中,从 串 口读 写数据 是最基 础 的工 作 ,利 
用 VB可 以非常方 便和快 速地 从 串 口中读 取数据 ,而 且 VB 界面 比较友 好 ,因此利用 VB 编写 自动化控 制 
程 序是 非常 方便和 有效 的 。
 
参 考文献 :
 

1]范逸 之,
陈立元.
Vis
ual
 Ba
sic与 RS.
232 串行通信控制最新版【
M】.
北京:
中国青年出版社,
200
0. 

2]刘瑞新,
汪远征.
Vis
ual
 Ba
sic程序 设计教程【
M】.
北京:
机械工业出版社,
200
0. 

3]龚建伟.
Msc
omm 控件使用详解用[
EB/
OL]
.ht
tp:
#www.
g ̄wt
ech.
com (
龚建伟技术主页),
2001
.07
.26
. 

4】易兵.
VB串 口编程的几个 问题[
EB/
OL]
.ht
tp:
//
www.
giwt
ech.
com (
龚建伟技 术主页 ),
2001
.08.
02.
 

Use 
VB 
to 
Program 
Seri
al 
Com m uni
cat
ion 
Program 
LI
 Xi
ao.
hui
 


Depar
tment
 of 
Comput
er 
Sci
ence,Ta
ngs
han 
Teac
her
s Col
lege,Hebe
i T ̄gs
ha
n 063000,Chi
na)
 

Abst
ract:I
ntroduce 
the 
appl
icat
ion 
of 
Mso mm Cont
c rol
 and 
how 
to use
 it
s par
amet
ers.I
ntr
oduce
 th e 
meh od t
t o US
e VB6 
to 

pr
ogr
am 
h e 
t ser
ial
 communi
cat
ion 
prog
ram  
thr
ough 
exampl
es,mai
nly 
in 
how 
to 
use 
M sc
o mr
n Cont
rol
 to 
read 
dat
a f
orm 
ser
ial
 por
t or 

wr
ited
atai
nto 
ser
ial
 por
t. 

Key 
words:s
eri
al 
communi
cat
ion;s
oft
ware;pr
oper
 ̄';event
;por
t 

责任 编辑 、校 对 :田敬 军 

86 .
 

You might also like