用api函数实现串行通讯

用api函数实现串行通讯

ID:18127002

大小:45.00 KB

页数:10页

时间:2018-09-14

用api函数实现串行通讯_第1页
用api函数实现串行通讯_第2页
用api函数实现串行通讯_第3页
用api函数实现串行通讯_第4页
用api函数实现串行通讯_第5页
资源描述:

《用api函数实现串行通讯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用API函数实现串行通讯责任编辑:admin 更新日期:2005-8-6以往的DOS系统是通过DOS中断和BIOS中断向用户提供串行接口的通讯能力。在Windows环境下,C++的开发工具既没有提供象DOS和BIOS中那样专门的串行通讯控制方法,也不允许用户直接控制串口的中断。为了保证资源共享,Windows系统完全接管了各种硬件资源,使用中断来控制端口将破坏系统的多任务性,使系统的稳定性受到影响。但Windows同时也提供了功能强大的API函数使用户能间接的控制串行通讯。1、实现串行通讯的相关

2、API函数API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。常用函数及作用如表5-1所示。表5-1常用串行通讯API函数及其作用函数名  作用CreateFile打开串口GetCommState  检测串口设置SetCommState设置串口BuilderCommDCB用字符串中的值来填充设备控制块GetCommTimeouts检测通信超时设置SetCommTimeouts设置通信超时参数SetCommMask设定被监控事件WaitCommEve

3、nt等待被监控事件发生WaitForMultipleObjects等待多个被监测对象的结果WriteFile发送数据ReadFile  接收数据GetOverlappedResult返回最后重叠(异步)操作结果PurgeComm清空串口缓冲区,退出所有相关操作ClearCommError更新串口状态结构体,并清除所有串口硬件错误CloseHandle  关闭串行口2、打开串口函数CreateFile原本用于打开文件,但它同样可用于打开一个通信端口。与系统中其他对象一样,通信端口也是用句柄来标识的

4、。CreateFile函数返回被操作的通信端口句柄,其调用方法如下:HANDLECreateFile(LPCTSTRlpFileName,    //指向文件名字符串的指针DWORDdwDesireAccess,     //操作模式DWORDdwShareMode,      //共享方式LPSECURITY_ATTRIBUTES  lpSecurityAttributes,            //指向安全属性的指针DWORDdwCreationDistribution,//文件建立方式D

5、WORDdwFlagsAndAttributes  //文件属性HANDLEhTemplateFile)      //模板文件句柄lpFileName:指向一个以NULL结束的字符串,该串指定了要创建、打开或截断的文件、管道、通信源、磁盘设备或控制台的名字。当用CreateFile打开串口时,这个参数可用“COM1”指定串口1,用“COM2”指定串口2,依此类推。dwDesireAccess:指定对文件访问的类型,该参数可以为GENERIC_READ(指定对该文件的读访问权)或ENERIC_W

6、RITE(指定该文件的写访问权)两个值之一或同时为为这两个值。用ENERIC_READ

7、GENERIC_WRITE则指定可对串口进行读写;dwShareMode:指定此文件可以怎样被共享。因为串行口不支持任何共享模式,所以dwShareMode必须设为0;lpSecurityAttributes定义安全属性,一般不用,可设为NULL。Win9x下该参数被忽略;dwCreationDistribution定义文件创建方式,对串口必须设为OPEN_EXISTING,表示打开已经存在的文件;dwFla

8、gsAndAttributes为该文件指定定义文件属性和标志,这个程序中设为FILE_FLAG_OVERLAPPED,表示异步通信方式;hTemplateFile指向一个模板文件的句柄,串口无模板可言,设为NULL。在Windows9x下该参数必须为NULL。用异步读写方式打开串口1的函数调用如下:m_hComm=CreateFile(“COM1”,       //打开串口1                     GENERIC_READ

9、GENERIC_WRITE,//读写方式      

10、                  0,              //不能共享                     NULL,         //不用安全结构                     OPEN_EXISTING,      //打开已存在的设备                                                                        FILE_FLAG_OVERLAPPED,   //异步方式              

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。