使用Visual C++进行串口通信编程

使用Visual C++进行串口通信编程

ID:41037409

大小:34.50 KB

页数:4页

时间:2019-08-14

使用Visual C++进行串口通信编程_第1页
使用Visual C++进行串口通信编程_第2页
使用Visual C++进行串口通信编程_第3页
使用Visual C++进行串口通信编程_第4页
资源描述:

《使用Visual C++进行串口通信编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、使用VisualC++进行串口通信编程利用VisualC++在windows环境下设计异步串行通信程序可以使用不同的方法。一种方法可以使用windows系统提供的串行口API函数;另一种方法可以直接使用Microsoft公司提供的ActiveX控件MSCOMM.OCX。利用MSCOMM.OCX控件进行串行口程序设计相对比较简单,只要对该控件的属性、事件和方法进行设置和操作,就能完成简单的串行通信功能。而直接使用windows系统提供的串行口API函数则相对较为灵活。试验中,可根据自己的情况任意其中一种进行编程。以下针对如何使用windows系统提供的串行口API函数进行编程

2、做简要介绍   在windows系统,串行口和其它通信设备都是作为文件进行处理的。串行口的打开、关闭、发送和接收所用的函数都与操作文件的函数相同。总体来说,利用VisualC++进行异步串行通信程序设计通常可以分为4个大阶段,它们是串行口打开阶段、串行口状态值读取和属性设置阶段、串行数据的发送与接收阶段,以及串行口关闭阶段。(1)    打开串行口在对串行口进行所有的操作之前,首先要将其打开。串行口的打开可以使用CreateFile函数,CreateFile函数将返回一个句柄,在随后与该串行口相关的各种操作中使用。与文件操作相同,在利用CreateFile打开串行口时,也可

3、以将串行口指定为“读访问权限”、“写访问权限”或“读写访问权限”。HANDLECreateFile(LPCTSTR  lpFileNameDWORD   dwDesiredAccessDWORD   dwSharedModeLPSECURITY_ATTRIBUTES  lpSecurityAttributesDWORD   dwCreationDispositionDWORD   dwFlagsAndAttributesHANDLE   hTemplateFile);在调用成功时,CreateFile返回打开文件的句柄,该句柄将在以后与该串口相关的各个调用函数中使用。如果调

4、用失败,则CreateFile返回INVALID_HANDLE_VALUE。(2)    串行口的状态读取和属性设置一旦将串口打开,就可以对该串口的属性进行设置。由于串口的属性非常复杂,因此通常采用读取该串口当前状态值,然后在此基础上进行修改的方法。n        获取串行口当前状态windows系统使用GetCommState函数获取串行口的当前配置,GetCommState的声明如下:BOOL  GetCommState(      HANDLEhFile      LPDCB  lpDCB);GetCommState函数的第一个参数hFile是由CreateFile

5、函数返回指向已打开串行口的句柄。第二个参数指向设备控制块DCB。DCB是一个非常重要的数据结构,几乎所有的串行口属性和状态都存储在该结构的成员变量中。n        对串口进行设置windows系统利用SetCommState函数修改串行口的当前参数配置。SetCommState函数声明如下:BOOL  SetCommState(      HANDLEhFile      LPDCB  lpDCB);GetCommState函数的第一个参数hFile是由CreateFile函数返回指向已打开串行口的句柄。第二个参数指向设备控制块DCB。如果函数调用成功,则返回值为非0;

6、若函数调用失败,则返回值为0。当应用程序仅仅需要修改一部分串行口的配置值时,可以通过GetCommState函数获得当前的DCB结构,然后更改参数,再调用SetCommState函数设置修改过的DCB来配置串行口。n        为串口分配接收和发送缓冲区当一个串行口打开时,可以为该串口分配一个发送缓冲区和一个接收缓冲区。串行口发送缓冲区和接收缓冲区的配置可以由函数SetupComm实现。如果不调用SetupComm,系统会为该串口分配默认的发送缓冲区和接收缓冲区。但是为了保证缓冲区的大小与实际需要的一致,最好调用该函数进行设置。SetupComm函数原型如下:BOOL 

7、 SetupComm(     HANDLEhFile     DWORDdwInQueue     DWORDdwOutQueue);其中hFile是由CreateFile函数返回指向已打开串行口的句柄。参数dwInQueue和dwOutQueue分别指定应用程序推荐使用的接收缓冲区和发送缓冲区的大小。n        清空接收和发送缓冲区在进行串口所有的发送和接收数据操作之前,最好使用PurgeComm函数将串行口发送缓冲区和接收缓冲区中的数据清楚干净。PurgeComm函数原型如下:BOOL  PurgeCo

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

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

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