本人因项目需求,需要开发这个串口通信上位机界面,用于实时绘制串口发送过来的数据。本人之前基本没使用过MATLAB,也就知道个zeros(100)这种在命令行窗口中输入的函数。至于MATLAB能开发图形界面程序,我也是在接到这个项目后才知道的,emmm,我被我的无知吓到了。好了,这就是我开发这个上位机软件的背景和我本人的MATLAB技术水平(渣渣)。在不到两天的时间内开发完成,通过了调试。下面记录一下我这个开发的历程和一些细节。

MATLAB上位机软件怎么开发?

不要见笑,我一个MATLAB小白真不知道怎么开发,更不知道GUIDE这种东东。

所以,MATLAB上位机软件就是从GUIDE开始的。

GUIDE在哪里?

你可以通过两个方式找到他:

1)命令行窗口:guide(回车就见到他了)

2)MATLAB界面 -> 新建 -> 图形用户界面 (点击也能看到他)

如何开发?

有开发经验的就绕道了哦,我这是第一次用MATLAB开发,所以比较“啰嗦”

看到这个问题,没有开发经验的小白们,是不是第一就想到了“百度一下,你就知道”,我呢,就不推荐这个了,我推荐用MATLAB的帮助文档。这个帮助文档可以在MATLAB主界面中工具栏右侧的“帮助”选项中找到。P.S. 帮助文档是学习软件的第一手资料!!!英文看不懂的就只能百度了

在调出“帮助浏览器”后,在搜索栏输入“guide”在搜索的内容点击第一个“guide-Open GUIDE”,进入后,下面有个“More About”,里面有个“Create a Simple UI Using GUIDE”,点进去,然后按照里面官方的指导,学一下如何建立一个上位机软件。

实现后,仔细体验一下里面的回调函数(类似于Qt里面的槽函数)。

我是如何开发的呢?

建立一个空白的区域后,就要开始构思自己需要哪些控件了,如图是我的控件添加情况:

经过官方教程的学习,详细你已经有能力往下拉菜单中添加COM口信息了,我添加到了COM21。

这里一定要自己定义Tag标签,如下图,其他按钮的Tag我就不展示了。

现在在下拉菜单上右键,选择“Callback” 如图:

里面的执行函数我已经写好了,不过在最后一定要加上一个语句,否则选定的COM端口不会被保存的

​ guidata(hObject, handles);% 保存配置

打开串口的按钮回调程序是这样的,同样的下面的语句是必不可少的,否则配置的串口信息都会丢失的

​ guidata(hObject, handles);% 保存配置

里面关于串口的配置信息,可以打开帮助浏览器,搜索“serial” 或者“Serial Port Devices”你会发现一个新世界,当然配合百度你会学的更快

关闭串口的回调程序,按照套路很好编出来的。

串口开发(敲黑板,划重点)

主要就是串口接收数据的函数,因为串口发送的数据为8位(串口决定的),而我的采集数据为16位保存的,所以,在发送时一定要将16位的数据分割一下。举个例子,一个16位的振动数据本来是占一个坑,将此16位数据分成高8位和低8位保存后,每个8位占一个坑,现在一个振动数据就占了两个坑。通过串口发送要发送两次才能发送出去一个完整的振动数据,因此在MATLAB接收端应该设计一个算法,将接收的两个8位的振动数据重新合并为原来的一个16位的振动数据。这就是一个简单的通信协议开发。在MATLAB端合并数据一定要注意,传过来的数据是8位的,但MATLAB默认的变量为double型的,所以,这里要对接受串口数据的变量做强制转换,然后在做相应的移位处理。才行。如下图所示:

最后结果

