串口通信Windows程序设计

串口通信Windows程序设计

ID:37728869

大小:50.50 KB

页数:10页

时间:2019-05-29

串口通信Windows程序设计_第1页
串口通信Windows程序设计_第2页
串口通信Windows程序设计_第3页
串口通信Windows程序设计_第4页
串口通信Windows程序设计_第5页
资源描述:

《串口通信Windows程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、串口通信Windows程序设计一.工作环境硬件连接好的串口设备(虚拟串口软件VSPM),VisualStudio2008二.基本知识1.串口通信串行口通信,IDE,USB,RS232,主要讲RS232接口,理论传输距离可以达到50m,实际应用只有15m左右,传输速度较慢,波特率115200bps时,速度才有14KB/S2.串口通信传输方式a)异步传输:异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。双机通讯需要设定开始位,数据位,校验位,停止位,

2、双机不需要同步时钟,速率慢。b)同步传输:数据以帧的形式发送,双机时钟必须同步,否则会出现传输错误,速度比异步传输快。三.Windows串口程序设计基础在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。我们只介绍API串口通信部分。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而异步操作方式,API函数会立即返回,操作在

3、后台进行,避免线程的阻塞。无论那种操作方式,一般都通过四个步骤来完成:1.打开串口2.配置串口3.读写串口4.关闭串口(1)打开串口HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDesiredAccess,DWORDdwShareMode,LPSECURITY_ATTRIBUTESlpSecurityAttributes,DWORDdwCreationDistribution,DWORDdwFlagsAndAttributes,HANDLEhTemplateFile);lpFileName:将要打

4、开的串口逻辑名,如“COM1”;dwDesiredAccess:指定串口访问的类型,可以是读取、写入或二者并列;dwShareMode:指定共享属性,由于串口不能共享,该参数必须置为0;lpSecurityAttributes:引用安全性属性结构,缺省值为NULL;dwCreationDistribution:创建标志,对串口操作该参数必须置为OPEN_EXISTING;dwFlagsAndAttributes:属性描述,用于指定该串口是否进行异步操作,该值为FILE_FLAG_OVERLAPPED,表示使用异步的I/O;该值为0,表

5、示同步I/O操作;hTemplateFile:对串口而言该参数必须置为NULL;同步I/O方式打开串口的示例代码:HANDLEhCom;//全局变量,串口句柄hCom=CreateFile("COM1",//COM1口GENERIC_READ

6、GENERIC_WRITE,//允许读和写0,//独占方式NULL,OPEN_EXISTING,//打开而不是创建0,//同步方式NULL);if(hCom==(HANDLE)-1){AfxMessageBox("打开COM失败!");returnFALSE;}returnTRUE;重叠I/O打

7、开串口的示例代码:HANDLEhCom;//全局变量,串口句柄hCom=CreateFile("COM1",//COM1口GENERIC_READ

8、GENERIC_WRITE,//允许读和写0,//独占方式NULL,OPEN_EXISTING,//打开而不是创建FILE_ATTRIBUTE_NORMAL

9、FILE_FLAG_OVERLAPPED,//重叠方式NULL);if(hCom==INVALID_HANDLE_VALUE){AfxMessageBox("打开COM失败!");returnFALSE;}returnTRUE;(1)

10、配置串口在打开通讯设备句柄后,常常需要对串口进行一些初始化配置工作。这需要通过一个DCB结构来进行。DCB结构包含了诸如波特率、数据位数、奇偶校验和停止位数等信息。typedefstruct_DCB{………DWORDBaudRate;//波特率DWORDfParity;//指定奇偶校验使能。若此成员为1,允许奇偶校验检查………BYTEByteSize;//通信字节位数,4—8BYTEParity;//指定奇偶校验方法。此成员可以有下列值:EVENPARITY偶校验NOPARITY无校验MARKPARITY标记校验ODDPARITY奇校

11、验BYTEStopBits;//指定停止位的位数。此成员可以有下列值:ONESTOPBIT1位停止位TWOSTOPBITS2位停止位ONE5STOPBITS1.5位停止位………}DCB;波特率为以下值:CBR_110,C

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

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

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