Windows平台上的串行通信简介 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

  Windows平台上的串行通信简介

  1.使用VC编程

  利用VisualC++编写串行通信程序可借助于API(ApplicationProgramInterface)函数,

Windows平台上的串行通信简介

。Windows9x及更高版本的通信函数为32位。涉及到串行通信的APl函数主要有以下几个:

  打开通信资源(包括通信口)使用CreateFile(),通信资源被看成一个文件。该函数有7个自变量。

  对通信口的设置涉及3个函数:SetupComm()使用来设置发送和接收缓冲区的大小;GetCommState()可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState()用来对通信口进行自己的设置。

  发送数据使用WriteFile()函数。

  读接收到的数据使用ReadFile()函数。

  清除通信错误并报告通信口当前状态使用ClearCommError()函数。

  指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。

  这些函数的说明可参看VisualStudioMSDN(MicrosoftDeveloperNetwork),

电脑资料

Windows平台上的串行通信简介》(https://www.unjs.com)。

  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$

 

 

最新文章