【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
上一篇: Java语言-概念-Swing容器
下一篇: 【多线程】多线程执行就一定效率更快吗?