当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 【MATLAB、STM32】STM32串口数据上传MATLAB并实时显示

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

2020年10月24日  | 移动技术网IT编程  | 我要评论
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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网