问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB串口接收数据+动态绘图

创作时间:
作者:
@小白创作中心

MATLAB串口接收数据+动态绘图

引用
CSDN
1.
https://blog.csdn.net/qq_23565735/article/details/115187767

本文将介绍如何使用MATLAB实现串口数据接收并进行动态绘图。通过具体的代码示例,展示如何设置串口参数、接收数据以及实时绘制数据曲线。

最近在做一个matlab接收串口数据绘图的项目,顺便测试了一下matlab打开串口波特率的极限,先上代码

delete(instrfindall);
%新建串口对象
s1=serial('COM1','BaudRate',2000000); %设置串口波特率
s1.BytesAvailableFcnMode = 'byte';%指定的字节数可用时,会发生字节可用事件
s1.InputBufferSize = 8000;        %输入缓冲区长度8000字节
s1.BytesAvailableFcnCount=8000;    %接收8000个字节触发一次
%尝试代开串口
try
  fopen(s1);                       %打开串口对象
catch err
  fclose(instrfind);               %关闭被占用的串口
  error('请确认选择了正确的串口');   %输出错误提示
end
while 1
    y = fread(s1);
    stem(y,'.');                   %数据点画竖线,不连线, . 代表竖线上方的标记
    %plot(y);                      %数据点之间连线
    drawnow
end
fclose(s1);  %关闭串口  

动态绘图的效果如下

刷新的帧率还可以,具体多少帧没办法测,跟数据接收的速度以及数据的长度有密切关系,我用的CP2104,波特率设置为2Mbps,看起来有10多帧的样子,重复发送0,2,4.。。。254,画出来的图就这样,MATLAB居然没卡死,就是CPU占用有点高

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号