【发布时间】:2014-01-31 10:22:38
【问题描述】:
我正在尝试使用 GUIDE 创建一个 GUI,它通过串行通信读取字符串。之后,它会删除所需的数字并将其放在屏幕上。我创建了这个函数,每次COM口缓冲区有一行数据时执行:
function out = intcon1(hObject, eventdata, handles)
global comPort;
a=fgetl(comPort);
disp(a);
a(a==' ') = '';
indexstart=strfind(a,'[');
indexend=strfind(a,']');
measureddata=a(indexstart(1):indexend(1));
commas=strfind(measureddata,',');
re1data=measureddata(2:(commas(1)-1));
re2data=measureddata((commas(1)+1):(commas(2)-1));
im1data=measureddata((commas(2)+1):(commas(3)-1));
im2data=measureddata((commas(3)+1):(commas(4)-1));
temp1data=measureddata((commas(4)+1):(commas(5)-1));
temp2data=measureddata((commas(5)+1):(commas(6)-1));
old_str=get(handle.re1, 'String');
new_str=strvcat(old_str, re1data);
set(handles.listbox8, 'String', re1data);
现在我正在尝试将数据放入列表框中。这只是第一个值。问题是,Matlab 一直在说,没有定义句柄。但我已经使用以下代码创建了一个清除列表框的按钮:
function clearlists_Callback(hObject, eventdata, handles)
% hObject handle to clearlists (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.listbox8, 'String', '');
有谁知道问题是什么以及如何解决?
【问题讨论】:
-
这是使用
BytesAvailableFcn的串口回调吗?如果是这样,您期望的参数完全错误。 -
是的,它正在使用 BytesAvailableFCN。那么参数应该是什么?
-
你能贴出创建串行对象并定义 BytesAvailableFCN 的代码吗?
标签: matlab matlab-guide handles