⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.txt

📁 matlab环境下的多路串口数据实时绘图显示
💻 TXT
📖 第 1 页 / 共 5 页
字号:
  setappdata(hmainfig,'htext5',htext5);
 htext55=uicontrol(hmainfig,'style','text','position',[0.93,0.77,0.05,0.05],...
                              'backgroundcolor',[0.8,0.8,0.8],'string','',...
                               'foregroundcolor','blue','tag','htext55');
 setappdata(hmainfig,'htext55',htext55);
htext6=uicontrol(hmainfig,'style','text','position',[0.93,0.38,0.06,0.05],...
                              'backgroundcolor',[0.8,0.8,0.8],'string',':',...
                               'tag','htext6');
setappdata(hmainfig,'htext6',htext6);
htext66=uicontrol(hmainfig,'style','text','position',[0.93,0.33,0.05,0.05],...
                              'backgroundcolor',[0.8,0.8,0.8],'string','',...
                               'foregroundcolor','blue','tag','htext66');
setappdata(hmainfig,'htext66',htext66);
htext21=uicontrol(hmainfig,'style','text','string','X:','backgroundcolor',[0.8 0.8 0.8],...   %建立一个静态文本框用来显示“X:”。
                             'position',[0.15,0.96,0.05,0.04]);
 setappdata(hmainfig,'htext21',htext21);
htext22=uicontrol(hmainfig,'style','text','string','0.000','backgroundcolor',[0.8 0.8 0.8],...       %建立一个静态文本用来显示当前点的横坐标。
                              'foregroundcolor','blue',...
                             'position',[0.20,0.96,0.08,0.04],'tag','htext22');
setappdata(hmainfig,'htext22',htext22);
htext31=uicontrol(hmainfig,'style','text','string','Y:','backgroundcolor',[0.8 0.8 0.8],...   %建立一个静态文本用来显示“Y:"。
                             'position',[0.15,0.91,0.05,0.04]);
 setappdata(hmainfig,'htext31',htext31);
htext32=uicontrol(hmainfig,'style','text','string','0.000','backgroundcolor',[0.8 0.8 0.8],...       %建立一个静态文本用来当前点的纵坐标。
                            'foregroundcolor','red',...
                             'position',[0.20,0.91,0.08,0.04],'tag','htext32');
setappdata(hmainfig,'htext32',htext32);
htext41=uicontrol(hmainfig,'style','text','string','第','backgroundcolor',[0.8,0.8,0.8],...   %建立一个静态文本框用来显示”第“。
                              'fontweight','bold','fontsize',13,...
                              'horizontalalignment','right',...
                              'position',[0.4,0.91,0.05,0.06]);
setappdata(hmainfig,'htext41',htext41);
htext42=uicontrol(hmainfig,'style','text','string','1','backgroundcolor',[0.8,0.8,0.8],...      %建立一个静态文本用来显示当前是第几通道。
                              'fontweight','bold','fontsize',13,...
                               'position',[0.45,0.91,0.04,0.06]);
setappdata(hmainfig,'htext42',htext42);                           
htext43=uicontrol(hmainfig,'style','text','string','通道','backgroundcolor',[0.8,0.8,0.8],...  %建立一个静态文本用来显示”通道“两字。
                               'fontweight','bold','fontsize',13,...
                               'horizontalalignment','left',...
                               'position',[0.49,0.91,0.08,0.06]);
setappdata(hmainfig,'htext43',htext43);
  
%下面这段程序是定义子菜单quit的对话框,用来提示用户。
 set(hmenu15,'callback',...
                             ['q=questdlg(''你确定要退出这个界面吗?别忘了存盘!'',''关闭'',''Yes'',''No'',''Yes'');',...
                                '   if strcmp(q,''Yes'')',...
                                   'delete(hmainfig);',...
                                   ' else',... 
                                     'return;',...
                                     ' end']);

         
 % M-code for communicating with an instrument.
% create  a  serial port object.
    obj1 = instrfind('Type', 'serial', 'Port', 'COM1', 'Tag', '');
% Create the serial port object if it does not exist
% otherwise use the object that was found.
if isempty(obj1)
    obj1 = serial('COM1');
else
    fclose(obj1);
    obj1 = obj1(1) ;
end
%下面这三行程序是用来对串口的属性进行设置,包括对比特率的设置,输入输出缓冲区的大小等等进行设置。
set(obj1,'BaudRate',2400,'FlowControl','hardware','Timeout',50) ;
set(obj1,'Inputbuffersize',4096,'Outputbuffersize',4096,'parity','none','databits',8,'stopbits',1);
%下面这句是设置终止符,ASCII码为10的字符是换行符(\n)。
set(obj1,'Terminator',10);

    
%打开串口
 fopen(obj1);
 
 y=1;
 indata=[0 0];                                                                               %定义一个数组,用来接收串口发送过来的原始数据。
 data=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
 
 m=[0 0 0 0 0 0 0 0];                                                                   %定义一个数组,用来存放最新接收的8个数据。
 
 
 %for j=1:16                                                                                    %每个通道先接收2个数据,并用这两个数据来画出8个曲线。
      %  for i=1:2
         %  indata(i)=fscanf(obj1,'%',1);
        %if indata(i)>97                                                                       %根据其ASCII码来进行相应的处理,以得到其相应的数值。
        %    indata(i)=indata(i)-87;
       % else 
       %     indata(i)=indata(i)-48;
       %     end
      %  end
       
    % data(j)=indata(1).*16+indata(2);                                          %将十六进制数据变成十进制的BCD码的数据。
     %data(j)=data(j).*1/51;
 % end
 
 
 
 
 a1=[1,data(1);2,data(9)];                                                          %定义8个数组,并且这个数组的元素就是由data的元素组成。
 a2=[1,data(2);2,data(10)];
 a3=[1,data(3);2,data(11)];
 a4=[1,data(4);2,data(12)];
 a5=[1,data(5);2,data(13)];
 a6=[1,data(6);2,data(14)];
 a7=[1,data(7);2,data(15)];
 a8=[1,data(8);2,data(16)];


 
ct=datestr(now);                                                                 %以下这一大段程序是对数据进行保存的,把数据分别保存成8个文件。
tt='                                                     你开始测的时间是:  ';
tt=strcat(tt,ct);                                                                      %每个文件名都是以通道名和该时刻的时间合并的字符串作为文件名。
dt=datestr(ct,30);                               
dt=strcat(dt,'.txt');
str1=strcat('1通道_',dt);                                                     %这段代码自我感觉很好,非常具有创新精神,在此表扬一下自己,再接再励。
str2=strcat('2通道_',dt);
str3=strcat('3通道_',dt);
str4=strcat('4通道_',dt);
str5=strcat('5通道_',dt);
str6=strcat('6通道_',dt);
str7=strcat('7通道_',dt);
str8=strcat('8通道_',dt);

fid1=fopen(str1,'at+');
fprintf(fid1,'                                 你好,这是第一通道的数据\n\n');
fprintf(fid1,tt); 
fprintf(fid1,'\n\n');
fprintf(fid1,'                     %g          %1.4g\n',a1');
fclose(fid1);

fid2=fopen(str2,'at+');
fprintf(fid2,'                                 你好,这是第二通道的数据\n\n');
fprintf(fid2,tt); 
fprintf(fid2,'\n\n');
fprintf(fid2,'                     %g          %1.4g\n',a2');
fclose(fid2);

fid3=fopen(str3,'at+');
fprintf(fid3,'                                 你好,这是第三通道的数据\n\n');
fprintf(fid3,tt);
fprintf(fid3,'\n\n');
fprintf(fid3,'                     %g          %1.4g\n',a3');
fclose(fid3);

fid4=fopen(str4,'at+');
fprintf(fid4,'                                 你好,这是第四通道的数据\n\n');
fprintf(fid4,tt); 
fprintf(fid4,'\n\n');
fprintf(fid4,'                     %g          %1.4g\n',a4');
fclose(fid4);


 fid5=fopen(str5,'at+');
 fprintf(fid5,'                                 你好,这是第五通道的数据\n\n');
 fprintf(fid5,tt); 
 fprintf(fid5,'\n\n');
fprintf(fid5,'                     %g          %1.4g\n',a5');
fclose(fid5);

fid6=fopen(str6,'at+');
fprintf(fid6,'                                 你好,这是第六通道的数据\n\n');
fprintf(fid6,tt); 
fprintf(fid6,'\n\n');
fprintf(fid6,'                     %g          %1.4g\n',a6');
fclose(fid6);

fid7=fopen(str7,'at+');
fprintf(fid7,'                                 你好,这是第七通道的数据\n\n');
fprintf(fid7,tt); 
fprintf(fid7,'\n\n');
fprintf(fid7,'                     %g          %1.4g\n',a7');
fclose(fid7);

fid8=fopen(str8,'at+');
fprintf(fid8,'                       你好,这是第八通道的数据\n\n');
fprintf(fid8,tt); 
fprintf(fid8,'\n\n');
fprintf(fid8,'                     %g          %1.4g\n',a8');
fclose(fid8);


 

 
 haxes2=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes2');
 hline2=plot(1:2,a2(:,2));
 set(hline2,'markersize',10,'erasemode','none');
 axis([0 2000 0 5]);
 set(haxes2,'visible','off');
 set(hline2,'visible','off');
 hold on;
 grid on;          
      
 haxes3=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes3');
 hline3=plot(1:2,a3(:,2));
 set(hline3,'markersize',10,'erasemode','none');
 axis([0 3000 0 5]);
 set(haxes3,'visible','off');
 set(hline3,'visible','off');
 hold on;
 grid on;          
      
 haxes4=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes4');
 hline4=plot(1:2,a4(:,2));
 set(hline2,'markersize',10,'erasemode','none');
 axis([0 4000 0 5]);
 set(haxes4,'visible','off');
 set(hline4,'visible','off');
 hold on;
 grid on;          
      
 haxes5=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes5');
 hline5=plot(1:2,a5(:,2));
 set(hline5,'markersize',10,'erasemode','none');
 axis([0 5000 0 5]);
 set(haxes5,'visible','off');
 set(hline5,'visible','off');
 hold on;
 grid on;          
      
 haxes6=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes6');
 hline6=plot(1:2,a6(:,2));
 set(hline6,'markersize',10,'erasemode','none');
 axis([0 6000 0 5]);
 set(haxes6,'visible','off');
 set(hline6,'visible','off');
 hold on;
 grid on;          
      
 haxes7=axes('box','on','units','normalized','position',[0.12,0.1,0.8,0.78],'tag','haxes7');
 hline7=plot(1:2,a7(:,2));
 set(hline7,'markersize',10,'erasemode','none');
 axis([0 7000 0 5]);
 set(haxes7,'visible','off');
 set(hline7,'visible','off');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -