• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于Matlab GUI的串口通信编程实现

基于Matlab GUI的串口通信编程实现

录入:edatop.com     点击:

(1)触发串口中断的方式。在Matlab串口通信编程中,Matlab通过检测到串口通信事件,从而触发串口中断。涉及到串口读写的事件包括:Bytes available,Output empty。其中Bytes available事件有两种:一种是接收到的字符数达到人工设定的数目时,则系统产生该事件;另一种是当接收到指定字符时,系统产生该事件。Output erupty事件是在系统检测到输出缓存区为空时,产生该事件。

Bytes available事件需要事先设置。可以使用函数:set(obj,'By tesAvailableFcnMode','byte');set(obj,'BytesAvailableFcn-Count',240);以上两个函数设置当串口检测到输入缓存中到达了240个字符的数据时,则触发串口中断。另外,也可以设置为当系统检测到某个字符达到串口,则触发串口中断。其设置函数为:set(obj,'BytesAvailableFcnMode','terminator');set(obj,'terminator',  'H')。以上两个函数设置当串口检测到字符H时,则触发串口中断。

输出缓存为空事件的产生。该事件由系统自动检测产生,不需要用户特别设置。该事件一般在输出缓存中的最后一个字符发送完毕后产生。用户可以定义该事件引起的串口中断处理函数。

(2)串口中断处理函数。串口中断处理函数可以根据用户需要自行定义。如串口读中断处理函数可以这样定义:obj.BytesAvailableF-cn=@reeeiveData。receiveData即为串口读中断处理函数。在读中断处理函数中可以进行串口读操作。即将输入缓存区中的数据读到用户自定义的存储变量中,以备后续的数据处理与分析。类似可以定义输出缓存为空时触发的串口中断处理函数:obj.OutputEmptyFcn=@write-Data。

本文开发的串口通信程序用于接收采集IMU(Inertial Measurement Unit)输出的加速度计和陀螺的测量数据。通过定义串口读中断事件和串口中断处理函数,实现了数据的自动采集,并以Matlab图形方式实时显示数据。

3 串口通信程序的编译发布

3.1 编译程序

为了对代码进行保密,以及方便用户发布可以在不同平台运行的可执行程序,Matlab提供了Matlab程序编译与发布功能。在进行Matlab程序编译之前,需要设置编译工具。在Matlab命令窗口中,输入运行mbuild-setup,进行编译工具设置。如图4所示。

\

mbuild-setup命令运行后,Matlab会检测已经安装在本机上的编译器,用户可以自行选择任意一个编译器,选择完毕后,运行编译命令,Matlab将使用用户选定的编译器对程序进行编译。

设置完毕编译工具后,即可以在命令窗口中运行编译命令,将Matlab程序编译成可执行程序。命令格式为:

mcc[-options]mifilel[mfile2…mfileN];

options为编译参数;mfilel为待编译的Matlab文件,如果包含多个Matlab文件,可以直接列在mfilel后面。

如将一个文件名为myfun.m的Matlab文件编译成一个独立可执行程序,可以使用mcc命令:

mcc-m myfun:

mcc命令可以用使用多个编译参数,相应参数的含义可以参见Matlab帮助文档。

3.2 发布程序

Matlab文件编译完毕后,生成的可执行程序还需要.Matlab环境的支持,要发布到没有安装Matlab的机器上运行,还需要进行最后一项工作,即打包Matlab组件运行环境(Matlab Component Runtime,MCR)。将MCR与可执行程序一起打包,拷贝到其他没有安装Matlab的机器上,在该机器上安装MCR,安装完毕即可以直接在该机器上运行编译的Matlab可执行程序。MCR安装文件位于:

Matlab Root\toolbox\compiler\deploy\win32

在2008版Matlab中,已经内置了Matlab编译发布工具箱,在Matlab命令窗口中运行deploytool命令,即可以调出该工具窗口,通过该工具可以方便、快捷地编译发布Matlab程序。

4 结语

Matlab具有强大的科学计算功能和图形显示功能,选用Matlab作为数据处理与分析工具是合适的,但其界面开发和数据采集功能相对较弱,不如VisualC++或者LabView强大。不过,对于一般的界面开发,和普通功能的串口通信开发,Matlab是足以胜任的,同时也可以直接利用其强大的数据分析与处理功能。本文基于Matlab GUI的串口通信功能的编程实现表明利用Matlab GUI可以进行包含一般界面元素的界面开发,在此基础上,加入串口通信功能,实现数据的实时采集与分析处理,并进行图形化显示。

作者:王战军 沈 明   来源:现代电子技术

上一篇:功率转换及管理的数字控制
下一篇:满足DC/DC转换器以供FPGA电源设计需求

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图