matlab读取串口数据并显示曲线[转载]
(2014-01-20 20:24:24)| 分类: Math_and_Matlab |
本文转载自:http://blog.csdn.net/qwertyuj/article/details/12108155
matlab程序读取单片机通过串口传来的IMU角度数据,并用曲线显示出来。
上传的值为float型,每个数据后有回车符。范围90~-90
主文件 serial_test2.m
[plain] view
plaincopy
-
%%
-
clc;
-
-
global
t; -
global
x; -
global
m; -
global
ii; -
-
t
= [0]; -
m
= [0]; -
ii
= 0; -
x
= -100; -
p
= plot(t,m,'EraseMode','background','MarkerSize',5); -
axis([x-200
x+200 -90 90]); -
grid
on; -
-
%%
-
-
try
-
s=serial('com4'); -
catch
-
error('cant serial'); -
end
-
set(s,'BaudRate',
115200,'DataBits',8,'StopBits',1,'Parity','none','FlowControl','none'); -
s.BytesAvailableFcnMode
= 'terminator'; -
s.BytesAvailableFcn
= {@callback,p}; -
-
fopen(s);
-
-
pause;
-
fclose(s);
-
delete(s);
-
clear
s -
close
all; -
clear
all;
回调函数 callback.m
[plain] view
plaincopy
-
%%
-
function
callback(s, BytesAvailable,p) -
-
global t; -
global x; -
global m; -
global ii; -
-
out = fscanf(s); -
data = str2num(out) -
-
t = [t ii]; -
m = [m data]; -
set(p, 'XData',t,'YData',m(1,:)); -
-
drawnow -
x = x + 1; -
axis([x-200 x+200 -90 90]); -
ii=ii+1; -
end
前一篇:matlab串口编程

加载中…