Windows平台上的串行通信简介
Windows平台上的串行通信简介 " e7 ]& b9 w8 G7 g+ G6 w
1.使用 VC编程
3 [0 c# c) S! x0 i- { 利用 Visual C 编写串行通信程序可借助于API(Application Program Interface)函数。 Windows 9x及更高版本的通信函数为32位。涉及到串行通信的APl函数主要有以下几个:
& T, M! A! [1 }$ h% A; H6 { 打开通信资源(包括通信口)使用CreateFile( ) ,通信资源被看成一个文件。该函数有7 个自变量。
( X& B4 f6 q+ z1 I. k 对通信口的设置涉及3个函数:SetupComm( )使用来设置发送和接收缓冲区的大小; GetCommState( )可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState( )用来 对通信口进行自己的设置。
# @% s! Y2 q2 v0 q$ ^, C 发送数据使用WriteFile( )函数。 : k; J2 ~% ?$ _0 `* \ X
读接收到的数据使用ReadFile( )函数。
1 j4 K; w" L! T5 ~6 o 清除通信错误并报告通信口当前状态使用ClearCommError()函数。
3 g* I' v2 I1 o( b5 ^% s 指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。
+ E* H: D Z6 Y1 b% L/ e/ |$ e 这些函数的说明可参看“Visual Studio MSDN”(Microsoft Developer Network)。
! K5 s- D/ @* X 2.使用VIi编程
8 N6 ?3 X3 P _( {4 i( e Visual c 3.0(VB)及以上的专业版、企业版都提供了一个通信控件,5.O版本以后称之为MSComm。利用该控件可很方便地实现RS-232通信。 * L1 B' q! e, {% @; \
下面是一个很简单的程序示例,读者从注释中不难理解它的作用。这里假定事先已定义Comml为 MSComm类型的对象。
5 W( n+ Q. {: [* O/ L2 j Comml.CommPort=2 ’指定Comml是COM2口
& ]; O0 O/ w) u! }/ _ Comml.Settings="9600,n,8,l” ’设置通信参数 6 ~- R$ y+ v) ?8 \* @
Comml.InputLen=0 ’读取接收数据时,一次读取所有已收到的字符 ; Z! U. a5 i, g/ V; g( U
Comml.PortOpen=True ’打开COM2
- A- I3 q* k! h y: b Comml.DTREnable=True ’置DTR 3 f( [4 s4 ?" q( a) \
Comml.RTSEnable=True ’置RTS 9 P3 r- O8 ], e' W( z
Comml.Output=”Test Communication” ’发送一字符串 . \( m; \* e# }( l& u" ]" _
Do ’循环等待,直到接收到5个以上的字符为止
( K3 R- Y( [! I' o2 L DoEvents ’此期间将控制权交还给Windows,以响应其他事件
% f! f1 v1 }5 N; x8 K. b Loop Until Comml.InBufferCounter>=5 0 m: s# }# Q, Q7 b" B! M0 Z/ Z" g8 T
InString $=Comml.Input ’读收到的字符,赋给变量InString$
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