Matlab GUI:从串口读取并同时显示在不同的列表框中

时间:2014-06-22 19:28:04

标签: matlab user-interface serial-port

我正在使用串行端口和多个列表框来读取串行端口中的数据。列表框用于读取特定数据(假设数据来自3个不同的来源,因此我有3个列表框)。

现在出现问题:

我想分别连续地阅读所有数据。我的意思是,当我在阅读列表框#1的数据后点击一个列表框(例如列表框#2)时,列表框#1会自动停止,所以我再次需要单击列表框#1来读取列表框#1的数据。但是我想在所有列表框中连续获取数据,而不是每次都点击(第一次点击初始化)。我怎样才能做到这一点?我尝试了其他方法,但没有工作。

补充评论:按照以下评论工作。

示例代码[已添加Edited和OpeningFcn]:

function main_OpeningFcn(hObject, eventdata, handles, varargin)
 handles.output = hObject;
 handles.timer   = timer(...
 'ExecutionMode', 'fixedRate', ...       % Run timer repeatedly
 'Period', 1, ...                        % Initial period is 1 sec.
 'TimerFcn', {@listbox1_Callback, handles});
 guidata(hObject, handles);

function listbox1_Callback(hObject, eventdata, handles)
     %serConn is the connection to COM port
     out = fscanf(handles.serConn);
     string = 'degrees1';
     t=1;
     while(t < 15)
     if strncmp(out,string,8)
     rxtext = out(14:15);
     currList = get(handles.listbox, 'String');
     set(handles.listbox,'String',...
       [currList ;  [temp]]);
     end
     pause(5);
     t = t+1;
     end

0 个答案:

没有答案