26135|36

654

帖子

26

TA的资源

版主

楼主
 

MATLAB APP Designer串口调试工具编写 [复制链接]

 
本帖最后由 lb8820265 于 2019-5-9 23:11 编辑

       前面介绍过使用VC6制作串口调试工具的两种方式:SerialPort类串口mscomm控件串口
这次介绍使用MATLAT制作串口上位机,为何想用MATLAB,因为MATLAB除了不会生孩子,其他的都会,同时MATLAB也是算法研发者的最爱。
        MATLAB在2016版本中加入了APPDesigner模块,可以理解为是一个界面设计模块。在matlab中一直有一个界面设计模块叫做GUIDE,设计出来的界面就像VC6设计的,APP Designer就比较像VS设计出来的。APP Designer的界面跟漂亮,控件元素更多。
网上可以搜到很多基于GUIDE的串口代码,却少有APPDesigner设计的。今天就来一步一步展示如何设计出一个串口调试工具。
       学习MATLAB最好的方法就是查看帮助,在帮助手册中搜索APP Designer就可以,界面如下:
      将帮助看完,会对APP Designer有一个比较全面的了解,让我们开始。
打开APP Designer
      打开MATLAB-->新建-->APP-->App设计工具,如下:

编辑界面                     打开的界面如下:
      页面的功能区很明显,拖入如上图所示的控件,并修改控件的ID,
      其中下拉菜单添加如下图所示的端口标志。
       其他控件的设置详见源码。
添加属性—全局变量
        界面切换到代码视图-->编辑器-->属性-->公有属性,系统自带添加properties代码。
        在中间添加如下代码:
添加私有函数—“接收”回调函数
        界面切换到代码视图-->编辑器-->函数-->公有属性,系统自带添加代码。
        在中间添加如下代码:
        该代码的作用是接收的回调函数。
启动初始化函数
        启动初始化函数的作用是在程序运行前先运行的一段代码,在设计界面右击-->回调-->添加StartupFcn回调, 如下:
        系统添加startupFcn函数,添加如下代码:
        代码主要是用来设置变量的初始值,确保串口已经释放。
“打开串口”回调
        切换到设计视图,在“打开串口”按钮上右击-->回调-->添加回调函数,
系统自动添加回调函数。
      添加如下所示代码:
      代码主要是设置串口参数,串口接收回调函数,UI显示。
“发送”回调
      在发送按钮上同样添加回调函数如下:
     代码主要作用是将发送编辑框中的内容发送出去。
演示
     用VSPD虚拟两个相连的串口,然后使用另一个串口软件,设置波特率115200。运行APP Designer上的绿色的箭头。然后选择串口,点击“打开串口”灯变绿色。然后相互发送数据如下:
      源码见附件。(源码需要在APP Designer中打开,新建-->APP-->App设计工具-->打开)

app2.mlapp

24.25 KB, 下载次数: 805

最新回复

太感谢了 改了好几天代码都跑不通 这个很顺   详情 回复 发表于 2024-2-27 16:10

赞赏

3

查看全部赞赏

点赞(8) 关注(4)
个人签名QQ:252669569
 

回复
举报

7452

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 
高级了!
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

1204

帖子

1

TA的资源

纯净的硅(初级)

板凳
 
好东西!
 
 
 

回复

46

帖子

0

TA的资源

一粒金砂(中级)

4
 
 
 

回复

256

帖子

0

TA的资源

一粒金砂(高级)

5
 
真不知道matlab还能干这事,最后这个能在windows下独立运行吗;像.exe程序那样?

点评

可以的,MATLAB可以打包成包含库文件的exe和不包含库文件的exe.  详情 回复 发表于 2019-5-10 21:22
 
 
 

回复

244

帖子

0

TA的资源

一粒金砂(中级)

6
 
厉害
 
 
 

回复

654

帖子

26

TA的资源

版主

7
 
