基于MATLAB GUI的串口通信

基于MATLAB GUI的串口通信之前学过单片机对于串口通信比较了解最近在学习MATLAB发现它还可以控制串口于是通过MATLAB的GUI创建了一个串口通信的小软件效果如下如果没有单片机或者其他硬件的话我们可以直接用软件模拟串口本人选择了ConfigureVirtualSerialPortDriver这个软件软件网上就有下一个使用几天就行了 选…

大家好,又见面了,我是你们的朋友全栈君。

之前学过单片机 对于串口通信比较了解 

最近在学习MATLAB   发现它还可以控制串口   于是通过MATLAB 的GUI创建了一个串口通信的小软件

效果如下 

 

基于MATLAB GUI的串口通信

 

如果没有单片机或者其他硬件的话 我们可以直接用软件模拟串口  本人选择了Configure Virtual Serial Port Driver  这个软件   软件网上就有  下一个使用几天就行了  

 

选择两个没有被占用的串口  点击Add pair 会发现左边多出了一对串口  这对串口现在已经连接在了一起    我的是COM1和COM2    现在如果往    COM1发信息 那么COM2就会接收到  之后我通过MATLAB的  uicontrol 函数搭建了  UI界面 并逐步实现了 串口通信 布局代码如下

基于MATLAB GUI的串口通信

 

 

 

 

 

 

 

 

 

打开串口以及接收数据  以及动态显示的代码如下

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 GUI的串口通信

 

如果在串口中一直发送数据  同时在MATLAB中点击使能绘图 在Axes框中就会出现  每一时刻接收的  数据的图   具体效果如下

 

基于MATLAB GUI的串口通信

代码下载地址: https://download.csdn.net/download/qq_34020487/9992347

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131334.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Pycharm虚拟环境解析

    Pycharm虚拟环境解析什么是Pycharm中的虚拟环境 假如想要在Pycharm中建立两个项目,并且这两个项目需要用到同一个第三方库的不同版本,如果这两个项目共享一个运行环境,那么此时就会发生版本冲突问题。为了解决这个问题,Pycharm提供了Virtualenv(即,虚拟环境)。Virtualenv可以创建一套独立运行的Python环境,从而做到不同项目之间的隔离。当需要安装该环境所需要的包时,在设置—项目—…

    2022年10月30日
  • 转:在线检测网页错误工具

    转:在线检测网页错误工具

  • 外汇区块链内容平台_组建外汇交易工作室

    外汇区块链内容平台_组建外汇交易工作室在过去几年中,由区块链驱动的比特币对全球财务,特别是外汇行业产生了重大影响。这种创新的加密货币在全球范围内大肆挥霍,并成为头条新闻,很快就能感受到它的存在。虽然比特币很可能继续对外汇行业产生影响,但它实际上是锁定链,这种货币背后的技术,将对外汇行业产生更显着和不可逆转的影响。外汇产业的当前景观外汇市场是全球最大,最具流动性的市场。该行业每周五天,每天24小时开放,主要位于伦敦,而纽约市的每日营…

  • JMeter下载安装及入门教程

    JMeter下载安装及入门教程目录JMeter介绍准备工作JMeter下载及环境配置下载环境配置JMeter中遇到的乱码问题JMeter介绍(参考:http://www.importnew.com/13876.html)JMeter使用了不同技术和协议,是一款可以进行配置和执行负载测试、性能测试和压力测试的工具。负载测试、性能测试和压力测试概念: 负载测试:这类测试使系统或者应用程序在…

  • 怎么关闭磁盘共享(电脑如何关闭默认共享)

         Windows2000/XP/2003版本的操作系统提供了默认共享功能,这些默认的共享都有“$”标志,意为隐含的,包括所有的逻辑盘(C$,D$,E$……)和系统目录Winnt或Windows(admin$)。   带来的问题:   微软的初衷是便于网管进行远程管理,这虽然方便了局域网用户,但对我们个人用户来说这样的设置是不安全的。如果电脑联网,网络上

  • PostgreSQL常用语句

    PostgreSQL常用语句

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号