MATLAB 串口通信

MATLAB与串口通信

1.连接资源

链接:https://pan.baidu.com/s/1esJqS1Lwxu5oPokpU-gPZw
提取码:m1wt
连接有源代码和录制的视频供大家参考

2主要过程

串口发送格式
在这里插入图片描述
MATLAB图像
在这里插入图片描述
核心代码

%%
clc;
global x;                   %x坐标
global t;                   %x坐标
global ii;                   %类似于步长

%串口发送数据的个数可以在这修改
global YData1;         %串口的第一个数据
global YData2;         %串口的第二个数据
global YData3;          %串口的第二个数据

YData1=0;
YData2=0;
YData3=0;
x= [0];
ii = 0;
t = 0;

p1 = plot(x,YData1,'r','LineWidth',2.0,'EraseMode','background','MarkerSize',5);
hold on;
p2 = plot(x,YData2,'g','LineWidth',2.0,'EraseMode','background','MarkerSize',5);
hold on;
p3 = plot(x,YData3,'y','LineWidth',2.0,'EraseMode','background','MarkerSize',5);
hold on;
grid on;
%%

try
    s=serial('com4');                       %COM4
catch
    error('cant serial');
end
%波特率 数据位 停止位 校验码类型 数据流控制方式
set(s,'BaudRate', 115200,'DataBits',8,'StopBits',1,'Parity','none','FlowControl','none');
s.BytesAvailableFcnMode = 'terminator';                     %结束符类型
s.BytesAvailableFcn = {@call,p1,p2,p3};                    %字节计数回调函数
fopen(s);               %打开串口
pause;
fclose(s);              %关闭串口
%delete(s);              %从内存中删除串口信息
%clear s
close all;
%clear all;


function call(s, BytesAvailable,p1,p2,p3)
    
    global t;
    global x;
    global ii;
    global YData1;
    global YData2;
    global YData3;
    out = fscanf(s);                            %读取串口的字符
    data = str2num(out)                     %把读取到的字符转化为数字
    YData1 = [YData1 data(:,1)];        %存储第一个数据
    YData2 = [YData2 data(:,2)];        %存储第二个数据
    YData3 = [YData3 data(:,3)];        %存储第三个数据
    x = [x ii];
   set(p1, 'XData',x,'YData',YData1);
   set(p2, 'XData',x,'YData',YData2);
   set(p3, 'XData',x,'YData',YData3);
    t = t + 1;
    axis([t-100 t+200 0 10]);                   %坐标轴的范围
    ii=ii+1;
end

这篇文章主要程序框架引用了 CSDN博主「qwertyuj」的原创文章
原文链接:https://blog.csdn.net/qwertyuj/article/details/12108155
接受多个字符的思想来自于CSDN博主「 luckpl」的原创文章
https://blog.csdn.net/luckpl/article/details/52354873

主要实现了串口接受多个字符,并且能够显示图像的目的

如果有什么错误的地方欢迎大家批评指正,共同进步。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值