【MATLAB、STM32】STM32串口数据上传MATLAB并实时显示
- 作者: 灯光没O耀眼
- 来源: 51数据库
- 2021-07-28
Author: Manba Cople
专业:IOT
说明:记录和输出学习内容
文章目录
- 问题
- MATLAB代码
- 注意
问题
??最近,在做电赛题目时,需要对采集的串口数据进行实时显示,没想到强大的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采集的数据通过串口上传时,当采集速率比串口发送速率快的情况下,串口发送回导致部分数据丢失。对于这种情况,目前我还没有找到好的解决方法,我们团队当时时放弃串口上传数据。读者有好的解决方法欢迎留言评论! ??推荐阅读