viphotman 发表于 2019-5-10 10:03
真不知道matlab还能干这事,最后这个能在windows下独立运行吗;像.exe程序那样?

可以的,MATLAB可以打包成包含库文件的exe和不包含库文件的exe.
个人签名QQ:252669569
 
 
 

回复

693

帖子

7

TA的资源

版主

8
 
厉害了,MATLAB
 
 
 

回复

403

帖子

6

TA的资源

纯净的硅(中级)

9
 
有意思,原来MATLAB还有这样的功能,实在太强大了,咱也跟着学下
个人签名如果天空是黑暗的,那就摸黑生存;如果发出声音是危险的,那就保持沉默...但不要习惯了黑暗就为黑暗辩护;不要为自己的苟且而得意;不要嘲讽那些比自己更勇敢热情的人们。人可以卑微如尘土,不可扭曲如蛆虫。
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

10
 

你好,我对你的代码进行了调试,发现有一点不明白的地方,希望你能指点我一下。 

具体的是:接收的回调函数里, function  EveBytesAvailableFcn(app, src, event),代码中第40行。   这一句中,src和event是什么意思?不是很明白。

点评

这个是matlab的自定义回调函数用法,我在回调函数指定的时候前面用了一个@,这就代表了这个函数会有opj和event,opj相当于句柄,event具体是什么我也不知道,一般也没用过,APP是APP designer特有的guide没有,相当  详情 回复 发表于 2019-6-27 22:36
 
 
 

回复

654

帖子

26

TA的资源

版主

11
 
寒风吹彻 发表于 2019-6-24 18:31 你好,我对你的代码进行了调试,发现有一点不明白的地方,希望你能指点我一下。  具体的是:接收的 ...

这个是matlab的自定义回调函数用法,我在回调函数指定的时候前面用了一个@,这就代表了这个函数会有opj和event,opj相当于句柄,event具体是什么我也不知道,一般也没用过,APP是APP designer特有的guide没有,相当于C++里面的this。

个人签名QQ:252669569
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 

为什么我下载了你的代码,但用APP designer打不开啊

点评

看看错误提示,是不是版本太低了  详情 回复 发表于 2019-7-10 22:59
 
 
 

回复

654

帖子

26

TA的资源

版主

13
 
fashoon 发表于 2019-7-10 19:55 为什么我下载了你的代码,但用APP designer打不开啊

看看错误提示,是不是版本太低了

个人签名QQ:252669569
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(高级)

14
 

倍棒!正想学习一下这个。

个人签名一直被模仿,从未被超越
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
警告: 当 'AutoResizeChildren' 设置为 'on' 时,'SizeChangedFcn' 回调将不会执行。   请问大神。这个警告是咋回事啊?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 
楼主给力呀,赞一个!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 

感谢楼主,课设正好拿来做上位机

 
 
 

回复

310

帖子

5

TA的资源

一粒金砂(中级)

18
 

感谢楼主,一直用QT写上位机,没想到matlab做的也不错

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 

大佬好,串口发送和接收都识别不了回车和换行,这个应该怎么解决啊

点评

我试了下,回车和换行都是可以发送的呀,他们分别是‘0C’,'0A’,这些都是可以接收和发送的,你不能看接收栏文本框的内容,你要看接收字符串的字符串数组,或者你让现实16进制不显示字符串也能  详情 回复 发表于 2020-8-16 16:56
 
 
 

回复

654

帖子

26

TA的资源

版主

20
 
幼稚园生 发表于 2020-8-14 13:35 大佬好,串口发送和接收都识别不了回车和换行,这个应该怎么解决啊

我试了下,回车和换行都是可以发送的呀,他们分别是‘0C’,'0A’,这些都是可以接收和发送的,你不能看接收栏文本框的内容,你要看接收字符串的字符串数组,或者你让现实16进制不显示字符串也能看到。

个人签名QQ:252669569
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表