2012-10-09
matlab可不可以把串口采集的
可以的,简单一点的话会很简单,数据自己解析,一下只是个例子
function 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';...全部
可以的,简单一点的话会很简单,数据自己解析,一下只是个例子
function 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);
希望能帮助你。
。收起