基于MFC串口通信程序设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MFC串口通信程序设计

基于MFC串口通信程序设计   【摘要】本文主要利用MSComm控件实现单片机与PC机的串口通信,重点是软件部分的设计。采用VC++ 6.0软件开发平台,利用MFC编程的思想方法,建立友好的人机交互界面。PC机向单片机发送信号,将单片机接收到信号后向PC机返回的数据在界面中实现动态显示、保存等。该系统具有操作简单,实用性强,可视化程度高等优点,为以后的软件设计打下了一定的基础。   【关键词】MFC;MSComm控件;串口通信   1.引言   在众多集成可视化开发环境中,Visual C++是编程环境的最佳选择,VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种是MFC方式,传统的WIN API方式比较繁琐,而MFC是对WIN API再次封装,MFC相对于WIN API开发更具备效率优势,开发者只要在局部做简单地修改,即可处理大部分窗口事物[1]。MFC封装了200多个类并且提供了友好的界面环境,具有类管理灵活方便、代码编写和??面设计集成交互操作、可移植性强等优点,与各种数学手段和数据处理、分析算法相结合还可以实现海量数据分析,智能、快速、灵活数据处理,使便携现场检测仪器功能强,灵活度高,速度快,扩展性好。   串口通信具有连续简单、使用灵活方便、数据传递可靠等优点,在数据采集系统、监控系统和通信系统中,得到广泛的应用。在Win32下,用来实现串口通信的编程方式有两种[2]:其一可以调用Windows的API函数,其二可以使用ActiveX控件。调用Windows提供的API函数,可以实现用户自定义功能,自由度高,缺点是这种方法编写复杂,需要清楚地掌握串口通信机制;使用ActiveX控件可以屏蔽底层的通信协议,只需对控件的属性进行设置并添加响应的响应处理函数即可实现串口通信中的数据收发,缺点是不支持用户对属性的修改,只能使用控件提供的功能,在使用时有一定限制[3]本文要实现RS232协议的串口通信,采用ActiveX控件即可满足需求。   2.通信原理   PC机给单片机发送一个55(发其他的数据单片机不响应),单片机通过串口将返回三个数据传给PC:第一个是AA(作为数据包开包的用的);第二个数据是一个随机数,第三个数据时EE(作为数据包结束的标志)。   点击接收数据就会在PC机上以16进制、ASCII码、10进制方式显示出来。指示灯LED:红色的是电源灯,单片机处于待机状态时:绿灯亮,黄灯不亮;到单片机收到55数据时,单片机要返回数据的过程中:绿灯亮,黄灯会一闪(指示在发送数据)。   3.硬件   单片机和PC机的波特率都设置为9600 kbps。上位机的串口是COMl,其电平是RS232电平,而下位机的电平是TTL电平,所以需要电平转换芯片MAX3232进行电平转换[4-5],实现PC机和单片机的通信。在MAX3232芯片上,选用其中一路发送/接收,R20UT接PIC16f877的RX,T2IN接PIC16f877的TX,T20UT接PC机的RD,R2IN接PC机的TD,这样就能实现单片机与计算机互联通信[6]。图1为单片机与PC的连接示意图[7]。   图1 单片机与PC机的连接   4.软件   MSComm通信控件是最常用的ActiveX串口控件之一,它提供了一系列标准协议的通信接口,可以连接到其他通信设备(如单片机,以及本系统使用的FPGA),而且在VC++、VB等语言中使用[8]。通过建立串行通信,完成命令发送、数据发送/接收、监视和响应在通信过程中可能发生的各种事件和错误。本文选用MSComm控件采用事件驱动机制。一般情况下,事件发生时将产生通知,MSComm控件提供的OnComm事件可以用来捕获并处理这些通信事件。可以通过在OnComm事件处理函数中加入读取串口程序代码和处理数据代码来提高程序响应度及可靠性。图2为本文设计的软件界面。   图2 可视化软件界面   (1)建立应用工程   启动VC++6.0,新建工程名为“TEST”的对话框应用程序,这时在Resource View的Dialog树状文件夹中会自动生成IDD_TEST_DIALOG对话框。   (2)在当前的Workspace中插入MSComm控件。   选择Project菜单下Add to Project子菜单中的Components and Controls选项,在弹出的对话框中双击Registered ActiveX Controls项,选择Microsoft Communications Control version 6.0,单击insert按钮即可将通信控件插入该工程,这时添加了类CMSComm及相应文件:MSComm.h和MSComm.cpp。   (3)添加MS

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档