- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows XP下串口编程和案例分析
Windows XP下串口编程和案例分析
串口通信技术广泛用于远程监控和工业自动化领域,如视频、控制和数据采集等。而在实际工程中各种实时数据的保存,以及日后的查询功能往往是必不可少的。串口具有连接线少,通讯简单,得到了广泛使用。
一、PC的RS-232接头
PC的机箱后面都有串口。在应用中,不同系统连接方式不同,形式多种多样,其中最常用的连接方式是三线制连接,即使用软件握手信号或不用握手信号,也就是所说的流控制。这样就可以放弃复杂的硬件交换,而只使用XON/XOFF协议,在接收方不能接收更多数据时,可以发送一个XOFF(DC3即ASC13H);当它可以接收数据时,发送一个XON(DC1即ASC11H)来通知发送方可以接收更多的数据。 但应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
二、硬件基础
PC机共有四个串行端口可被寻址,但是这其中只有两个可以用来连接外部设备,每个基地址都是作为一个初始化偏移量用在八个寄存器内,这些寄存器由串行端口控制寄存器8250来使用。
三、基于WindowsXP下的应用程序
Visual Basic6.0(以下简称VB)以其简单易学、32位面向对象的程序设计等特点,倍受广大计算机程序开发者的青睐。一般用VB开发串行通信程序有两种方法:一是利用Windows的通信 API函数,另一种是采用VB标准控件Mscomm来实现。
利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点在于可实现的功能更丰富、应用面更广泛,更适合于编写较为复杂的低层次通信程序。采用这种方法编写串行端口通信程序一般可分为以下几个步骤:
1.初始化串行端口
首先用CreateFile函数打开指定串口,置参数中访问类型为GENER IC_READ |GENERIC _WRITE、共享模式为0、创建标志为OPEN_EXISTIN G、模板句柄为NULL。
2.配置串口
使用CommConfigDialog函数以对话框方式,设置波特率 、数据位、奇偶校验、停止位和流控制方式,并且可以恢复缺省值。
3.超时控制
调用GetCcommTimeO uts函数获得当前的设置,用SetCommTim eOuts函数来完成设置。
4.数据传输
读写串行端口与读写文件采用的函数相同,即ReadFile、WriteFi le。读写操作可分四种方式: 查询方式、同步I/O、异步(后台)I/O和事件驱动I/O。
5.关闭串口
程序的终止可以自动关闭串口,也可用函数CloseHandle(),以便释放所独占资源。VB通信控件Mscomm
在VB6.0开发环境中,MSComm通信控件可直接从VB的ToolBox中加入窗体Form,即可用其进行通信。若ToolBox中无此控件,则用Tools的Custom Controls将MSComm,VBX从Windows的System子目录中加入VB的ToolBox中。
MSComm控件有许多属性(Property),其中一些重要的属性如下:
CommPort:设置串口号,类型为short ;
Settings:设置串口通信参数,类型为Csting;
PortOpen:设置或返回通信口的状态,类型为BOOL;
InputMode:设置从缓冲区读取数据的格式,类型为long;
Input:从接收缓冲区读取数据,类型为VARIANT;
Output:向发送缓冲区写入数据,类型为VARIANT;
InBufferCount:接收缓冲区中的字节数,类型为short ,
OutBufferCount:发送缓冲区中的字节数,类型为short ,
CommEvent:设置或返回Input每次读出的字节数,类型为short ,
CommEvent:串口事件,类型为short 。
其中串口号(CommPort)设置为1、2等,表示COM1、COM2。参数设置(Settings)的格式为“B,P,D,S”,B表示波特率,P表示奇偶校验(N:无校验,E:偶校验,O:奇校验),D表示字节有效位数,S表示停止位数。串口状态为BOOL变量,TRUE表示打开串口,FALSE表示关闭串口。InputMode使程序能方便地选择从缓冲区读取数据的格式,设置为0时,为字符串格式(Text);设置为1时,为二进制格式(Binary)。InputLen设置或返回的是用Input从缓冲区读字符串时每次读出的字符个数,这个性质对于读出数据块中长数
您可能关注的文档
最近下载
- 中联W6015-8A塔吊安拆专项施工方案.docx VIP
- 癫痫科普PPT课件.pptx VIP
- 建筑工程质量管理部工作职责.docx VIP
- 2026高中语文必须要关注的七种高频作文题型-2026年高考语文议论文写作技巧.pdf VIP
- 一元线性回归.pptx VIP
- 河南省2020-2021学年高二普通高中学业水平考试英语试卷(解析版).pdf VIP
- T_CECS 10214-2022钢面镁质复合风管.pdf VIP
- 合作协议中英文版.docx VIP
- 2025年公务员录用考试《行政职业能力测验》(A类)试题及答案.docx
- 四个自信专题党课:坚定“四个自信”带着使命前进.doc VIP
原创力文档


文档评论(0)