基于vb的串口通讯及其软件实现

基于vb的串口通讯及其软件实现

ID:25256335

大小:57.00 KB

页数:6页

时间:2018-11-19

基于vb的串口通讯及其软件实现_第1页
基于vb的串口通讯及其软件实现_第2页
基于vb的串口通讯及其软件实现_第3页
基于vb的串口通讯及其软件实现_第4页
基于vb的串口通讯及其软件实现_第5页
资源描述:

《基于vb的串口通讯及其软件实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于VB的串口通讯及其软件实现.L.编辑。  摘要:串口通信因为其简单,灵活易用,在许多领域有着广阔的应用前景。本文在深入了解串口通讯技术的基础上,结合自身的工程实践经验,阐述了VB串口编程的技术要点。并结合一个通讯实例,分析通讯的具体实现,给相关领域的研究人员提供值得参考的信息。  关键词:串口;RS232;API;Pm;Msm;通信程序  Abstract:Serialmunicationhasbroadapplicationinmanyfieldsbecauseofitssimplemunicationcircuitryandflexibility.Basedonde

2、epprehensionofthetechnologyoftheserialmunications,thisarticleexpoundsimportanttechnologydetailintegratedpleofmunicationprogramispresentedandanalyzed,ation.  Key;Msm;municationprogram    现在通讯方式越来越多,速度越来越快,但串行通讯由于自身价格低、协议透明、硬件投资少、软件编程简单等诸多优点在远程数据采集、监视、通信及控制领域里一直占据着极其重要的地位。它不仅没有因为时代的进步而被淘汰,反而

3、在规格上越来越完善、应用越来越广,长久不衰。    1串口通信的通信机理    PC串行通信是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步通信适配器,是PC机用于异步通信的接口)进行编程实现的通信。PC机每个UART中的INS8250中有10个可编程的单字节寄存器,可用于控制、监视操作串行端口,1的寄存器地址3F8H-3FEH,2的寄存器地址为2F8H-2FEH。10个寄存器由7个地址访问,其中5个寄存器的访问条件是先设置3FBH线路控制寄存器的最高位为“1”,该位也称为DLAB状态位。[1]  一般说来,PC机都有一个或多个串行端口,它们依次为1、2……。

4、这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当了解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给CPU进行处理。在操作系统方面,sm控件实现通信最需要掌握的就是它的几个主要属性,下面选取其中重要的进行介绍,其余的可以参考相关资料。[3]  (1)Settings属性:以字符串的形式设置并返回波特率、奇偶校验位、数据位、停止位。这个属性很重要,针对不同的终端设备需要根据设备的具体情况进行调整(比如日本的设备不同于美国的设备,通常会采用奇校验)。  (2

5、)InputMode属性:设置接收数据的类型,0为文本格式,1为二进制格式。  (3)Input属性:读取并删除接收缓冲区中的数据流。  (4)Output属性:向发送缓冲区传送一数据流。  (5)Rthreshold属性:该属性为一阀值,它确定当接收缓冲区内的字节个数达到或超过该值后就产生代码为EvReceive的Onm事件。  (6)Handshaking属性:设置和返回握手协议,即计算机内部CPU与串口之间的通讯协议,保证在缓冲区过载时数据不会丢失。这个属性在保证数据传输的正确性方面有很大的作用,共有四个选项,分别表示:①无流控制;②软件流控制;③硬件流控制;④软硬件

6、流控制。采用硬件流控时,要求串口之间和电缆支持硬件握手,在自己制作串口通信线时,有关硬件握手的线RTS、CTS、DSR、DTR要连接正确。  在正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。  3.2直接调用Win32API通信函数  直接调用Windo.  (3)ReadFile()函数:从串口输入缓冲区读取数据流。  (4)oxa公司为开发串口通信程序提供的一套函数库。通过对sm控件中就提供了一个Onm事件,它可以捕获通信时发生的串口事件和错误信息,自动转入事件处理程序。在Onm事件中

7、,mEvent属性是Onm事件的指示,下面简单介绍几个重要的mEvent属性值。  EventBreak:表示收到一个中断信号;  EventFrame:表示硬件检测到一个数据帧错误;  EvenRxover:表示接收缓冲区溢出;  EventTxFull:表示输出缓冲区已满;  EvRecEive:表示接手到了Rthreshold个字符;  EvEOF:表示接受到了EOF字符(ASCII字符26)。  编程时用SelectCase语句,根据不同的mEvent属性值,去执行不同的处理程序。  除了以上所述的通讯错误

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

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

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