Windows平台上的串行通信简介

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论

Windows平台上的串行通信简介 

  1.使用 VC编程
  利用 Visual C++编写串行通信程序可借助于API(Application Program Interface)函数。 Windows 9x及更高版本的通信函数为32位。涉及到串行通信的APl函数主要有以下几个:
  打开通信资源(包括通信口)使用CreateFile( ) ,通信资源被看成一个文件。该函数有7 个自变量。
  对通信口的设置涉及3个函数:SetupComm( )使用来设置发送和接收缓冲区的大小; GetCommState( )可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState( )用来 对通信口进行自己的设置。
  发送数据使用WriteFile( )函数。
  读接收到的数据使用ReadFile( )函数。
  清除通信错误并报告通信口当前状态使用ClearCommError()函数。
  指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。
  这些函数的说明可参看“Visual Studio MSDN”(Microsoft Developer Network)。
  2.使用VIi编程
  Visual c++ 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=”Test Communication”      ’发送一字符串
    Do                                                                             ’循环等待,直到接收到5个以上的字符为止
               DoEvents                                                     ’此期间将控制权交还给Windows,以响应其他事件
    Loop Until Comml.InBufferCounter>=5
    InString $=Comml.Input                                       ’读收到的字符,赋给变量InString$

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答