第11章+串口编程

第11章+串口编程

ID:45156540

大小:501.00 KB

页数:33页

时间:2019-11-10

第11章+串口编程_第1页
第11章+串口编程_第2页
第11章+串口编程_第3页
第11章+串口编程_第4页
第11章+串口编程_第5页
资源描述:

《第11章+串口编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第11章串口编程11.1串行通信的基本原理11.2基于Win32API串口编程11.3基于控件串口编程11.4第三方类串口编程11.1串行通信的基本原理在PC机的主板上,有一种类型的接口可能为我们所忽视,那就是RS-232C串行接口,在微软的Windows系统中称其为COM。11.1串行通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。在Windows环境(WindowsNT、Win98、Windows2000)下,串口是

2、系统资源的一部分。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。11.1串行通信的基本原理串口信号线的接法一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。25芯和9芯的主要信号线相同。①主要信号线定义:2脚:发送数据TXD;3脚:接收数据RXD;4脚:请求发送RTS;5脚:清除发送CTS;6脚:数据设备就绪DSR;20脚:数据终端就绪DTR;8脚:数据载波检测DCD;1脚:保护地;7脚:信号地。11.1串行通信的基本原理②电气特性: 数

3、据传输速率最大可到20Kbps,最大距离仅15m.注:看了微软的MSDN6.0,其WindowsAPI中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通讯设备?但不管怎样,一般主机和单片机的串口通讯大多都在9600bps,可以满足通讯需求。11.1串行通信的基本原理③接口的典型应用: 大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信

4、号线。(当然,在程序中也需要对相应的信号线进行设置。)最简单的RS232-C信号线接法11.2基于Win32API串口编程1、API描述在WIN32API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。打开串口配置串口超时设置事件设置读串口写串口关闭串口11.2基于Win32API串口编程打开串口Win32中用于打开串口的API函数为CreateFile,其原型为:HANDLECreateFile(LPCTSTRlpFileName,//将要打开的串口逻辑名,如COM1或COM2DWORDdwAccess,//指定串

5、口访问的类型,可以是读取、写入或两者并列DWORDdwShareMode,//指定共享属性,由于串口不能共享,该参数必须置为0LPSECURITY_ATTRIBUTESlpsa,//引用安全性属性结构,缺省值为NULLDWORDdwCreate,//创建标志,对串口操作该参数必须置为OPENEXISTINGDWORDdwAttrsAndFlags,//属性描述,用于指定该串口是否可进行异步操作,//FILE_FLAG_OVERLAPPED:可使用异步的I/OHANDLEhTemplateFile//指向模板文件的句柄,对串口而言该参数必须置为

6、NULL );11.2基于Win32API串口编程例如,以下程序用于以同步读写方式打开串口COM1:HANDLEhCom; DWORDdwError;hCon=CreateFile("COM1",GENERIC_READ

7、GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(hCom==(HANDLE)0xFFFFFFFF) {dwError=GetLastError();MessageBox(dwError); }11.2基于Win32API串口编程配置串口配置串口是通过改变设备控制块DCB(Devi

8、ceControlBlock)的成员变量值来实现的,接收缓冲区和发送缓冲区的大小可通过SetupComm函数来设置。DCB结构体定义为:typedefstruct_DCB{//dcbDWORDDCBlength;//sizeof(DCB)DWORDBaudRate;//currentbaudrateDWORDfBinary:1;//binarymode,noEOFcheckDWORDfParity:1;//enableparitycheckingDWORDfOutxCtsFlow:1;//CTSoutputflowcontrolDWORDfO

9、utxDsrFlow:1;//DSRoutputflowcontrolDWORDfDtrControl:2;//DTRflowcontroltypeDWORDfDs

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

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

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