资源描述
(word完整版)MATLAB串口通信设计源码
function varargout = PJSerialCOM(varargin)
% PJSERIALCOM M-file for PJSerialCOM。fig
% PJSERIALCOM, by itself, creates a new PJSERIALCOM or raises the existing
% singleton*.
%
% H = PJSERIALCOM returns the handle to a new PJSERIALCOM or the handle to
% the existing singleton*.
%
% PJSERIALCOM(’CALLBACK',hObject,eventData,handles,。。。) calls the local
% function named CALLBACK in PJSERIALCOM.M with the given input arguments。
%
% PJSERIALCOM(’Property','Value',。.。) creates a new PJSERIALCOM or raises the
% existing singleton*。 Starting from the left, property value pairs are
% applied to the GUI before PJSerialCOM_OpeningFcn gets called。 An
% unrecognized property name or invalid value makes property application
% stop。 All inputs are passed to PJSerialCOM_OpeningFcn via varargin。
%
% *See GUI Options on GUIDE’s Tools menu。 Choose ”GUI allows only one
% instance to run (singleton)”。
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help PJSerialCOM
% Last Modified by GUIDE v2。5 26-May-2012 18:45:14
% Begin initialization code — DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(’gui_Name’, mfilename, .。。
’gui_Singleton', gui_Singleton, ...
’gui_OpeningFcn’, @PJSerialCOM_OpeningFcn, 。。.
’gui_OutputFcn', @PJSerialCOM_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
% End initialization code — DO NOT EDIT
% ——— Executes just before PJSerialCOM is made visible.
function PJSerialCOM_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn。
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to PJSerialCOM (see VARARGIN)
% Choose default command line output for PJSerialCOM
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes PJSerialCOM wait for user response (see UIRESUME)
% uiwait(handles.figPJSerialCOM);
set(handles。btnClosePort,'Enable','off');
set(handles.btnSendData,'Enable','Off’);
setappdata(handles。figPJSerialCOM,'u’,’');
% —-— Outputs from this function are returned to the command line.
function varargout = PJSerialCOM_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles。output;
% -—— Executes on selection change in pumComPort.
function pumComPort_Callback(hObject, eventdata, handles)
% hObject handle to pumComPort (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String’) returns pumComPort contents as cell array
% contents{get(hObject,'Value')} returns selected item from pumComPort
% ——- Executes during object creation, after setting all properties。
function pumComPort_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumComPort (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty — handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor'), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,'white');
end
% --— Executes on selection change in pumBaudRate.
function pumBaudRate_Callback(hObject, eventdata, handles)
% hObject handle to pumBaudRate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns pumBaudRate contents as cell array
% contents{get(hObject,'Value')} returns selected item from pumBaudRate
% —-- Executes during object creation, after setting all properties.
function pumBaudRate_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumBaudRate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows。
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,'BackgroundColor',’white’);
end
% -—- Executes on selection change in pumDataBits.
function pumDataBits_Callback(hObject, eventdata, handles)
% hObject handle to pumDataBits (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String’) returns pumDataBits contents as cell array
% contents{get(hObject,'Value’)} returns selected item from pumDataBits
% ——— Executes during object creation, after setting all properties。
function pumDataBits_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumDataBits (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER。
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,’defaultUicontrolBackgroundColor'))
set(hObject,’BackgroundColor’,’white');
end
% ——— Executes on selection change in pumStopBits.
function pumStopBits_Callback(hObject, eventdata, handles)
% hObject handle to pumStopBits (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String’) returns pumStopBits contents as cell array
% contents{get(hObject,'Value’)} returns selected item from pumStopBits
% -—- Executes during object creation, after setting all properties.
function pumStopBits_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumStopBits (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER。
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,’defaultUicontrolBackgroundColor'))
set(hObject,’BackgroundColor’,’white’);
end
% --— Executes on selection change in pumParity.
function pumParity_Callback(hObject, eventdata, handles)
% hObject handle to pumParity (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String’) returns pumParity contents as cell array
% contents{get(hObject,'Value’)} returns selected item from pumParity
% -—— Executes during object creation, after setting all properties。
function pumParity_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumParity (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER。
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor’,'white’);
end
% --— Executes on selection change in pumFlowControl.
function pumFlowControl_Callback(hObject, eventdata, handles)
% hObject handle to pumFlowControl (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,’String') returns pumFlowControl contents as cell array
% contents{get(hObject,'Value')} returns selected item from pumFlowControl
% -—- Executes during object creation, after setting all properties.
function pumFlowControl_CreateFcn(hObject, eventdata, handles)
% hObject handle to pumFlowControl (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles empty — handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows。
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor'))
set(hObject,’BackgroundColor','white’);
end
function edtRecvData_Callback(hObject, eventdata, handles)
% hObject handle to edtRecvData (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edtRecvData as text
% str2double(get(hObject,’String')) returns contents of edtRecvData as a double
% -—— Executes during object creation, after setting all properties.
function edtRecvData_CreateFcn(hObject, eventdata, handles)
% hObject handle to edtRecvData (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles empty — handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows。
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor','white');
end
function edtSendData_Callback(hObject, eventdata, handles)
% hObject handle to edtSendData (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,’String’) returns contents of edtSendData as text
% str2double(get(hObject,'String')) returns contents of edtSendData as a double
% —-— Executes during object creation, after setting all properties。
function edtSendData_CreateFcn(hObject, eventdata, handles)
% hObject handle to edtSendData (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty — handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER。
if ispc && isequal(get(hObject,'BackgroundColor’), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,’BackgroundColor','white’);
end
% -—— Executes on button press in btnOpenPort。
function btnOpenPort_Callback(hObject, eventdata, handles)
% hObject handle to btnOpenPort (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
comPort=get(handles。pumComPort,’String’);
handles.u_sCom=serial(comPort{get(handles。pumComPort,'Value')});
baudRate=get(handles。pumBaudRate,'String’);
set(handles.u_sCom,’BaudRate',str2double(baudRate{get(handles.pumBaudRate,'Value')}));
dataBits=get(handles.pumDataBits,'String');
set(handles.u_sCom,’DataBits',str2double(dataBits{get(handles。pumDataBits,'Value’)}));
stopBits=get(handles.pumStopBits,'String');
set(handles。u_sCom,’StopBits',str2double(stopBits{get(handles。pumStopBits,'Value’)}));
parity=get(handles.pumParity,'String');
if strcmp(parity,’ÎÞ’)==1
set(handles。u_sCom,’Parity',’none');
else
if strcmp(parity,’ÆæÐ£Ñé')==1
set(handles.u_sCom,'Parity','odd');
else
if strcmp(parity,’żУÑé’)==1
set(handles.u_sCom,'Parity’,'even');
else
set(handles.u_sCom,’Parity’,'none');
end
end
end
flowControl=get(handles。pumFlowControl,’String’);
if strcmp(flowControl,'ÎÞ')==1
set(handles。u_sCom,’FlowControl’,'none’);
else
if strcmp(flowControl,'Ó²¼þ’)==1
set(handles.u_sCom,'FlowControl’,'hardware’);
else
if strcmp(flowControl,’Èí¼þ')==1
set(handles。u_sCom,’FlowControl’,’software');
else
set(handles.u_sCom,'FlowControl’,’none’);
end
end
end
set(handles.u_sCom,’Timeout',1);
set(handles.u_sCom,'InputBufferSize',1024);
set(handles.u_sCom,'BytesAvailableFcnMode’,’byte');
set(handles。u_sCom,'BytesAvailableFcnCount',1);
set(handles。u_sCom,'BytesAvailableFcn’,{@BytesAvailableFcnCallback,handles});
fopen(handles。u_sCom);
set(handles.txtStatus,'String',’´ò¿ª¶Ë¿Ú³É¹¦’);
set(hObject,'Enable’,'off’);
set(handles。btnClosePort,’Enable’,'On');
% handles。u_timer=timer(’TimerFcn',{@ReadCom,handles},’Period’,1,’ExecutionMode’,’fixedrate’);
guidata(hObject,handles);
set(handles。btnSendData,'Enable','On');
% function ReadCom(obj,eventdata,handles)
% set(handles。txtStatus,'String','ÕýÔÚ¶ÁÈ¡Êý¾Ý');
% readString=fread(handles.u_sCom,10);
% set(handles.edtRecvData,’String',readString);
% set(handles.txtStatus,’String’,'½ÓÊÕÊý¾Ý³É¹¦');
% -—— Executes on button press in btnClosePort.
function btnClosePort_Callback(hObject, eventdata, handles)
% hObject handle to btnClosePort (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
fclose(handles.u_sCom);
% stop(handles。u_timer);
% delete(handles。u_timer);
handles.u_sCom=0;
guidata(hObject,handles);
set(handles.txtStatus,'String','¹Ø±Õ¶Ë¿Ú³É¹¦’);
set(handles.btnOpenPort,’Enable’,’On’);
set(handles.btnSendData,’Enable','Off');
set(hObject,’Enable’,'Off');
% --— Executes on button press in btnSendData。
function btnSendData_Callback(hObject, eventdata, handles)
% hObject handle to btnSendData (see GCBO)
% eventdata reserved — to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
sendString=get(handles。edtSendData,’String’);
fwrite(handles。u_sCom,sendString);
set(handles。txtStatus,'String’,’·¢ËÍÊý¾Ý³É¹¦');
set(handles。edtSendData,'String’,’');
% start(handles。u_timer);
function BytesAvailableFcnCallback(t,eventdata,handles)
readString=fread(handles.u_sCom,1);
u=getappdata(handles。figP
展开阅读全文