MATLAB GUI图形界面实现串口通讯实时绘图(二)

MATLAB GUI图形界面实现串口通讯实时绘图(二)

  • 前言
  • 多窗口
  • 其他
  • GUI图形界
  • 遇到的问题

前言

上一篇写了一些注重点,现在把多窗口及其他注意点总结一下

多窗口

  • 在多窗口切换过程中,当前m文件的窗口默认都为figure1
  • 多个窗口切换后,只能同时运行一个m文件
  • 多窗口传值只能传递静态值。对于动态数据的传递,全局变量无法传递(句柄结构方式没有尝试,需要重新写GUI,太麻烦),怎么解决的?再将动态数据的处理过程复制一遍…
  • 标志着子窗口返回主窗口的完整过程关键语句是uiresume(handles.figure1);

其他

  • 在添加删除GUI中的表格时,先加载一个矩阵,利用矩阵的加减来操作
function biaoding01_OpeningFcn(hObject, eventdata, handles, varargin)
%加载窗体时加载一个空矩阵
load('Cal_data.mat','Cal_data')
   function pushbutton1_Callback(hObject, eventdata, handles)
    %添加矩阵
    new_cal_array=[a;b];
    old_cal_data=get(handles.uitable1,'Data');
    Cal_data=[old_cal_data;new_cal_array];
    set(handles.uitable1,'Data',Cal_data);
    save('Cal_data.mat','Cal_data')
function uitable1_CellSelectionCallback(hObject, eventdata, handles)
%表格选中操作
global hang_index
Cal_data=get(hObject,'Data');
hang=eventdata.Indices;
if isempty(hang)
   hang_index=[];
else
   hang_index=hang(1);
end

由于删除后会将选中行置为空,所以需要处理一下,否则报错,但不影响运行。

function pushbutton2_Callback(hObject, eventdata, handles)
%删除矩阵
Cal_data=get(handles.uitable1,'Data');
Cal_data(hang_index,:)=[];
set(handles.uitable1,'Data',Cal_data);
save('Cal_data.mat','Cal_data');

GUI图形界

比较完整的功能性演示

这部分代码比较简单,就不上传了

遇到的问题

  • 还是窗口传值的问题,如果有大神能够实现多窗口动态数据实时传递,欢迎讨论。

刚开始学习这方面,很多不懂的,功能都是凑出来的,如果哪位大神觉得有改进的地方,欢迎指出。

你可能感兴趣的:(Matlab串口通讯)