注:文章内容来源于网络,真实性有待确认,请自行甄别。
如题,matlab可不可以把串口采集的数据实时进行显示呢?
发表于:2024-10-24 00:00:00浏览:7次
问题描述:如题,matlab可不可以把串口采集的数据实时进行显示呢?
可以的,简单一点的话会很简单,数据自己解析,一下只是个例子
functn initCtrl(com)
global data
t=cputime;
data=[t;0];
global s_p;
global fig;
fig= plot(0,0,...
'EraseMode','background','MarkerSize',5);
try
s_p=serial(com);
catch
error('Can''t create serial object');
end
%设定串口对象属性,波特率默认9600
s_p.BytesAvailableFcnMode='byte';
s_p.BytesAvailableFcnCount=1;
s_p.
%打开串口
fopen(s_p);
设置了一个Callback,ctrlcom,根据接收到的串口数据来动态绘图
function ctrlcom(obj,event)
global fig
global data
if('BytesAvailable'==event.Type)
d=fread(obj,1,'int8');
t=cputime;
m=[t-data(1,1);d];
data=[data m];
len=size(data,2);
set(fig'XData',data(1,2:len),'YData',data(2,2:len))
drawnow
axis([0 data(1,data(1,len) 0 255]);
end
关闭端口,删除对象,释放资源:
function closeCtrl()
global s_p;
fclose(s_p);
delete(s_p);
希望能帮助你。
栏目分类全部>