首页 C++课程设计串口调试助手Word版

C++课程设计串口调试助手Word版

举报
开通vip

C++课程设计串口调试助手Word版传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc380055087"【内容摘要】2HYPERLINK\l"_Toc380055088"【关键词】2HYPERLINK\l"_Toc380055089"1开发语言及开发平台简介3HYPERLINK\l"_Toc380055090"1.1开发语言3HYPERLINK\l"_Toc380055091"...

C++课程设计串口调试助手Word版
传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除! 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc380055087"【内容摘要】2HYPERLINK\l"_Toc380055088"【关键词】2HYPERLINK\l"_Toc380055089"1开发语言及开发平台简介3HYPERLINK\l"_Toc380055090"1.1开发语言3HYPERLINK\l"_Toc380055091"1.1.1C语言3HYPERLINK\l"_Toc380055092"1.1.2C++语言3HYPERLINK\l"_Toc380055093"1.2开发平台4HYPERLINK\l"_Toc380055094"1.2.1MicrosoftVisualC++4HYPERLINK\l"_Toc380055095"1.2.2C++Builder4HYPERLINK\l"_Toc380055096"2软件开发过程5HYPERLINK\l"_Toc380055097"2.1开发所需要的控件5HYPERLINK\l"_Toc380055098"2.1.1按钮控件5HYPERLINK\l"_Toc380055099"2.1.2文本控件5HYPERLINK\l"_Toc380055100"2.1.3串口控件5HYPERLINK\l"_Toc380055101"2.1.4选择控件6HYPERLINK\l"_Toc380055102"2.2数据发送设计6HYPERLINK\l"_Toc380055103"2.3数据接收设计8HYPERLINK\l"_Toc380055104"3软件使用说明9HYPERLINK\l"_Toc380055105"4软件测试10HYPERLINK\l"_Toc380055106"4.1辅助工具10HYPERLINK\l"_Toc380055107"4.2发送测试10HYPERLINK\l"_Toc380055108"4.3接收测试10HYPERLINK\l"_Toc380055109"5总结11HYPERLINK\l"_Toc380055110"致谢12HYPERLINK\l"_Toc380055111"参考文献13HYPERLINK\l"_Toc380055112"附录主要程序14HYPERLINK\l"_Toc380055113"串口发送程序14HYPERLINK\l"_Toc380055114"串口接收程序15HYPERLINK\l"_Toc380055115"【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++BuilderC++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,就是我们一般所说的选择框(​http:​/​​/​baike.baidu.com​/​view​/​1143823.htm​),通常用于某选项的打开或关闭。大多数应用程序(​http:​/​​/​baike.baidu.com​/​view​/​330120.htm​)的“设置”对话框内均有此控件。我们看到的可以打勾的就是CheckBox。该控件表明一个特定的状态(即选项)是选定(on,值为true)还是清除(off,值为false)。在应用程序(​http:​/​​/​baike.baidu.com​/​view​/​330120.htm​)中使用该控件为用户提供True/False”或“yes/no”的选择。进行选项组合。在程序中通过对此控件属性的Checked来进行判断是否是true或者false,然后在对程序进行数据处理。选择控件如图2.4所示。图2.4选择控件2.2数据发送设计该软件的数据发送可以实现自动发送和手动发送,手动发送通过按键按钮来实现,自动发送通过定时器控件实现。发送时主要的是实现对字符数据或者对十六进制数据进行处理成单字节给串口缓冲区发送出去,此时首先提取控件Memo1填入的数据,然后进行要判断是否要按十六进制数或者是字符数发送数据,处理数据之后在发送出去。本助手还可以发送*.txt文件,其发送原理是先把*.txt文件的内容提取出来放入Memo1中,然后进行要判断是否要按十六进制数或者是字符数发送数据,处理数据之后在发送出去。数据发送的流程图如图2.5所示。​���提取文本控件Memo1上的数据开始�点击发送判断是否自动发送�否是是否按十六进制发送把字符数据处理成十六进制数,然后放到串口发送缓冲区把字符串数据里面的字符提取出来成单个字符然后放到串口发送缓冲区结束否是​图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软件测试软件测试(英语:softwaretesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。一个软件做好后,必须要进行软件测试。主要是测试内容为:[8]1)确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。2)程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。3)评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。[9]4.1辅助工具要进行串口调试助手软件的测试,必须要有辅助的工具,测试该软件的辅助工具使用了STC89C52单片机,通过USB转串口线与电脑连接,写好单片机程序,其功能是单片机接收到上位机电脑串口发来的数据,然后发回给上位机,通过串口调试助手显示出来。4.2发送测试在发送数据的区域输入要发送的数据,选择自动发送或者手动发送,选择字符发送或者十六进制发送,还可以发送*.txt文件,打开要发送的*.txt文件,然后点击发送文件。4.3接收测试在接受区看从单片机发送来的数据,可以选择字符显示,也可以选择十六进制显示,还可以保存显示的数据,默认保存在D盘,文件名为wqy.txt。测试结果如图4.1所示。图3.1测试时整个软件界面5总结学习的目的在于应用,我们学习C++也是这样,而且更看重应用,将来去企业,更是要自己动手,做出一点东西来才有用。这次课程设计使我学了很多,是学完C++之后将自己所学理论与实际相结合的机会,通过这次基于C++语言的的串口调试助手的设计,我自己的理论与实践相结合的能力有了大幅度的提升。在学习专业知识的基础上,同时通过查阅专业书籍、相关文献资来解决实际工程问题,这锻炼了我的综合运用各项知识和资源的能力。使我不论是从理论知识还是从实际操纵中都学到了不少知识,我接触到更多平时没有接触过的C++Builder的内部处理函数和控件,同时也发现了自己在这方面的很多不足之处。也使我对C++语言以及C++Builder的使用都有了深入的了解。体会到理论知识对实践有很大的指导作用,只有在正确理论的指引下才能设计出合乎实际需要的软件。本软件对于工程师调试串口具有极强的实用性,由于时间关系,无论是功能还是界面,都还存在很多不足的地方,还需要在功能方面和可靠性方面进一步改进。致谢在二十多天课程设计设计和 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 撰写过程中,我非常感谢我的指导教师——老师。无论是在准备期间和系统调试阶段,闭金杰都给了我很大的帮助,衷心地谢谢他。同时也感谢同班同学的帮助和大力支持,在课程设计的这段时间中,兄弟们给了我很大帮助,当我遇到不懂的地方时,他们都会帮我解决,谢谢他们!记得有次调试程序时自己进入了死胡同,总是解决不了,自己无论怎样也找不到错误,最后黄永忠同学帮我看了很久才解决。还有班上很多好朋友,在设计过程中都给了我很大帮助,在此就不一一列出。在此,再次感谢所有的人,感谢他们!参考文献[1]谭浩强.C语言程序设计(第二版).北京:清华大学出版社,2009年[2]谭浩强.C++面向对象程序设计.北京:清华大学出版社,2009年[3]赵景波.C++Builder6.0基础教程.北京:机械工业出版社,2004年[4]陆卫忠,刘文亮.C++Builder6程序设计教程(第二版).北京:科学出版社,2011年[5]蒙祖强.C++Builder程序员成长攻略.北京:水利水电出版社,2007年[6]郭文夷,戴芳胜.C++Builder6.0程序设计.西安:西安电子科技大学出版社,2004年附录主要程序串口发送程序void__fastcallTForm1::Timer1Timer(TObject*Sender)//定时器1{Label7->Caption=re_time("yyyy'年'mm'月'dd'日'hh'时'nn'分'ss'秒'");//读取时间if(CheckBox4->Checked==true)//判断是否自动发送{if(Edit2->Text.Length()>0)//判断时间{time1_ms=StrToInt(Edit2->Text);//字符串转换为十进制}elsetime1_ms=1000;if(time1_ms>0){if(time1_ms!=before_time1)//时间变了就按变了的时间发送{before_time1=time1_ms;Timer1->Interval=time1_ms;//改变自动发送的时间}}else{time1_ms=1000;before_time1=1000;Timer1->Interval=1000;}if(this->YbCommDevice1->Active==false)/*1*/{if(oc_flag==0){oc_flag=1;ShowMessage("请进行串口设置,并打开串口");}}else{oc_flag=0;char*ch;intnBytes=0;charBuffer[1000],*EndPtr;AnsiStringt,s,sk;s=Memo2->Lines->GetText();//提取发送区的字符if(CheckBox3->Checked==true)//判断是否十六进制发送{while(s.Length()>0){intp=s.Pos('');//050506提取空格if(p>0){t=s.SubString(1,p-1);//提取空格前的字符s=s.SubString(p+1,s.Length()).Trim();//提取空格后的字符----Length为测字符串长度Trim是去掉前后空格Buffer[nBytes++]=strtol(t.c_str(),&EndPtr,16);//转换为十六进制放入缓冲区}else{t=s;s="";Buffer[nBytes++]=strtol(t.c_str(),&EndPtr,16);//转换为十六进制}}}else{intlen=0,ci;len=s.Length();if(len>0){ch=s.c_str();for(ci=0;ciText=IntToStr(tx_cout);YbCommDevice1->Write(Buffer,nBytes);}}}串口接收程序void__fastcallTForm1::Timer2Timer(TObject*Sender)//定时器2{unsignedcharBuf[8192];if(first_flag==0)//第一次打开时要清空一次发送区{Memo2->Clear();first_flag=1;}if(this->YbCommDevice1->Active==true){Shape1->Brush->Color=clLime;//串口灯亮Edit11->Text="打开";}intn=YbCommDevice1->Read(Buf,8192);//收到n个字节if(n){AnsiStrings;if(CheckBox2->Checked==true)//CheckBox2判断接收是否十六进制显示{{for(inti=0;iLines->Add(s);//显示接收的内容rx_cout+=n;//接收计数Edit10->Text=IntToStr(rx_cout);//显示接收的字节}}}SerialDebuggingAssistantDesignAuthor:QiuyuanWu【Abstract】Serialdebuggingassistantisaserialportdebugtool,Internethasalotofserialdebuggingassistant,interfaceisdifferent,differentfunction,usingthedevelopmentlanguageanddevelopmentplatformisnotthesame.SomeuseClanguagedevelopment,someC++languagedevelopment,andusingClanguageusedC++language;DevelopmentplatformusingVisualc++,c++Builderandetc.ThissoftwareusingClanguageandC++language,theuseofC++Buildersoftwaredevelopmentplatform.Theserialdebuggingassistantserialdebuggingassistantversionsupportscommonlyused110~256000BPSbaudrate,caninstallcheck,databitsandstopbits,ASCIIorhextosendorreceivedataorcharacters(includingChinese),tosendatextfile(*.txttext),canbesettoautomaticallysendanycycle,andcansavereceivingdataintoatextfile(*.txt),isagoodprojectdevelopmentdebugserialporttool.【KeyWords】Serialport;C++;C++Builder;Controls;Test
本文档为【C++课程设计串口调试助手Word版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:563KB
软件:Word
页数:0
分类:高中其他
上传时间:2021-03-26
浏览量:36