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

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采集的数据通过串口上传时,当采集速率比串口发送速率快的情况下,串口发送回导致部分数据丢失。对于这种情况,目前我还没有找到好的解决方法,我们团队当时时放弃串口上传数据。读者有好的解决方法欢迎留言评论!   
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值