C++课程设计 串口调试助手.docx
《C++课程设计 串口调试助手.docx》由会员分享,可在线阅读,更多相关《C++课程设计 串口调试助手.docx(15页珍藏版)》请在冰豆网上搜索。
C++课程设计串口调试助手
【内容摘要】2
【关键词】2
1开发语言及开发平台简介3
1.1开发语言3
1.1.1C语言3
1.1.2C++语言3
1.2开发平台4
1.2.1MicrosoftVisualC++4
1.2.2C++Builder4
2软件开发过程5
2.1开发所需要的控件5
2.1.1按钮控件5
2.1.2文本控件5
2.1.3串口控件5
2.1.4选择控件6
2.2数据发送设计6
2.3数据接收设计8
3软件使用说明9
4软件测试10
4.1辅助工具10
4.2发送测试10
4.3接收测试10
5总结11
致谢12
参考文献13
附录主要程序14
串口发送程序14
串口接收程序15
【Abstract】17
【KeyWords】17
串口调试助手设计
专业:
电子科学与技术 学号:
XXXXXXXXXXX
学生姓名:
XXX指导老师姓名:
XXX
【内容摘要】串口调试助手是串口调试相关工具,网络上有很多串口调试助手,界面不同,功能各异,使用的开发语言和开发平台也不相同。
有的使用C语言开发,有的使用C++语言开发,还有的即使用C语言也使用C++语言;开发平台有的使用VisualC++,有的使用C++Builder等。
本软件使用C语言和C++语言,开发平台使用C++Builder软件。
该串口调试助手串口调试助手版支持常用的110~256000bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送数据或字符(包括中文),能发送文本文件(*.txt文本),可以任意设定自动发送周期,并能将接收数据保存成文本文件(*.txt),是做项目开发调试串口的好工具。
【关键词】串口;C++;C++Builder;控件;测试;
1开发语言及开发平台简介
1.1开发语言
1.1.1C语言
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔实验室的DennisM.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
[1]
随着微型计算机的日益普及,出现了许多C语言版本。
由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。
为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。
在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,以前有许多大型应用软件都是用C语言编写的(由于面向对象编程技术的出现,大型软件转由C++、JAVA、C#再配合C语言开发;C语言在面对大型的软件开发时,会显得有些吃力)。
[2]
1.1.2C++语言
计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。
世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。
先后出现了多种计算机高级语言。
其中使用最广泛、影响最大的当推BASIC语言和C语言:
BASIC语言是1964年在FORTRAN语言的基础上简化而成的,它是为初学者设计的小型高级语言;C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的。
它不是为初学者设计的,而是为计算机专业人员设计的。
大多数系统软件和许多应用软件都是用C语言编写的,但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。
[3]
在C基础上,1983年又由贝尔实验室的BjarneStroustrup推出了C++。
C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
C++目前流行的编译器最新版本是GCC4.8.2和MicrosoftVisualStudio2013。
C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。
因而也增加了整个语言的复杂性,掌握起来有一定难度。
[4]
C++由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“CwithClasses”,即“带类的C”)。
C++保留了C语言原有的所有优点,增加了面向对象的机制。
开始,C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。
虚函数(virtualfunction)、运算符重载(OperatorOverloading)、多重继承(MultipleInheritance)、模板(Template)、异常(Exception)、RTTI、命名空间(namespace)逐渐被加入标准。
[5]
C++是由C发展而来的,与C兼容。
用C语言写的程序基本上可以不加修改地用于C++。
从C++的名字可以看出它是C的超越和集中。
C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
1.2开发平台
1.2.1MicrosoftVisualC++
MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。
它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。
它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。
这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。
[6]
1.2.2C++Builder
C++Builder是由Borland公司推出的一款可视化集成开发工具。
C++Builder具有快速的可视化开发环境:
只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++Builder内置了100多个完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件;C++Builder具有一个专业C++开发环境所能提供的全部功能:
快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。
它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。
[7]
2软件开发过程
2.1开发所需要的控件
2.1.1按钮控件
按钮控件为中用的Button,它允许用户通过单击来执行操作。
Button控件既可以显示文本,又可以显示图像。
当该按钮被单击时,它看起来像是被按下,然后被释放。
该控件经常用来进行事件的触发使用,当在程序界面中拖出一个该控件,内部将会自动生成该控件对应的函数,当点击一下该控件时,将会执行该控件对应的函数,因此在该程序中,数据发送等操作都使用该控件。
按钮控件的如图2.1所示。
图2.1按钮控件
2.1.2文本控件
文本控件为Edit,给文本控件添加字符串的操作为s为字符串数据,Edit1->Text=s;读取字符串数据的操作为s=Edit1->Text,如果想要把读取到的字符串数据转换为整数时,必须调用函数StrToInt(),例如t为整型变量t=StrToInt(Edit1->Text),,如果想要把读取到的字符串数据转换为十六进制数时,必须调用函数StrToHHex(),例如t为整型变量t=StrToHex(Edit1->Text)。
文本控件如图2.2所示。
图2.2文本控件
2.1.3串口控件
串口控件的为YbCommDevice1,内部已嵌入端口的选择、波特率的设定、以及奇偶校验位、停止位的设置等串口通讯协议需要设置的参数,串口控件设置如图2.3所示。
图2.3串口控件设置界面
2.1.4选择控件
选择控件CheckBox,就是我们一般所说的选择框,通常用于某选项的打开或关闭。
大多数应用程序的“设置”对话框内均有此控件。
我们看到的可以打勾的就是CheckBox。
该控件表明一个特定的状态(即选项)是选定(on,值为true)还是清除(off,值为false)。
在应用程序中使用该控件为用户提供True/False”或“yes/no”的选择。
进行选项组合。
在程序中通过对此控件属性的Checked来进行判断是否是true或者false,然后在对程序进行数据处理。
选择控件如图2.4所示。
图2.4选择控件
2.2数据发送设计
该软件的数据发送可以实现自动发送和手动发送,手动发送通过按键按钮来实现,自动发送通过定时器控件实现。
发送时主要的是实现对字符数据或者对十六进制数据进行处理成单字节给串口缓冲区发送出去,此时首先提取控件Memo1填入的数据,然后进行要判断是否要按十六进制数或者是字符数发送数据,处理数据之后在发送出去。
本助手还可以发送*.txt文件,其发送原理是先把*.txt文件的内容提取出来放入Memo1中,然后进行要判断是否要按十六进制数或者是字符数发送数据,处理数据之后在发送出去。
数据发送的流程图如图2.5所示。
图2.5数据发送的程序流程图
发送数据界面如图2.6所示。
图2.6发送数据界面
2.3数据接收设计
该软件实现数据的接收采用的方式是用定时器间隔的检查串口接收缓冲区,如果检查到串口接收缓冲区数据接收标志位为1,就开始接收数据,否则标志位为0,将不接收任何数据。
当检查到有数据接收时,首先读取接收到数据的长度,然后判断数据时按十六进制显示在接收区还是按字符数据显示在接收区,再对数据进行十六进制处理或者字符处理。
如果要求清空接收区,点击清空按钮讲调用Memo1->Clear()对接收区进行清空。
还可以对接收的数据进行保存为*.txt文件,默认名字为wqy.txt,默认路径为D盘。
接收数据程的序流程图如图2.7所示。
图2.7数据接收的程序流程图
接收数据界面如图2.8所示。
图2.8数据接收界面
3软件使用说明
整个使用说明分成四部分来介绍:
(1)串口设置本;
(2)通讯状态;(3)发送;(4)接收。
整个软件打开后界面如图3.1所示。
图3.1整个软件界面
(1)串口设置
先点击串口设置,会弹出串口设置界面,设置好端口、波特率、奇偶校验、数据位、停止位,然后点击打开串口就可以了。
(2)通讯状态
通讯状态主要是看串口的状态,发送的字节数,接收的字节数,还可以清除计数。
(3)发送
发送可以分为手动发送和自动发送,两种发送都可以选择是字符发送还是选择十六进制发送,先在数据发送区域输入要发送的数据,如果选择自动发送在自动发送的控件上打钩就可以了,还可以选择自动发送的周期,默认周期是1000ms,手动发送点击手动发送按钮就可以发送了。
还可以发送*txt的文件,点击选择发送文件按钮,选好要发送的*txt文件,然后点击发送文件按钮。
(4)接收
接收界面比较简单,选择显示方式就可以了,可以选择字符显示和十六进制显示,还可以清空接收区,也可以保存显示的数据,默认保存在D盘,文件名为wqy.txt。
4软件测试
软件测试(英语:
softwaret