基于Matlab GUI的串口通信编程实现.pdf
《基于Matlab GUI的串口通信编程实现.pdf》由会员分享,可在线阅读,更多相关《基于Matlab GUI的串口通信编程实现.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于 Matlab GUI 的串口通信编程实现王战军1,沈?明2(1.91329 部队装备部,山东 威海?264200;2.92859 部队,天津?300061)摘?要:Matlab 不仅具有强大的科学计算功能,还内置了 GUI 工具用于进行界面开发。利用 Matlab 的 GUI 工具和内置的串口通信 API,设计开发一个可视化的串口通信例程,实现 IMU 原始数据的接收采集,并利用 Matlab 强大的科学计算功能,对数据进行实时处理,图形化显示数据处理结果。最后介绍了编译发布 M atlab 程序的步骤与注意事项。关键词:Matlab GUI;串口通信;IM U;软件编译中图分类号:T
2、P311?文献标识码:A?文章编号:1004?373X(2010)09?0038?03Serial Communication Program Development Based on MatlabGUI(1.PLA 91329 Unit,Weihai 264200,China;2.PLA 92859 Unit,Tianjin 300061,China)Abstract:Matlab has powerful scientific computation ability,and an embedded GU I tool is used to interface development.A v
3、isualized serial communication routines is designed with the GUI tool and embedded serial communication API,the recep?tion and acquisition of IMU original data is realized the scientific computation ability of Matlab is used for processing data real?timly and displaying result graphically.In the end
4、,steps to compile and release the program is introduced.Keywords:Matlab GUI;serial communication;IMU;software compiler收稿日期:2009?10?240?引?言Matlab 是 MathWorks 公司开发的一种科学计算软件。Matlab 运行稳定、可靠、使用方便,是广大科研人员进行科学研究的得力助手。Matlab 不仅具有强大的科学计算功能,还具有满足一般要求的数据采集以及界面设计开发功能。Matlab GUI(Graphic User Inter?face)就是内置于 Mat
5、lab 的进行图形界面开发的模块。本文利用 Matlab GUI 设计通过串口进行数据发送和接收的界面,并利用内置于 Matlab 的串口通信 API 实现串口数据发送与接收功能。1?Matlab GUI介绍启动 Matlab 后,运行 guide 命令即可以启动 Mat?lab GUI 开发工具。如图 1 所示。新建 Blank GUI,如图 2 所示。在新建 Blank GUI 界面中,包含了一般的界面元素,如菜单、按钮、坐标轴、控件等。添加必要的串口通信参数设置按钮。运行后的界面如图 3 所示。图 1?Matlab GUI 开发界面图 2?新建 Blank GUI 界面38通 信 设 备
6、王战军等:基于 Matlab GUI 的串口通信编程实现图 3?串口通信界面2?串口数据发送与接收功能实现2.1?建立串口通信流程的基本步骤Matlab 提供了对串口进行打开、关闭、以及串口参数设置等操作的一系列函数。利用这些函数可以选择串口号、设置串口通信参数(波特率、数据位、停止位、校验位等)、进行中断控制、流控制。从建立串口通信到结束串口通信的完整流程包括以下几个步骤:(1)为应用程序创建串口对象。实现该功能的函数为:obj=serial(?port?,?PropertyName?,PropertyValue,)其中参 数 port 为 完整 的串口 名称,如 com1。Property
7、Name 为串口通信参数,如 baudrate,startbits等。创建串口对 象的过程中,也 可以忽略 Proper?tyName。其函数为:obj=serial(?port?)(2)连接打开串口。实现该功能的函数为:fopen(obj)obj 即为使用创建串口对象函数的返回值。在连接打开串口后,可以对串口通信参数进行修改。(3)设置或者修改串口通信参数。在能够有效地进行串口通信前,必须设置正确的串口通信参数。实现该功能的函数为:props=set(obj,?PropertyName?,PropertyValue,)obj 即为使用创建串口对象函数的返回值;Proper?tyName 为串
8、口通信参数,如 baudrate,startbits 等。(4)从串口读写数据。在前面三个步骤正常完成后,即可以从串口读数据或者向串口写数据,也就是接收或者发送数据。实现读串口功能的函数有多个。其区别在于根据到达串口数据的类型选择合适的读函数。主要包括:fgetl,fgets,fread,fscanf。这里主要介绍fread,fread 函数实现从串口读入二进制数据。fread 的实现形式为:A=fread(obj,size)A 为读入的数据,以数组的形式存储,存储数据形式为字节;obj 即为使用创建串口对象函数的返回值;size 指定一次读操作读入字节的个数。实现写串口的函数有两个,分别为
9、fwrite 和 fprintf。fwrite 以二进制形式向串口写入数据,实现形式为:fwrite(obj,A)obj 即为使用创建串口对象函数的返回值;A 为写入的数据,以数组形式存储。fwrite 以文本形式向串口写入数据,即以 ASCII 码的形式向串口写数据,实现形式为:fprintf(obj,?cmd?)obj 即为使用创建串口对象函数的返回值;cmd 为写入的文本数据,以数组形式存储。(5)关闭串口以及释放串口对象占用的存储空间。关闭串口函数为:fclose(obj)。释放串口对象占用的内存空间,函数为:delete(obj)。释放串口对象在 Matlab工作区中占用的存储空间,
10、函数为:clear obj。以上 5 步是建立串口通信过程到关闭串口,释放串口占用资源的基本步骤。基本步骤可以实现手动收发数据。其例程如下:s=serial(?COM1?);fopen(s);s.BytesAvailableFcnMode=?terminator?;s.BytesAvailableFcn=instrcallback;fprintf(s,?*IDN?);out=fscanf(s);运行以上语句后,显示的结果如下:BytesAvailable event occurred at 17:01:29 for the object:Serial?COM1.串口数据接收完毕后,需要关闭串口
11、,并释放串口对象占用的资源,使用的命令如下:fclose(s);delete(s);clear s;2.2?串口中断设置及中断处理函数要实现自动收发数据,还需要定义串口中断处理函数以及触发串口中断的方式。定义串口中断处理函数也就是定义串口数据接收或者发送函数。定义触发串口中断的方式其目的是为了在串口检测到接收数据的时候,通知并启动串口数据接收函数进行数据接收操作;在串口输出缓存为空的时候,通知启动串口数据发送函数。(1)触发串口中断的方式。在 Matlab 串口通信编程中,Matlab 通过检测到串口通信事件,从而触发串口中断。涉及到串口读写的事件包括:Bytes available,Outp
12、ut empty。其中 Bytes available 事件有两种:一种39!现代电子技术2010 年第 9期总第 320 期?通信与信息技术 是接收到的字符数达到人工设定的数目时,则系统产生该事件;另一种是当接收到指定字符时,系统产生该事件。Output empty 事件是在系统检测到输出缓存区为空时,产生该事件。Bytes available 事件需要事先设置。可以使用函数:set(obj,?BytesAvailableFcnMode?,?byte?);set(obj,?BytesAvailableFcnCount?,240);以上两个函数设置当串口检测到输入缓存中到达了 240 个字符的
13、数据时,则触发串口中断。另外,也可以设置为当系统检测到某个字符达到串口,则触发串口中断。其设置函数为:set(obj,?BytesAvailableFcnMode?,?terminator?);set(obj,?terminator?,?H?)。以上两个函数设置当串口检测到字符 H 时,则触发串口中断。输出缓存为空事件的产生。该事件由系统自动检测产生,不需要用户特别设置。该事件一般在输出缓存中的最后一个字符发送完毕后产生。用户可以定义该事件引起的串口中断处理函数。(2)串口中断处理函数。串口中断处理函数可以根据用户需要自行定义。如串口读中断处理函数可以这样定义:obj.BytesAvailab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Matlab GUI的串口通信编程实现 基于 Matlab GUI 串口 通信 编程 实现
限制150内