失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab gui 实时显示数据 GUI 实时显示数据

matlab gui 实时显示数据 GUI 实时显示数据

时间:2024-03-05 22:05:40

相关推荐

matlab gui 实时显示数据 GUI  实时显示数据

老师您好,请问您说的“加入一个逻辑变量 isX 并初始化为true.

每读入一个数据后,检查isX的值,若为true,则认为当前读入的是x,否则为y。然后在将isX的值取反即可。然后继续读取下一个数据。”具体代码怎么表示呢?以下是我写的,但不好,实时现实中出现了bug,想采用您的来试试。谢谢。

[

function dataDisp(obj,event,handles) %%%%%%%%%%%%%定时器 TimerFcn 函数

global k shuju shuzux1 shuzuy1

%串口TimerFcn的回调函数

% 串口数据显示

%%获取参数

hasData=getappdata(handles.figure1,'hasData');%%串口是否收到数据

strRec=getappdata(handles.figure1,'strRec');%%串口数据的字符串形式,定时器显示该数据

shuju=[str2num(strRec)]; %#ok

numRec=getappdata(handles.figure1,'numRec');%%串口接收到的数据个数

if~hasData %若串口没接受到数据,先尝试接收串口数据

bytes(obj,event,handles);

end

if hasData %若串口有数据,显示串口数据

%给数据显示模块加互斥锁

%执行显示数据模块时,不接受串口数据,即不执行BytesAvailableFcn回调函数

setappdata(handles.figure1,'isShow',true);

if length(strRec)>1000%%若要显示的字符串长度超过10000,清空显示区

strRec='';

setappdata(handles.figure1,'strRec',strRec);

end

set(handles.xianshi,'string',strRec); %显示数据

%% 处理数据

k=length(shuju);

set(handles.text14,'string',k);

a=rem(k,2);

if a==0

q=shuju(1,k-1); %%x

m=shuju(1,k); %%y

shuzux1=[shuzux1;q];

shuzuy1=[shuzuy1;m];

plot(handles.axes1,shuzux1,shuzuy1,'.m');

end

%%

set(handles.rec,'string',numRec); %更新接收计数

setappdata(handles.figure1,'hasData',false);%更新hasdata标志,表明串口数据已经显示

setappdata(handles.figure1,'isShow',false);%%给数据显示模块解锁

end

]

如果觉得《matlab gui 实时显示数据 GUI 实时显示数据》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。