我有调用fopen,可以帮我看看哪里的问题吗
function varargout = main(varargin)
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_OpeningFcn, ...
'gui_OutputFcn', @main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function main_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
global t TIME
Ports = instrhwinfo('serial'); %%查找所有可用串口
set(handles.popupmenu1,'String',Ports.AvailableSerialPorts);
t = timer('TimerFcn', {@timerCallback}, 'ExecutionMode', 'fixedDelay', 'Period', 0.5);%创建定时器
function varargout = main_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pushbutton1_Callback(hObject, eventdata, handles) %打开串口回调函数
global s n;
global serialport
%%
n=0;
s = instrfind('Type', 'serial', 'Port',serialport, 'Tag', ''); %查询检测串口com1
if isempty(s)
s = serial(serialport);
else
fclose(s);
s = s(1)
end
set(s,'BaudRate', 9600,'DataBits',8,'StopBits',1,'Parity','none','FlowControl','none');
s.BytesAvailableFcnMode = 'terminator'; % 数据回车“\n”进入回调函数
s.BytesAvailableFcn =@callback2; %引用回调函数
fopen(s);
function pushbutton2_Callback(hObject, eventdata, handles)%开始回调函数
global s flag t T TIME
fwrite(s,0);
flag=1;
start(t);
T=0;
TIME=[];
function pushbutton3_Callback(hObject, eventdata, handles)%停止回调函数
global flag t s
flag=0;
stop(t);
fwrite(s,255);
function pushbutton4_Callback(hObject, eventdata, handles)%退出回调函数
global s t
ss=questdlg('你真的要退出吗?','退出信息窗口!','不,我还想看看!','是的,我要退出!','是的,我要退出!');
switch ss
case '是的,我要退出!'
delete(handles.figure1);
fclose(s);
delete(s); %删除串口
delete(t); %删除定时器
delete(instrfindall);
clear s
end
function callback2(s,BytesAvailable)
global u
u = fscanf(s); %以字符串类型读数据
function timerCallback(obj, event) %定时器回调函数
global s T TIME flag
if flag==1
T=T+1;
TIME=[TIME T];
y=7*sin(TIME*0.005)+9;
% y1=-7*sin(TIME*0.005)+9;
handles=guidata(main);
axes(handles.axes1)
plot(handles.axes1,TIME,y);%画图
fwrite(s,18-round(y(end)));%发送数据
end
function popupmenu1_Callback(hObject, eventdata, handles)%下拉菜单回调函数
global serialport
list=get(handles.popupmenu1,'String');
val1=get(handles.popupmenu1,'Value');
serialport=list{val1}
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end