欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【MATLAB、STM32】STM32串口数据上传MATLAB并实时显示

程序员文章站 2022-07-05 21:21:07
Author: Manba Cople专业:IOT说明:记录和输出学习内容文章目录问题MATLAB代码注意问题  最近,在做电赛题目时,需要对采集的串口数据进行实时显示,没想到强大的MATLAB中具有串口serial()函数可以单片机进行通信。因此,将本次所学分享于此。  MATLAB代码  初始化串口代码  delete(instrfindall) %清除找到的串口!!! 必须否则串口打不开clear ss = serial('COM4'); % 使用默认....

Author: Manba Cople
专业:IOT
说明:记录和输出学习内容

文章目录

问题

  最近,在做电赛题目时,需要对采集的串口数据进行实时显示,没想到强大的MATLAB中具有串口serial()函数可以单片机进行通信。因此,将本次所学分享于此。   

MATLAB代码

  
初始化串口代码
  

	delete(instrfindall)   %清除找到的串口!!! 必须否则串口打不开
	clear s
	s = serial('COM4');    % 使用默认设置创建串口s
	set(s,'BaudRate',9600);   % 设置波特率
	s.BytesAvailableFcnMode='byte';  % 字节
	s.InputBufferSize=4096;   % 输入缓存
	s.OutputBufferSize=1024;  % 输出缓存
	...

  
动态显示代码
  

for i=0:4068
    data = str2double(fgetl(s)); % 读取串口数据
    cnt=cnt+1;
    t = [t i];			     	
    value = [value data];     % m是采集数据数组
    save('data.mat','data','-ascii','-append');
    
    stem(t,value,'filled');   % 只显示点
    xlabel('t');
    ylabel('data');
    axis([i-100 i+100 0 5]);
    grid on
    drawnow;  
end
	...

注意

  再用STM32的ADC采集的数据通过串口上传时,当采集速率比串口发送速率快的情况下,串口发送回导致部分数据丢失。对于这种情况,目前我还没有找到好的解决方法,我们团队当时时放弃串口上传数据。读者有好的解决方法欢迎留言评论!   

本文地址:https://blog.csdn.net/qq_43457539/article/details/109265962