| Windows平台上的串行通信简介 |
|
| 作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-3-12 20:59:59 |
|
| |
|
|
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$
|
|
本篇文章属于主题:PC系列机的串行通信,了解更多请点击:PC系列机的串行通信 |
|
|
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: Turbo C中异步通信功能调用 下一篇文章: RS-422总线与RS-485总线 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |