




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南科技大学本科生毕业设计论文i 低频信号分析仪软件设计与实现 摘要摘要:随着微电子技术,计算机技术,网络通讯技术和软件技术的高速发展,在实 验室和工业应用中,传统仪器开始向计算机化的方向发展。通过串口将信号经过传 输和采样到电脑里面由设计的软件实现对信号时域和频域的分析和计算是会给教学 和科研带来很多意想不到的方便。本次设计使用 visual c+ 6.0 完成对串口模块的 设计,使其能够实现信号的接收。然后通过 matlab 生成信号,通过对生成的信号进 行傅立叶变换,由傅氏变换可以得到幅值和相角,然后通过计算得到的( )a f( )f 特征值,将信号的频谱,时间域波形等显示出来。由波形图和频谱图分析得知信号 的周期,峰峰值,频率等,从而实现对信号进行分析和计算。虽然本次毕业设计虽 然能够基本完成设计要求,但是还有很多地方需要改进。 关键字关键字: 串行通信;信号采样;傅立叶变换;信号分析 西南科技大学本科生毕业设计论文ii low frequency signal analyzer software design and implementation abstract: with the micro-electronics technology, computer technology, network communication technology and the rapid development of software technology in the laboratory and industrial applications, the traditional start to the computerized equipment direction. the signal through the serial port to a computer through transmission and sampling by the design of the software inside the signal in time domain and frequency domain of analysis and computation is teaching and research will bring a lot of unexpected convenience. this design using visual c + + 6.0 serial port module to complete the design, so that it can achieve signal reception. then matlab generated signal, the signal generated by the fourier transform, fourier transform can be obtained from the amplitude and phase angle, and then calculated the eigenvalues of the signal spectrum, time domain waveform display. by the waveform and spectrum analysis showed that the signal cycle, peak to peak, frequency, etc., in order to achieve the signal analysis and calculation. while this can basically complete the graduation project design requirements though, but there are many areas for improvement. keywords: serial communication; signal sampling; fourier transform; signal analysis 西南科技大学本科生毕业设计论文iii 目录目录 摘要摘要 i abstractabstractii 目录目录 第第 1 1 章章 前前 言言1 1.1 本论文的研究背景和意义1 1.2 论文研究内容1 1.3 论文研究重点2 第第 2 2 章章 信号的输入信号的输入3 2.1 串口通信模块3 2.1.1 基本原理3 2.2 串口通信和 rs-2325 2.2.1 rs-232 通信协议5 2.2.2 rs-232 串行接口标准6 2.2.3 rs-232 接口定义6 2.2.4 串口信号线的接法7 2.3 visual c+ 及 mfc 简介8 2.4 实现串行通信10 2.4.1 在当前工程添加 mscomm 控件10 2.4.2 初始化串口:设置 mscomm 控件的属性12 2.4.3 数据接收函数 oncomm()13 2.4.4 发送数据15 2.4.5 程序调试16 2.5 本章小节17 第第 3 3 章章 信号的分析和计算信号的分析和计算18 3.1 信号分析的原理及意义18 3.2 信号的分类与预处理19 西南科技大学本科生毕业设计论文iv 3.3 信号的采样22 3.3.1 奈奎斯特采样定理22 3.4 信号的时域分析24 3.5 信号的频域分析24 3.5.1 信号的频谱分析24 3.5.2 dft 及 fft 算法描述25 3.5.3 fft 实现频谱分析26 3.6 本章小结27 第第 4 4 章章 程序的调试程序的调试28 4.1 信号的时域波形28 4.2 信号的功率谱30 4.3 信号的频谱图33 4.4 本章小结35 结论36 致谢37 参考文献38 附录附录39 西南科技大学本科生毕业设计论文 1 第 1 章 前 言 1.11.1 本论文的研究背景和意义本论文的研究背景和意义 利用计算机软件在计算机上实现低频信号分析(low-frequency signal analysis)是最近几十年内迅速发展起来的一种信号分析技术。在很多的科研 项目中,信号分析仪是一种重要的工具。传统的仪器加工工艺复杂,生产技术 要求搞,价格昂贵,功能有限,难以对分析结果进行二次处理。因此,设计一 种操作简便,功能可以自己定义,成本比较低的信号分析仪会给教学和科研带 来很多意想不到的方便。随着微电子技术,计算机技术,网络通讯技术和软件 技术的告诉发展,传统仪器开始向计算机化的方向发展。利用软件在微机屏幕 上构成虚拟仪器前面板,在硬件的支持下对信号进行采样,既可以进行实时信 号分析,显示,又可以在离线条件下对存储的采集结果进行各种后处理。 在电子技术的各领域中,由于数字信号处理技术的广泛使用和大规模集成 电路的高速发展,正日益广泛的采用数字信号和数字系统。数字式信号分析仪 是以数字滤波器或者快速傅立叶变换,即 fft 为基础构成的。特别是 fft 算法 的问世,大大改变了频谱分析技术。数字式信号分析仪器由于受到数字系统工 作速度的限制。另一方面,数字滤波和 fft 技术也已渗透到随即频率信号分析 仪当中去。例如采用 fft 算法对低频部分进行处理,从而使得仪器的控制另加 灵活,动态范围,精确度也大为提高。在现代的工业设计生产当中,信号分析 仪对生产活动提供了非常大的帮助,可以精确的测量待测数据信号的时域和频 域的各个方面的信息。而且由于最年来微电工程技术的技术更新,使得信号分 析仪的精确度更高,测量更方便。 1.21.2 论文研究内容论文研究内容 1信号接收模块的设计。对低频信号进行分析和计算,首先要完成对低频 信号的采集,将经过串口的数据接入计算机,其中就会牵涉到对串口的设置, 比如:采样频率,波特率,奇偶校验等,还有就是 rs-232 串口的接线方法,传 输距离。对信号进行成功的传输和采样以后才能够使得接下来的信号分析模块 顺利进行。 2. 信号分析模块设计。将采接入计算机的信号利用快速傅立叶变换进行时 西南科技大学本科生毕业设计论文 2 域和频域的计算,使信号的时域波形和频谱能够直观地显示出来,从而达到对 信号特征的分析。 图图 1-11-1 低频信号分析仪软件设计设计框图低频信号分析仪软件设计设计框图 1.3 论文研究重点论文研究重点 通过 matlab 发生出低频信号,在满足奈奎斯特定理的情况下完成对信 号的采集,然后对采集到的信号进行傅立叶变换。在傅立叶变换中当 n 太大时, 直接进行 dft 运算,运算量会很大,这就对计算机的性能提出了很高的要求, 但是利用周期性可以大大的降低运算量。这时就可以用 fft 算法来实现对信号 的快速傅立叶变换。由离散傅立叶变换(dft)可知,由于 x(f)是复函数,所以 为的振振幅,称 为的相位谱。( )a f( )x t( )f( )x t 显示图形 串口通信进行仿真 低频信号的采集 (matlab 产生信 号) 串口通信 完成对信 号的采集 信号的 分析 西南科技大学本科生毕业设计论文 3 第二章第二章 信号的输入信号的输入 2.1 串口通信模块串口通信模块 在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据 传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串 口的灵活编程控制是我们所需要的。 在 windows 环境(windows nt、win98、windows2000)下,串口是系统 资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请 要求(打开串口) ,通信完成后必须释放资源(关闭串口) 。 2.1.1 基本原理基本原理 大多数计算机包含两个基于 rs232 的串口。串口同时也是仪器仪表设备通 用的通信协议;很多 gpib 兼容的设备也带有 rs-232 口。同时,串口通信协议 也可以用于获取远程采集设备的数据。 串行端口的本质功能是作为 cpu 和串行设备间的编码转换器。当数据从 cpu 经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串 行的位被转换为字节数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字 节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 根线接收数据。它很简单并且能够实现远距离通信。比如 ieee488 定义并行通 行状态时,规定设备线总常不得超过 20 米,并且任意两个设备间的长度不得超 过 2 米;而对于串口而言,长度可达 1200 米。 典型地,串口用于 ascii 码字符的传输。通信使用 3 根线完成:(1)地 线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发 送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口 通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行 的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的 bit 的 个数。例如 300 波特表示每秒钟发送 300 个 bit。当我们提到时钟周期时,我 西南科技大学本科生毕业设计论文 4 们就是指波特率例如如果协议需要 4800 波特率,那么时钟是 4800hz。这意味 着串口通信在数据线上的采样率为 4800hz。通常电话线的波特率为 14400,28800 和 36600。波特率可以远远大于这些值,但是波特率和距离成反 比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是 gpib 设备 的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息 包,实际的数据不会是 8 位的,标准的值是 5、7 和 8 位。如何设置取决于你想 传送的信息。比如,标准的 ascii 码是 0127(7 位)。扩展的 ascii 码是 0255(8 位)。如果数据使用简单的文本(标准 ascii 码),那么每个数据 包使用 7 位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验 位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为 1,1.5 和 2 位。由 于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信 中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并 且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步 的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、 奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设 置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻 辑高位。例如,如果数据是 011,那么对于偶校验,校验位为 0,保证逻辑高的 位数是偶数个。如果是奇校验,校验位位 1,这样就有 3 个逻辑高位。高位和 低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备 能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接 收数据是否不同步 西南科技大学本科生毕业设计论文 5 串口是否空闲 发送数据 关闭空闲信号 接受数据 开始 串口初始化 是否发送完毕 返回 n y n y 图图 2-12-1 串口通信流程图串口通信流程图 2.2 串口通信和串口通信和 rs-232 .1 rs-232rs-232 通信协议通信协议 rs-232 是串行数据接口标准,最初都是由电子工业协会(eia)制订并发布 的,rs-232 在 1962 年发布,命名为 eia-232-e,作为工业标准,以保证不同厂 家产品之间的兼容。rs-422 由 rs-232 发展而来,它是为弥补 rs-232 之不足而 提出的。 为改进 rs-232 通信距离短、速率低的缺点,rs-422 定义了一种平衡通信 接口,将传输速率提高到 10mb/s,传输距离延长到 4000 英尺(速率低于 100kb/s 时) ,并允许在一条平衡总线上连接最多 10 个接收器。rs-422 是一种 单机发送、多机接收的单向、平衡传输规范,被命名为 tia/eia-422-a 标准。 为扩展应用范围,eia 又于 1983 年在 rs-422 基础上制定了 rs-485 标准, 增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增 加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 tia/eia-485-a 标准。由于 eia 提出的建议标准都是以“rs”作为前缀,所以 在通讯工业领域,仍然习惯将上述标准以 rs 作前缀称谓。 西南科技大学本科生毕业设计论文 6 rs-232、rs-422 与 rs-485 标准只对接口的电气特性做出规定,而不涉及 接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。因此在 视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。 如录像机厂家中的 sony 与松下对录像机的 rs-422 控制协议是有差异的,视频 服务器上的控制协议则更多了,如 louth、odetis 协议是公开的,而 prolink 则是基于 profile 上的。 .2 rs-232rs-232 串行接口标准串行接口标准 目前 rs-232 是 pc 机与通信工业中应用最广泛的一种串行接口。rs-232 被 定义为一种在低速率串行通讯中增加通讯距离的单端标准。rs-232 采取不平衡 传输方式,即所谓单端通讯。 收、发端的数据信号是相对于信号地,如从 dte 设备发出的数据在使用 db25 连接器时是 2 脚相对 7 脚(信号地)的电平,db25 各引脚定义参见图 1。 典型的 rs-232 信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正 电平在+5+15v,负电平在-5-15v 电平。当无数据传输时,线上为 ttl,从 开始传送数据到结束,线上电平从 ttl 电平到 rs-232 电平再返回 ttl 电平。接 收器典型的工作电平在+3+12v 与-3-12v。 由于发送电平与接收电平的差仅为 2v 至 3v 左右,所以其共模抑制能力差, 再加上双绞线上的分布电容,其传送距离最大为约 15 米,最高速率为 20kb/s。rs-232 是为点对点(即只用一对收、发设备)通讯而设计的,其驱动 器负载为 37k。所以 rs-232 适合本地设备之间的通信 .3 rs232rs232 接口定义接口定义 rs-232 接口又称之为 rs-232 口、串口、异步口或一个 com(通信)口。 “rs-232“是其最明确的名称。 在计算机世界中,大量的接口是串口或异步口, 但并不一定符合 rs-232 标准,但我们也通常认为它是 rs-232 口。 严格地讲 rs-232 接口是 dte(数据终端设备)和 dce(数据通信设备)之间的一个接口, dte 包括计算机、终端、串口打印机等设备。dce 通常只有调制解调器 (modem)和某些交换机 com 口是 dce。标准指出 dte 应该拥有一个插头(针输 出) ,dce 拥有一个插座(孔输出) 。 西南科技大学本科生毕业设计论文 7 图图 2-22-2 rs232rs232 接口引脚定义图接口引脚定义图 .4 串口信号线的接法串口信号线的接法 一个完整的 rs-232c 接口有 22 根线,采用标准的 25 芯插头座(或者 9 芯 插头座)。25 芯和 9 芯的主要信号线相同。以下的介绍是以 25 芯的 rs-232c 为例。 (1).主要信号线定义: 2 脚:发送数据 txd;3 脚:接收数据 rxd;4 脚:请求发送 rts;5 脚:清 除发送 cts;6 脚:数据设备就绪 dsr;20 脚:数据终端就绪 dtr; 8 脚:数据 载波检测 dcd;1 脚:保护地;7 脚:信号地。 (2).电气特性: 数据传输速率最大可到 20k bps,最大距离仅 15m. 微软的 msdn 6.0,其 windows api 中关于串行通讯设备(不一定都是串口 rs-232c 或 rs-422 或 rs- 449)速率的设置,最大可支持到 rs_256000,即 256k bps。 (3).接口的典型应用: 大多数计算机应用系统与智能单元之间只需使用 3 到 5 根信号线即可工作。 这时,除了 txd、rxd 以外,还需使用 rts、cts、dcd、dtr、dsr 等信号线。 (当然,在程序中也需要对相应的信号线进行设置。 ) 西南科技大学本科生毕业设计论文 8 图图 2-32-3 rs232-crs232-c 信号线接法信号线接法 2.2.3 3 visualvisual c+c+ 及及 mfcmfc 简介简介 mfc 库和 visual c+提供了可以用于创建各种应用程序的环境。 visual c+可以帮助您开发满足各种商业需求的应用程序。它提供了各种 功能和工具。 visual c+特色包括: (1).本机 com 支持 可视化的 com 编辑,与位置和语言无关的 com 浏览,mfc 模板,以及编译 器支持简化了基于组件的开发。 (2).visual schema disigner 通过从桌面远程分析 microsoft sql server 数据库的模式(schema),提高了 数据库应用程序开发的效率。 (3).microsoft transaction server microsoft transaction server 帮助您建立高性能的基于事务的应用程序。 (4).活动文档服务器支持 visual c+提供了创建活动文档服务器的向导和可编程支持,这些活动文 档服务器可以在任何活动文档服务器中调用,如在 microsoft office97 和 microsoft internet explorer 4.0 中。 visual c+的开发环境包括: (1).帮助管理您的工程的工程工作区。 (2).编译工程的工具。 (3).设计用户界面和创建资源的编译器。 (4).共享的开发组件,包括一个优化的编译器,一个增量链接器和一个集成的 调试器。 visual c+有三个版本: 标准版,除了代码优化,性能分析器(profiler)和与 mfc 库的静态链接外, 标准版包含了专业版的所有其它功能。 专业版,使您能够开发和发布商用等级的软件产品。其功能包括 vfc,active template library(atl,活动模板库),com 和 ole db。 西南科技大学本科生毕业设计论文 9 企业版提供了建立和验证企业级 com 应用程序的工具和组件。该版本中包 含专业版中的所有功能,另外还包括 microsoft transaction server,sql 编辑器和 调试器,microsoft visual sourcesafe,以及对 activex 对象(ado)和远程数据对象 (rdo)的支持。 mfc 库的功能: mfc 库是基于 c+类的一个集合和一个应用程序框架,主要用于创建 microsoft windows 应用程序。这个类的集合将 c+语言扩展为包括创建基于 windows 的应用程序所需要的大部分基本结构元素。应用程序框架则定义了应 用程序的结构,并为应用程序处理许多常规任务。 mfc 库是基于 win32 应用程序编程接口(api)之上而建立的。该 api 是操作 系统为应用程序提供的一系列函数。mfc 展示了代表 windows 操作系统的通用 对象的基本类。 mfc 并不封装或包括整个 api.它只包括主要的结构组件和常用组件。由于 mfc 是用 c+编写的,因此,您可以很容易地使用 win32 api 对操作系统进行本 机调用。 使用 mfc 的益处: mfc 库使您能够利用专业的 windows 开发人员的成果。mfc 缩短了开发时间, 使代码更简洁,在不降低编程自由度和灵活性的前提下提供支持,并提供了对 难于编程的用户界面元素和技术(如 activex 和 internet 编程)的方便访问。 mfc 通过 ole db 模板和 ado 简化数据库编程,并通过 windows socket 简化网 络编程。mfc 使对诸如属性表,打印预览和浮动工具栏等功能的编程变得十分 简单。 在开发全功能的 windows 应用程序,数据库应用程序,activex 控件和组 件以及 internet 应用程序时,mfc 可提供许多优点,例如: (1).提供一个应用程序框架,用户可在其上建立 windows 应用程序。 (2).兼容以前版本的可重用的 c+类。 (3).行业中最大的可重用的 c+源代码库。 (4).与 visual c+集成。 文档/视图体系结构: 西南科技大学本科生毕业设计论文 10 mfc 提供了多种类来满足范围广泛的编程需求。使用 mfc 编程的第一步是 熟悉这些类,并学习它们在 mfc 层次结构中的相互关系。某些类可直接使用;其 余的类可作为创建其它类的基类。 学习 mfc 类时,将它们按类别组织是很有帮助的。一些重要的 mfc 类的类 别包括: (1).应用程序体系结构类。 (2).用户界面类。 (3).数据库类。 (4).internet 类。 mfc 编程依赖消息的传递推动整个程序的运行。 2.4 实现串行通信实现串行通信 .1 1 在当前工程添加在当前工程添加 mscommmscomm 控件控件 visual c+为我们提供了一种好用的 activex 控件 microsoft communications control(即 mscomm)来支持应用程序对串口的访问,在应用程 序中插入 mscomm 控件后就可以较为方便地实现对通过计算机串口收发数据。 打开 visual c+ 6.0,建立一个基于对话框的 mfc 应用程序: scommtest。然后在主对话框中添加控件,最后效果如图 2.4.1 所示。 图图 2-42-4 对话框最终状态对话框最终状态 然后用 classwizard 为相应控件添加变量,控件的属性设置情况如下表 1- 2-1 所示。 西南科技大学本科生毕业设计论文 11 控件控件 id caption 需要添加的变量及变量类型 静态文本 idc_static 接收显示 静态文本 idc_static 发送输入 编辑框 idc_edit_rxdatam_streditrxdata value cstring 编辑框 idc_edit_txdatam_stredittxdata value cstring 按钮 idc_button_manualsend 发送 mscommidc_mscomm1m_ctrlcomm control 图图 2-62-6 控件及其属性设置情况控件及其属性设置情况 要使用 activex 控件 mscomm,程序员必须将其添加入工程,其方法是: (1)单击主菜单 project 的子菜单 add to project 的 components and controls 选项; 图图 2-72-7 添加控件、控件对话框添加控件、控件对话框 (2)在弹出的“components and controls gallery“对话框中选择 registered activex controls 文件夹中的“microsoft communications control,version 6.0“选项。 如图 2.4.3 图图 2-82-8 mscommmscomm 控件选择对话框控件选择对话框 西南科技大学本科生毕业设计论文 12 单击其中的“insert“按钮,mscomm 控件就被增加到工程中了。与此同时, 类 cmscomm 的相关文件 mscomm.h 和 mscomm.cpp 也一并被加入 project 的 header files 和 source files 中。 图图 2-92-9 添加添加 cmscommcmscomm 类的确认对话框类的确认对话框 .2 初始化串口:设置初始化串口:设置 mscommmscomm 控件的属性控件的属性 打开 classwizard-member variables 页,如图 2.4.5 所示,选中控件 idc_mscomm1,再单击“add varialbe”按钮,在 cscommtestdlg 类中为控 件 idc_mscomm1 添加 cmscomm 控制变量 m_ctrlcomm。 图图 2-102-10 为控件为控件 idc_mscomm1idc_mscomm1 添加控制变量添加控制变量 图图 2-112-11 mscommmscomm 控件出现在资源中控件出现在资源中 西南科技大学本科生毕业设计论文 13 通过以上操作,classwizard 自动在 scommtestdlg,h 中加入了#include” mscomm.h”语句。 /afx_includes() #include “mscomm.h“ /afx_includes 然后在 cscommtestdlg:oninitdialog()函数中写入对串口的初始化语句, 串口初始化语句由 idc_mascomm1 的 cmscomm 控制变量 m_ctrlcomm 来 设置串口控件属性。其中包括了选择串口,输入代码如下: bool cscommtestdlg:oninitdialog() cdialog:oninitdialog(); / todo: add extra initialization here m_ctrlcomm.setcommport(2); /选择 com1 m_ctrlcomm.setinputmode(1); /输入方式为二进制方式 m_ctrlcomm.setinbuffersize(1024); /设置输入缓冲区大小 m_ctrlcomm.setoutbuffersize(512); /设置输出缓冲区大小 m_ctrlcomm.setsettings(“9600,n,8,1“); /波特率 9600,无校验,8 个数据位, 1 个停止位 if(!m_ctrlcomm.getportopen() m_ctrlcomm.setportopen(true);/打开串口 /参数 1 表示每当串口接收缓冲区中有多于 /或等于 1 个字符时将引发一个接收数据的 oncomm 事件 m_ctrlcomm.setrthreshold(1); m_ctrlcomm.setinputlen(0); /设置当前接收区数据长度为 0 m_ctrlcomm.getinput(); /先预读缓冲区以清除残留数据 return true; / return true unless you set the focus to a control 西南科技大学本科生毕业设计论文 14 .3 数据接收函数数据接收函数 oncomm()oncomm() mscomm 控件一般用时间驱动方式从串口接受数据,也就是消息处理,当串 口有事件发生时,程序调用消息函数来处理数据。打开 classwizard-member variables 页,如图 2.4.7 所示,打开 classwizard-message maps,在 class name 中选择类 cscommtestdlg,再在 objectids 中选择 idc_mscomm1,然后在 message 中双击消息 oncomm(或单击“add function”按钮),在弹出的对话 框中将函数名改为 oncomm(好记而已),单击“ok”,就加入了串口时间的 消息处理函数。此时打开工程头文件 scommtestdlg.h 和实现文件 scommtestdlg.cpp 会发现程序自动在中添加代码。 图图 2-122-12 为控件为控件 idc_mscomm1idc_mscomm1 添加消息事件处理函数添加消息事件处理函数 oncomm()oncomm() 编写函数 oncomm()中的代码,主要任务是从串口接受数据并显示在接受编 辑框中。 void cscommtestdlg:oncomm() / todo: add your control notification handler code here variant variant_inp; colesafearray safearray_inp; long len,k; byte rxdata2048; /设置 byte 数组 cstring strtemp; if(m_ctrlcomm.getcommevent()=2) /事件值为 2 表示接收缓冲区内有字符 西南科技大学本科生毕业设计论文 15 variant_inp=m_ctrlcomm.getinput(); /读缓冲区 safearray_inp=variant_inp; /variant 型变量转换为 colesafearray 型 变量 len=safearray_inp.getonedimsize(); /得到有效数据长度 for(k=0;k #include “scommtest.h“ #include “scommtestdlg.h“ #ifdef _debug #define new debug_new #undef this_file static char this_file = _file_; #endif / / caboutdlg dialog used for app about class caboutdlg : public cdialog public: caboutdlg(); / dialog data /afx_data(caboutdlg) enum idd = idd_aboutbox ; /afx_data / classwizard generated virtual function overrides /afx_virtual(caboutdlg) protected: virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support /afx_virtual / impl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特岗教师招聘考试英语教育教学能力测试模拟题
- 2025年网络安全工程师高级实战指南与题库
- 电业作业规程培训课件
- 2025年特岗教师招聘面试初中体育科目备考指南及模拟题集
- 幼儿园秋季开学返园工作方案
- 甲状腺超声造影课件
- 甲状腺正常生理功能
- 甲方工程基本知识培训课件
- 《自然选择的证明》课件
- 《空城计》教学课件
- 产品表面外观缺陷的限定标准
- (33)-钠钾泵细胞生物学
- 配电室巡检记录表
- 紧急宫颈环扎术的手术指征及术后管理
- GB/T 242-2007金属管扩口试验方法
- 政治理论水平任职资格考试题库
- 路基压实度汇总表
- 【食品生产加工技术】香肠的加工技术
- 贫困户访谈记录
- 道路喷雾降尘方案
- 唐恬人世间的孤勇者与追光者
评论
0/150
提交评论