Matlab串口函数

  • 格式:doc
  • 大小:99.50 KB
  • 文档页数:11

Matlab串口函数

2009-09-25 21:22

Matlab是数学计算的强大工具,它以矩阵作为数据操作的基本单位,广泛应用在以矩阵运算为主要工作方式的数理统计、自动控制、数字信号处理、动态系统仿真等领域。Matlab便捷灵活、操作简单、处理功能强大,因而利用Matlab对采

集到的ABS试验数据进行分析处理是非常合适的,关键问题是如何将数据从ECU传到计算机。

Matlab支持面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用serial函数就可创建串口对象,串口对象有很多属性[4],通过定义串口对象的属性,能定义串口的通信模式,从串口对象属性也能了解串口的状态。要想通过串口传输数据,必须先用fopen函数打开串口;数据传输结束后要用fclose。函数关闭串口。表1列出了常用的与串口操作有关的函数。

表1 Matlab串口函数介绍

_____________________________________________________

函数 说明

_____________________________________________________

serial 创建一个串口对象,格式:s = serial('coml' )

fopen 打开串口对象,格式:fope n( s)

fread 读取串口数据,格式: fread(s)

fclose 关闭串口对象,格式:fclose(s)

free 解除Matlab对串口对象的控制,使

serial 其他程序能对该串口进行读写操作

delete 删除对象s,格式:delete( s)

clear 从工作空间中删除对象s,格式:clear(s)

___________________________________________________

当建立了一个串口对象后,可以利用Matlab对其参数进行设置,包括对波特率、同步或异步读取方式、读取或写数据的等待时间等。本文以波特率的设置为例来说明串口参数的设置方法。

波特率的设置,一般有两种方法:(1)在创建串口对象时设定波特率:s=serial(`coml' ,'baudrate','9600'); (2)用set命令:set(s,'baudrate','9600')。

matlab 串口编程

2009年06月10日 星期三 下午 11:43

function serialdwj

%本程序使用的是虚拟串口软件VSPD虚拟的COM2和COM3来测试的

%使用COM1也可以使用 已经经过测试了

%如果要使用 请使用COM1口 就可以与下位机通信了

obj1=instrfind('Type','serial','Port','COM3','Tag','');

%COM2为测试串口

obj2=instrfind('Type','serial','Port','COM2','Tag','');

if isempty(obj1)

obj1=serial('COM3');

%新建测试串口

obj2=serial('COM2');

else

fclose(obj1);

obj1=obj1(1);

%打开串口

fclose(obj2);

obj2=obj2(1);

end

set(obj1,'BaudRate',9600,'FlowControl','none','Timeout',0.1)

set(obj1,'Inputbuffersize',512,'Outputbuffersize',512,'parity','none','databits',8,'stopbits',1);

%COM2的属性设置

set(obj2,'BaudRate',9600,'FlowControl','none','Timeout',0.1)

set(obj2,'Inputbuffersize',512,'Outputbuffersize',512,'parity','none','databits',8,'stopbits',1);

fopen(obj1);

%打开串口

fopen(obj2);

k=1;

datas=zeros([1,100]);

while(k<101)

if obj1.BytesAvailable

datas(1,k)=fread(obj1,1);

end

k=k+1;

plot(datas);

%向测试串口中写一个数据数据 在COM3中就可以接受到该数据

fwrite(obj2,round(255*rand(1)));

pause(1);

end

fclose(obj1); delete(obj1);

%删除测试串口

fclose(obj2);

delete(obj2);

end

%现在使用的m文件来显示的

%到后来有机会就使用gui界面来显示 MATLAB接收串口数据GUI界面

2009-09-19 12:42

工作流程:AD7818采样模拟信号,12bits输出,串口将数据发送给PC。串口发送波特率57600Bd,数据位8位,停止位一位。每个数据分两次发送,高四位补零。设计GUI界面接收串口数据并显示波形。

GUI界面如下:

功能描述:

1.选择串口,点击START,即等待串口发送数据,数据缓存4000bytes。接收缓存区满后绘图,同时显示最大电压值和波形功率值。

2.File菜单下有Import Data 和 Export Data功能,可将电压数据保存到txt文件中,同时可读取txt中的数据并显示相关波形。

3.Image菜单下有Open Image 和 Save Image功能,可将波形保存成图片格式,同时可打开图片显示在绘图窗口。

Matlab源代码:

function varargout = serial1(varargin)

% SERIAL1 M-file for serial1.fig

% SERIAL1, by itself, creates a new SERIAL1 or raises the existing

% singleton*. %

% H = SERIAL1 returns the handle to a new SERIAL1 or the handle to

% the existing singleton*.

%

% SERIAL1('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in SERIAL1.M with the given input arguments.

%

% SERIAL1('Property','Value',...) creates a new SERIAL1 or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before serial1_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to serial1_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help serial1

% Last Modified by GUIDE v2.5 18-Sep-2009 13:30:08

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @serial1_OpeningFcn, ...

'gui_OutputFcn', @serial1_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

%global s selected_com selected_baud selected_databits selected_stopbits selected_parity

selected_flowctrl

% --- Executes just before serial1 is made visible.

function serial1_OpeningFcn(hObject, eventdata, handles, varargin)