matlab上位机串口通信,MATLAB GUIDE 上位机串口通信开发 绘制图形相关推荐

  1. Qt串口通信实时曲线上位机源代码

    Qt串口通信实时曲线上位机源代码 带用户配置保存 数据保存带有坐标轴缩放 拖动平移放大等功能,提供,提供源代码,注释,软件文档使用说明,可进行二次开发 通过定时发送获取数据,并将接收的数据采用Qt自带 ...

  2. 485通信原理_上位机开发之单片机通信实践

    经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的.PLC的本质就是单片机,在 ...

  3. 485通信原理_上位机开发之单片机通信实践(一)

    微信号 :thinger_swj微博:@新阁程序园扫码关注 经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是 ...

  4. ”WinForm上位机+OV7670摄像头+STM32+蓝牙“图像采集系统(二)PC-MCU蓝牙通信及WinForm上位机开发

    上篇Blog谈了一下stm32驱动ov7670进行图像采集,这一篇谈一下后续的几个步骤: 1.图像处理 因为对图像质量要求不高,而且串口蓝牙通信速度局限于波特率.所以决定只传输灰度图像,简单地用了RG ...

  5. HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

    ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生. ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的stm32与st ...

  6. 【单片机学习笔记】(28):图形用户界面(GUI),串口通信协议与匿名上位机,获取MPU6050欧拉角,H桥电路、制作风力摆(空心杯电机、TB6612)

    Graphical User Interface(GUI) (OLED)使用图形用户界面 简易菜单 菜单和各种显示都放到main.c里面,要显示的数据经过字符转化之后放到buff里面再 调用显示 . ...

  7. 串口服务器支持多台上位机,RS485多机通信一台上位机两台下位机问题,

    RS485一主机两个下位机,上位机通过发送下位机地址查询下位机两个按钮的状态,仿真时同时在P1口和P2口显示按钮状态 一.原理图 (原文件名:1.jpg) 二.程序 1.上位机程序 #include ...

  8. 信捷plc485通信上位机_基于Snap7实现与西门子PLC通信

    如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻. Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广.但也许是因为资料比较少,而且很多 ...

  9. proteus中使用虚拟串口实现单片机和上位机通讯

    祝大家身体健康哈,肺炎愈来愈多,希望看到这篇文章的旁友都能健健康康! 今天写一下proteus里如何使用虚拟串口仿真单片机和上位机通讯,所需要的软件有:(1)Virtual Serial Port D ...

最新文章

  1. linux发行版的用户交互
  2. oracle视图能用etl工具_(转)使用kettle作为sqlserver2008和oracle10G之间的ETL工具
  3. 用 Go 开发 Go 编译器
  4. centos下apache源码编译安装
  5. hdu 5424(dfs搜索)
  6. Html中的各种高度宽度
  7. redis抽奖并发_Redis优化高并发下的秒杀性能
  8. 使用pip install出现超时警告的解决方法
  9. python处理文件错行_打印当前python文件错误行
  10. ORACLE会话以及SQL执行信息查询
  11. P4495-[HAOI2018]奇怪的背包【数论,dp】
  12. 用Python的Tultle模块创建一个五角星
  13. Ubuntu下安装和配置Apache及Apache2
  14. 读书笔记--《MicroPython入门指南》
  15. mysql实现行转列功能
  16. iOS中Storyboard使用要点记录
  17. Eclipse用SVN上传新项目
  18. PID参数自整定库之一:继电反馈整定算法
  19. android apr分析,APR分析-内存篇
  20. mysql局域网访问6_mysql局域网访问

热门文章

  1. 注册oracle驱动,注册设备 ID - 编写适用于 Oracle® Solaris 11.2 的设备驱动程序
  2. 利用循环神经网络生成唐诗_11种主要神经网络结构图解
  3. 频谱仪使用方法图解_地暖分水器原理及使用方法介绍,图解
  4. GCC和MSVC的INITIALIZER的实现
  5. mysql 备份大表 存储过程_mysql批量备份表的存储过程写法
  6. java图像识别算法_图像算法原理与实践——绪论
  7. dmp导入数据 oracle_DM数据库的安装使用
  8. 共享X轴,分成上下两图
  9. 服务器保存excel文件慢,从使用IE的服务器缓慢地保存Excel文件
  10. mysql跨库查询 索引_MySQL中跨库查询怎么搞?