function varargout = serial_communication(varargin)
% 作者:罗
% 功能;串口收发
% 版本:20101103 V2.0
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @serial_communication_OpeningFcn, ...
'gui_OutputFcn', @serial_communication_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 serial_communication_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
warning off all;
%% 改变窗口左上角的图标为icon.jpg
javaFrame = get(hObject, 'JavaFrame');
javaFrame.setFigureIcon(javax.swing.ImageIcon('icon.jpg'));
%% 初始化参数
hasData = false; %表征串口是否接收到数据
isShow = false; %表征是否正在进行数据显示,即是否正在执行函数dataDisp
isStopDisp = false; %表征是否按下了【停止显示】按钮
isHexDisp = false; %表征是否勾选了【十六进制显示】
isHexSend = false; %表征是否勾选了【十六进制发送】
numRec = 0; %接收字符计数
numSend = 0; %发送字符计数
strRec = ''; %已接收的字符串
%读取图片数据,只在第一次运行时读取
pathstr = fileparts(which(mfilename));
if exist([pathstr '\lamb.mat'], 'file') == 2
load([pathstr '\lamb.mat']);
else
openData = imread('green.jpg');
closedData = imread('red.jpg');
save lamb.mat openData closedData;
end
%% 将上述参数作为应用数据,存入窗口对象内
setappdata(hObject, 'hasData', hasData);
setappdata(hObject, 'strRec', strRec);
setappdata(hObject, 'numRec', numRec);
setappdata(hObject, 'numSend', numSend);
setappdata(hObject, 'isShow', isShow);
setappdata(hObject, 'isStopDisp', isStopDisp);
setappdata(hObject, 'isHexDisp', isHexDisp);
setappdata(hObject, 'isHexSend', isHexSend);
setappdata(hObject, 'openData', openData);
setappdata(hObject, 'closedData', closedData);
%初始化串口状态指示灯,串口灯默认为关闭状态
set(handles.lamb, 'cdata', closedData);
guidata(hObject, handles);
function varargout = serial_communication_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function com_Callback(hObject, ~, handles)
function com_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function rate_Callback(hObject, e