基于MATLAB GUI的串口通信
之前学过单片机 对于串口通信比较了解
最近在学习MATLAB 发现它还可以控制串口 于是通过MATLAB 的GUI创建了一个串口通信的小软件
效果如下
如果没有单片机或者其他硬件的话 我们可以直接用软件模拟串口 本人选择了Configure Virtual Serial Port Driver 这个软件 软件网上就有 下一个使用几天就行了
选择两个没有被占用的串口 点击Add pair 会发现左边多出了一对串口 这对串口现在已经连接在了一起 我的是COM1和COM2 现在如果往 COM1发信息 那么COM2就会接收到 之后我通过MATLAB的 uicontrol 函数搭建了 UI界面 并逐步实现了 串口通信 布局代码如下
打开串口以及接收数据 以及动态显示的代码如下
function openserial(h1,h2,h3,h4,h5,h6,h7)
global s;
baud=[600,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200,230400,460800];
v1=get(h1,'value');
v2=get(h2,'value');
m=strcat('com',num2str(v1));
if strcmp(get(gco,'string'),'打开串口')
try
s = serial(m);
fopen(s); %打开串口
set(s,'BytesAvailableFcnMode','Terminator'); %设置中断触发方式
set(s,'Terminator','H','BaudRate',baud(v2),'DataBits',7);
set(s,'BytesAvailableFcn',{@ReceiveCallback,h3,h4,h5,h6,h7});
% s.BytesAvailableFcn =@ReceiveCallback; % 定义中断响应函数对象
set(gco,'string','关闭串口');
msgbox(['打开',m,'成功']);
catch err
msgbox('打开失败');
end
else
try
fclose(s);
set(gco,'string','打开串口');
msgbox(['关闭',m,'成功']);
catch err
msgbox('关闭失败');
end
delete(s);
end
end
function ReceiveCallback(obj,event,h3,h4,h5,h6,h7) %创建中断响应函数
global s;
global a;
global recnuma;
global recstr;
global x;
global y;
global ii;
a = fscanf(s); % 接收数据并显示(无分号)
a(end)=[];
if(strcmp(get(h5,'string'),'关闭接收'))
recstr=strcat(recstr,a);
recnuma=recnuma+length(a);
end
set(h3,'string',num2str(recnuma));
set(h4,'string',recstr);
if(get(h7,'value')==1)
m=str2double(a);
x=[x ii];
y=[y m];
set(h6,'XData',x,'YData',y);
ii=ii+1;
axis([ii-100,ii+100,-100,100]);
end
end
这时就可以选择一个串口助手 发送数据 在 MATLAB中打开相应串口并使能接收 就看到数据的显示了
如果在串口中一直发送数据 同时在MATLAB中点击使能绘图 在Axes框中就会出现 每一时刻接收的 数据的图 具体效果如下
代码下载地址: https://download.csdn.net/download/qq_34020487/9992347
基于MATLAB GUI的串口通信相关推荐
- MATLAB GUI 实现串口通信,制作串口助手(教材级别的宝藏内容!!)
使用matlab写了一个串口助手如下: app 文件链接如下: https://pan.baidu.com/s/1vLNekFZCdw1GSRg7sn_JZg 链接:https://pan.baidu ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- 基于MATLAB GUI界面的串口小助手
文章目录 序 一.简介 二.步骤 1.创建一个空白GUI界面 2.拖入组件,进行搭建 3.编辑m文件 总结 序 将单片机传感器采集到的数据直接输入MATLAB进行运算分析,不仅适合仿真,在实际测试中, ...
- 【雷达通信】基于matlab GUI相控阵雷达方向图【含Matlab源码 1048期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达通信]基于matlab GUI相控阵雷达方向图[含Matlab源码 1048期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
- 【图像处理】基于matlab GUI多功能图像处理系统【含Matlab源码 1876期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理]基于matlab GUI多功能图像处理系统[含Matlab源码 1876期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 基于matlab GUI Powell+蚁群算法图像配准
基于matlab GUI Powell+蚁群算法图像配准 一.简介 1 蚁群算法(ant colony algorithm,ACA)起源和发展历程 Marco Dorigo等人在研究新型算法的过程中, ...
- 【语音去噪】基于matlab GUI切比雪夫+椭圆形低通滤波器语音去噪【含Matlab源码 2198期】
一.语音处理简介 1 语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: ①在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内.利用这个特点,可以用一个防 ...
- 【语音处理】基于matlab GUI低通滤波器语音信号加噪与去噪【含Matlab源码 1708期】
⛄一.语音处理简介(附课程作业报告) 1 语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: ①在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内.利用这 ...
- 基于MATLAB GUI图像处理系统的设计与实现
基于MATLAB GUI图像处理系统的设计与实现 摘; 要:MATLAB作为算法开发及数据可视化的交互式工具,在数字图像处理方面应用广泛,并集成了具有多种算法的图像处理工具箱.本文基于MATLAB图像 ...
最新文章
- 第二届360杯全国大学生信息安全技术大赛部分解题思路(逆向分析)
- 5g网络架构_【5G网络架构】系列之二:5G基站—gNodeB。为什么叫gNodeB?取个名而已,需要理由吗?...
- 《剑指offer》把数组排成最小的数
- [SPS2010] 使用心得 7 - ebook for Installation
- 地磅称重软件源码_电脑设备器件+塔吊主吊臂+撇渣管、丝杆+地磅称重传感器+极柱触头盒弯板+批式循环谷物干燥机+升降机标准节...
- Spring计划列表
- 项目代码matlab
- nagios 监控memcached
- mybatis mysql 自增_利用Java的MyBatis框架获取MySQL中插入记录时的自增主键
- sha256算法_以太坊2.0将弃用Keccak256,而启用SHA256哈希算法?
- java程序员到J2EE架构师
- ARM体系结构与编程学习(七)
- 配眼镜走过的那些坑。
- 银行理财子与券商合作探讨(四):券商银行理财子数字化合作蓝图
- vuepress-theme-reco自动生成侧边栏
- 沟通和编程一样,也是一门艺术系列6(艺术境界)
- Mybatis 核心知识点整理成图
- 室外AP设备的防雷接地
- 【Learning】虚树题目汇总
- HR最不喜欢的六类求职者
热门文章
- 牛客网 - [牛客OI周赛8-提高组]用水填坑(优先队列)
- 浅谈喝汽水问题————能用数学解决为什么要用递归
- 三生诀游戏服务器维护,《三生诀》7月26日更新公告
- java孙膑与庞涓_《鬼谷子的局3》—— 读后总结
- java怎么向二维数组赋值_如何给JAVA二维数组赋值
- Compiling a Compiler
- 根据身份证地址拆分省市区
- 光线步进——RayMarching入门
- wxpython查询功能_wxpython程序基本功能源码整理,包括基本文字,输入框,字体设置,按钮绑定事件触发...
- 我也 30 了,来谈谈程序员的迷茫年龄