串口通信程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011级通信工程

《基于ARM9嵌入式Linux系统开发原理与实践》课程设计报告

设计题目:基于Linux的网络通信程序设计

XX学号:

王强邓祖坤陶晓明

学院:工程技术学院专业:通信工程班级:2011级3班指导教师:方飞

2014年6月30日题目:基于Linux的网络通信程序设计

1 程序设计的基本原理与思路

2 1.1 MFC简介3

1.2 MSm控件简介4

1.2.1 事件驱动方式4

1.2.2 查询方式5

1.3 设计的基本思路5

2 程序设计与代码分析6 2.1 建立工程6

2.2 在工程中插入MSm控件7

2.3 利用ClassWizard定义CMSm类控制对象8

2.4 向对话框中添加发送数据和接收数据的编辑框9

2.5 添加串口事件消息处理函数Onm()11

2.6 “开始”——打开串口和设置串口参数13

2.7 “发送”按钮——发送数据15

2.8 相关控件的属性18

2.9 相关响应函数的建立18

3 总结19

参考文献20

摘要

Linux系统是一种自由的Unix类多用户、多任务的操作系统,可以运行在目前已知的PC机、ARMS、MIPS和PowerPC等多种计算机平台,已成为应用广泛、可靠性高、功能强大的计算机操作系统。Linux具有内核小、效率高、源代码开放等优点,还内含了TCP/IP网络协议,很适合在服务器领域使用,而服务器主要用途之一就是进行网络通信。随着计算机办公自动化处理技术的应用与推广、网络的不断普及,人们期待一种便捷、高效、环保、安全的网络通信方式。

本设计就是考虑到这一现状,基于Linux操作系统下的TCP/IP网络通信原理、多线程编程技术,使用linux编译工具GCC和调试工具GDB设计了一个网络通信程序,实现计算机与开发板之间的网络通信。

关键词:Linux系统;编译工具GCC;调试工具GDB

1 程序设计的基本原理与思路

本设计的基本原理是利用MFC应用程序以及Microsoftmunications Control控件的基本知识而设计的。Microsoft munications Control控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

1.1 MFC简介

MFC是Visual C++是核心。MFC类库将所有图形用户界面的元素如窗口、菜单、按钮等都以类的形式进行了封装,MFCAppWizard向导根据继承性利用MFC 派生出自己的类,并对Windows应用程序进行了分解,利用MFC派生类对应用程序重新进行组装,同时还规定了应用程序中各个MFC派生类对象之间的相互

联系,实现了标准Windows应用程序的功能,这就是向导生成的所谓MFC应用程序框架。每个MFC类都包括了一些函数,函数放到类中,符合C++编程方法,这些函数必须通过类定义对象才能使用。因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C++&MFC编制软件时的大量内在环节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便开发者编程为目的。因此就造成了MFC对类封装中的一定程度的的冗余和迂回,使开发者在开发过程中必定要付出一定代价,但这是可以接受的。

1.2 MSm控件简介

MSm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API 函数,而且在VC、VC++、Delphi等语言中均可使用。Microsoft munications Control (以下简称MSm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.2.1 事件驱动方式

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用MSm 控件的Onm 事件捕获并处理这些通讯事件。Onm 事件还可以检查和处理通讯错误。在编程过程中,就可以在Onm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSm

控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSm 控件。

1.2.2 查询方式

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查mEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

1.3 设计的基本思路

Windows应用程序要使用串口进行通信,必须在使用之前向Windows操作系统提出资源申请要求(打开串口),申请得到允许后要对串行端口相关参数进行配置(设置串口),配置好参数后进行数据传输(读写串口),通信完成后必须释放资源(关闭串口)。

程序模块图如图1.3.1所示。

打开串口设

退

出程序

相关文档
最新文档