图形用户界面(GUI),用arduino绘制数据



我有一个用arduino从LDR传感器获取数据的实时绘图的Matlab程序。现在我想在GUI中实现该程序,我正面临一些绘图问题。这是我的程序的一部分,我不知道如何在GUI模式下绘图。

(…)而(1)state = a.analogRead(0);(…)轴紧drawnow;X = [X, state];情节(x,"- * b");网格;

结束

代码必须在OpeningFcn?我应该复制粘贴到这里吗?我需要在绘图代码中更改什么?非常感谢!

OpeningFcn中永无止境的while循环将无限期地锁定您的GUI。你最好创建一个计时器对象,并在它的回调中运行你的"持续"绘图代码;一个例子:

function myui_OpeningFcn(hObject, eventdata, handles, varargin)
    % Create timer with delay of 0.1 seconds
    handles.tmrPlot = timer( ...
        'ExecutionMode', 'FixedRate', ...
        'Period', 0.1, ...
        'TimerFcn', @myPlottingFunction);
    % Store in ui data
    guidata(hObject, handles);
    % Start it!
    start(handles.tmrPlot);
end
function myPlottingFunction(src, evt)
    % Do some plotting
    plot(rand(10));
    drawnow;
end

使用计时器,您还可以,例如,在按钮的回调中开始和停止执行。

最新更新