串口通信程序,带有GUI界面 串口通信程序,带有GUI界面 - matlab通信信号 - 谷速源码
下载频道> 资源分类> matlab源码> 通信信号> 串口通信程序,带有GUI界面 串口通信程序,带有GUI界面

标题:串口通信程序,带有GUI界面 串口通信程序,带有GUI界面
分享到:

所属分类: 通信信号 资源类型:程序源码 文件大小: 12.54 KB 上传时间: 2019-06-16 21:47:25 下载次数: 57 资源积分:1分 提 供 者: zhangsan456 code
内容:
串口通信程序,带有GUI界面 串口通信程序,带有GUI界面
function varargout = serial_communication(varargin)
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(h , eventdata, handles, varargin)
handles.output = h ;
java = get(h ,'Java ');
java .setFigureIcon(javax.swing.ImageIcon('icon.jpg'));
guidata(h , handles);
 
function varargout = serial_communication_OutputFcn(h , eventdata, handles) 
varargout{1} = handles.output;
 
function com_Callback(h , eventdata, handles)
 
function com_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function rate_Callback(h , eventdata, handles)
 
function rate_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function jiaoyan_Callback(h , eventdata, handles)
 
function jiaoyan_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function data_bits_Callback(h , eventdata, handles)
 
function data_bits_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function stop_bits_Callback(h , eventdata, handles)
 
function stop_bits_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function start_serial_Callback(h , eventdata, handles)
global scom
if get(h ,'value')
    com_n=sprintf('com%d',get(handles.com,'value'));
    rates=[300 600 1200 2400 4800 9600 19200 38400 43000 56000 57600 115200];
    baud_rate=rates(get(handles.rate,'value'));
    switch get(handles.jiaoyan,'value')
        case 1
            jiaoyan='none';
        case 2
            jiaoyan='odd';
        case 3
            jiaoyan='even';
    end
    data_bits=5+get(handles.data_bits,'value');
    stop_bits=get(handles.stop_bits,'value');
    scom=serial(com_n);
    set(scom,'BaudRate',baud_rate,'Parity',jiaoyan,'DataBits',...
        data_bits,'StopBits',stop_bits,'BytesAvailableFcnCount',100,...
        'BytesAvailableFcnMode','byte','BytesAvailableFcn',{@bytes,handles},...
        'TimerPeriod',0.01,'timerfcn',{@bytes,handles})
    try
        fopen(scom);
    catch
        msgbox('串口不可获得!');
        return
    end
    set(handles.xianshi,'string','')
    set(handles.activex1,'value',1)
else
    t=timerfind;
    try
        stop(t);
        delete(t);
    end
    scoms=instrfind;
    stopasync(scom);
    fclose(scoms);
    delete(scoms);
    set(handles.period_send,'value',0)
    set(handles.activex1,'value',0)
end
 
function bytes(obj,eventdata,handles)
n=get(obj,'BytesAvailable');
if n
    a=fread(obj,n,'uchar');
    if ~get(handles.hex_disp,'value')
        c=char(a');
        if ~get(handles.stop_disp,'value')
            set(handles.xianshi,'string',[get(handles.xianshi,'string') c])
        end
        set(handles.rec,'string',num2str(str2num(get(handles.rec,'string'))+length(c)))
    else
        c=str2num(dec2hex(a'))';
        if ~get(handles.stop_disp,'value')
            set(handles.xianshi,'string',[get(handles.xianshi,'string') num2str(c) '  '])
        end
        set(handles.rec,'string',num2str(str2num(get(handles.rec,'string'))+length(c)))
    end
end
 
function qingkong_Callback(h , eventdata, handles)
set(handles.xianshi,'string','')
 
function stop_disp_Callback(h , eventdata, handles)
 
function radiobutton1_Callback(h , eventdata, handles)
 
function radiobutton2_Callback(h , eventdata, handles)
 
function togglebutton4_Callback(h , eventdata, handles)
 
function hex_disp_Callback(h , eventdata, handles)
 
function manual_send_Callback(h , eventdata, handles)
global scom
if ~get(handles.hex_send,'value')
    str=get(handles.sends,'string');
    val=double(str);
    set(handles.trans,'string',num2str(str2num(get(handles.trans,'string'))+length(str2num(str))))
else
    a=get(handles.sends,'string');
    n=find(a==' ');
    n=[0 n length(a)+1];
    for i=1:length(n)-1
        temp=a(n(i)+1:n(i+1)-1);
        if ~rem(length(temp),2)
            b{i}=reshape(temp,2,[])';
        else
            break;
        end
    end
    val=hex2dec(b)';
    set(handles.trans,'string',num2str(str2num(get(handles.trans,'string'))+length(val)))
end
if ~isempty(val)
    try
        str=get(scom,'TransferStatus');
    catch
        return
    end
    while 1
        if ~(strcmp(str, 'write')||strcmp(str,'read&write'))
            fwrite(scom,val,'uint8','async');
            break
        end
    end
end
 
 
function pushbutton1_Callback(h , eventdata, handles)
set(handles.sends,'string','')
 
function checkbox2_Callback(h , eventdata, handles)
 
 
function period_send_Callback(h , eventdata, handles)
if get(h ,'value')
    t1=0.001*str2num(get(handles.period1,'string'));
    t=timer('BusyMode','queue','ExecutionMode','fixedrate',...
        'Period',t1,'TimerFcn',{@manual_send_Callback,handles});
    start(t);
else
    t=timerfind;
    stop(t);
    delete(t);
    clear t
end
 
function period1_Callback(h , eventdata, handles)
 
function period1_CreateFcn(h , eventdata, handles)
if ispc && isequal(get(h ,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(h ,'BackgroundColor','white');
end
 
function pushbutton2_Callback(h , eventdata, handles)
set([handles.rec,handles.trans],'string','0')
 
function copy_data_Callback(h , eventdata, handles)
if get(h ,'value')
    set(handles.xianshi,'enable','on')
else
    set(handles.xianshi,'enable','inactive')
 
end

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

icon.jpg
serial_communication.asv
serial_communication.fig
serial_communication.m

关键词: 串口通信程序 GUI界面

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved