matlab收发数据,并实时显示波形

PORT = 'COM3';  %端口号
if exist('s', 'var')  %判断上一次打开的端口有没有关闭
    fclose(s);%关闭s
end
s = serial(PORT, 'baudrate', 115200);%设置波特率
fopen(s);%打开s
fprintf(s,'>>AutoOut=1');         % 给串口写入数据
fprintf(s,'>>Hex=0');        

pv = str2double(a);%如果输入是ascii码直接用这个,就可以获得double型变量。

总的程序

功能:接受数据,并实时显示

% PORT = '/dev/tty.wchusbserial148230';
PORT = 'COM3';
if exist('s', 'var')
    fclose(s);
end
s = serial(PORT, 'baudrate', 115200);
fopen(s);
fprintf(s,'>>AutoOut=1');         % 给串口写入数据
fprintf(s,'>>Hex=0');         % 给串口写入数据
%% try obtain points

c=1


%% load dynamic data: 1 point

w = figure;
set(w,'WindowKeyPressFcn',@KeyPressFcn);
global stop;
stop = 0;



for i = 1:c
    subplot(c,1,i);
    h(i) = animatedline;
    ax(i) = gca;
    ax(i).YGrid = 'on';
%     ax(i).YLim = [0 3.3];
end

% ax(1).YLim = [500 1500];
% ax(2).YLim = [0 10];
% ax(3).YLim = [0 10];
 
startTime = datetime('now');
t = startTime;

while 1
    
    if stop == 1
        break;
    end
    
    % Get cufrrent time
    t =  datetime('now') - startTime;    
%     t = t + 1e-6;
    
    v = fscanf(s);
    if isempty(v)
        continue;
    end
    [n1, n2]=size(v);
    if n2 ~= 14
        continue;
    end
    disp(v);
    % Add points to animation
    a=v(1:8);
    pv = str2double(a);
    if v(10)~='m'
        pv=pv*0.001;
    end
    addpoints(h(i),datenum(t),pv);
    ax.XLim = datenum([t-seconds(50) t]);
    datetick('x','keeplimits');
    drawnow


end


#2022字节跳动-视频架构职位校招提前批#

2022年毕业的同学们,大家期待的校招提前批开始啦,我们支持抖音、TikTok、今日头条、Faceu等多个APP,多种研发岗位机会任你挑选,快来投递吧~

【内推码】:HMWZ1JC

【岗位类型】:前端/后端/客户端/大数据/多媒体/算法等
投递链接: https://jobs.toutiao.com/s/egw8WHg

投递链接: https://jobs.toutiao.com/s/egwj8R6

【邮箱】dss875914213@163.com

还有其他岗位,如果想咨询面试流程、投递进度,欢迎随时沟通

  • 6
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值