我正在尝试在 matlab 中创建一个 gui,它会定期检查我的操纵杆输入的状态。这个想法是接受这个输入并用它控制伺服。到目前为止,我可以让所有东西单独工作,但不能一起工作。现在,微控制器刚刚设置为查看串行线并基于此调整伺服(0到180之间)。这工作得很好。这是我到目前为止所拥有的,
function Foo
h.fig = figure('position', [1100 30 210 60]);
h.serial = serial('COM3');
fopen(h.serial);
h.joy = vrjoystick(1);
h.timerObject = timer('TimerFcn',@JoyInput,'ExecutionMode','fixedRate',...
'Period',1.0);
h.buttonOne = uicontrol('style', 'pushbutton' ,...
'position', [10 10 100 40],...
'string' , 'Start');
set(h.buttonOne, 'callback', {@Start, h})
function h = Start(hObject, eventdata, h)
h.buttonTwo = uicontrol('style', 'pushbutton' ,...
'position', [100 10 100 40],...
'string' , 'Stop');
set(h.buttonTwo, 'callback', {@Stop, h});
set(h.buttonOne, 'enable', 'off');
start(h.timerObject);
%fprintf(h.serial,'150') This works as is
function h = Stop(hObject, eventdata, h)
delete(h.buttonTwo)
h = rmfield(h, 'buttonTwo');
set(h.buttonOne, 'enable', 'on');
stop(h.timerObject);
fclose(h.serial);
delete(h.serial);
function h=JoyInput(hObject, eventdata, h)
fprintf(h.serial,'150') %doesn't work
% a = 1 % this repetively outputs a=1 without the fprintf
我收到一条错误消息
??? Error while evaluating TimerFcn for timer 'timer-17'
Input argument "h" is undefined.
我对在 matlab 中使用 gui 很陌生,当我可以在其他回调函数的其他地方使用 h.serial 时,我不知道这意味着什么。谢谢您的帮助!