Windows平台上的串行通信简介 -电脑资料
2019-01-01
Windows平台上的串行通信简介
1.使用VC编程
利用VisualC++编写串行通信程序可借助于
API(ApplicationProgramInterface)函数,。
Windows9x及更高版本的通信函数为32位。
涉及到串行通信的APl函数主要有以下几个:
打开通信资源(包括通信口)使用CreateFile(),通信资源被看成一个文件。
该函数有7个自变量。
对通信口的设置涉及3个函数:SetupComm()使用来设置发送和接收缓冲区的大小;GetCommState()可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState()用来对通信口进行自己的设置。
发送数据使用WriteFile()函数。
读接收到的数据使用ReadFile()函数。
清除通信错误并通信口当前状态使用ClearCommError()函数。
指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。
这些函数的说明可参看
VisualStudioMSDN(MicrosoftDeveloperNetwork),
《》()。
2.使用VIi编程
Visualc++3.0(VB)及以上的专业版、企业版都提供了一个通信控件,5.O 版本以后称之为MSComm。
利用该控件可很方便地实现RS-232通信。
下面是一个很简单的程序示例,读者从注释中不难理解它的作用。
这里假定事先已定义Comml为MSComm类型的对象。
Comml.CommPort=2指定Comml是COM2口
Comml.Settings="9600,n,8,l设置通信参数Comml.InputLen=0读取接收数据时,一次读取所有已收到的字符Comml.PortOpen=True打开COM2
Comml.DTREnable=True置DTR
Comml.RTSEnable=True置RTS
Comml.Output=TestCommunication发送一字符串
Do循环等待,直到接收到5个以上的字符为止
DoEvents此期间将控制权交还给Windows,以响应其他事件LoopUntilComml.InBufferCounter>=5
InString$=Comml.Input读收到的字符,赋给变量InString$。