- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VC++的特殊波特率的实现方法
摘要:简单分析Windows 下串口通信方式, 详细介绍了使用 串口通讯库PComm实现特殊波特率的方法。
关键词:串口;特殊波特率;PComm库
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)15-3871-03
Realization of SpecialBaudRateBased on VC++
LIU Kui
(Zhejiang Textile and Fashion College, Ningbo 315211,China)
Abstract: The communication of serial interface has been analysed simply,and the paper introduces how to realize specialbaudrateby using thePComm communicationLibrary.
Key words: serial interface ; special baud rate; PComm Library
1 引言
串口是计算机上一种非常通用的接口。大多数计算机包含一个基于RS232的串口。串口本质上是计算机的CPU和外部串行设备间的编码转换器。当数据从CPU经过串口发送出去时,字节数据被转换为串行的位。而在接收数据时,串行的位则被转换为字节数据。
串口同时也是工业过程控制中仪器仪表设备通用的接口,可以用于获取远程采集设备的数据。目前在进行工业设备改造的过程中,通常是在Windows环境中进行应用程序开发,常常需要通过串口与工业设备通信。为了适应工业设备(尤其是国外进口设备)接口速率,这时对通信速率会有特殊要求,就不能使用计算机串口通常提供的速率(9600bps,19200bps,38400bps,57600bps,115200bps),而是76800bps。本文就Window环境下基于VC++开发串口通信程问题展开讨论,并介绍一种串口特殊波特率的实现方法。
2Windows环境下基于VC++串口通信编程
2.1采用Windows API 函数
串口在Windows 中是作为文件来进行处理的, 不是直接对物理端口进行操作。对于串行通信, Windows 提供了相应的文件I/O 函数与通信函数, 通过了解这些函数的使用, 可以编制出符合不同需要的通信程序。与通信设备相关的结构有COMMCONFIG , COMMPROP, COMMTIMEOUTS, COMSTAT,DCB, MODEMDEVCAPS,MODEMSETTINGS 共七个, 与通信有关的Windows API 函数共有26 个, 详细说明可参考MSDN 帮助文件 。
操作串行口一般遵从以下四个步骤:
1) 打开串口。VC 中将串口作为文件操纵, 所以打开串口时, 也使用与打开文件相同的API 函数, 如下:
HANDLE CreateFile( LPCTSTR lpFileName, //串口名称或设备路径
DWORD dwDesiredAccess, // 存取方式, 读或写
DWORD dwShareMode, //共享方式, 独占或共享
LPSECURITY_ATTRIBUTES lpSecurityAttributes, //安全描述符
DWORD dwCreationDisposition, //创建方式
DWORD dwFlagsAndAttributes, //文件属性
HANDLE hTemplateFile // 参照模板
) ;
但是dwDesiredAccess 必须为0, 因为串口是独占设备;dwCreationDisposition 必须为OPEN_EXISTING, 因为只有串口存在时才能被打开; dwCreationDisposition 一般为FILE_FLAG_OVERLAPPED, 表示串行口以异步方式工作。
2) 设置串口工作参数。串口能够顺利通信必须保证通信参数设置正确, 这些通信参数包括波特率、数据长度、停止位、校验方式等, 所以在串口打开之后必须进行串口设置。设置串口属性的一般思路是先利用GetCommState()获得串口的设备控制块DCB, 修改必要的部分之后, 再利用SetCommState( ) 将修改后的属性信息写回DCB 中。
3) 从串口读取或向串口写入数据。串口的读写主要通过两个文件读写API 函数来实现, 即ReadFile( ) 和WriteFile(
文档评论(0)