利用animatedline函数的串口通信及动态绘图

实验软件

Matlab2018b(animatedline函数在Matlab2014b版本推出)

实验代码

主函数

close all;
clear;
clc;
delete(instrfindall);

global s;
global h;
global x;
global y;
global m;
x = 1;
%采集并存放数据
y = zeros(1,1000);
m = 10;

h = animatedline;
axis([0,100,0,10]);

s = serial('COM5');
set(s,'BaudRate',115200,'DataBits',8,'StopBits',1,'Parity','none','FlowControl','none');
s.BytesAvailableFcnCount = 1;%进入中断的字节数
s.BytesAvailableFcnMode = 'byte';
s.InputBufferSize = 4096;
s.BytesAvailableFcn = @callback2;

try
    fopen(s);
    fwrite(s,'hello')
catch err
    msgbox('串口打开失败!');
end

回调函数

function callback2(obj,event)
%中断处理函数
%自行添加

global s;
global h;
global x;
global y;
global m;

y(x) = fscanf(s,'%d',1);
if x>50
    axis([m m+100 0 10]);
    m = m+1;
end
addpoints(h,x,y(x));
drawnow;
x = x+1;

end

实验结果

利用animatedline函数的串口通信及动态绘图_第1张图片
图1 实验结果

实验效果很不错。
animatedline函数功能非常强大。

你可能感兴趣的:(利用animatedline函数的串口通信及动态绘图)