基于APP Designer 实现串口数据监测功能App总结(2)——app设计
本文具体介绍app设计的过程,该app接收的数据格式是16位整形数,分byte以字符方式打印。打印U16变量var,打印格式为
printf("%c%c\n",U8(var>>8),U8(var));
app设计如下
文章目录
- 1. 选择串口
- 2. 选择波特率
- 3. 串口状态控制
1. 选择串口
使用下拉框控件
也可以选中控件后,通过右下角的属性修改。这里我们修改一下控件的name “DropDown”,修改为“COM”
这里可以添加多个串口,如“COM2,COM3…… ”,也可以通过读取电脑识别到的串口,赋值给app.COM.Items
tryfclose(instrfind);catch end Ports = instrhwinfo('serial'); app.COM.Items=flipud(Ports.SerialPorts);%COM1一般为电脑自己的串口,这里把串口数从大到小排列赋值给COM
该段代码我们我们在启动函数startupFcn()中实现
startupFcn函数内可以添加其他初始化操作,当然你也可以把这些初始化封装起来。如下定义 函数COMInitialFun(),并在startupFcn()中调用
2. 选择波特率
操作类似 选择串口同样使用下拉框控件,这里勾选了“允许用户键入文本”,防止可选波特率无法覆盖实际需求
3. 串口状态控制
先在app属性中添加名为“SERIAL”的串口对象
选用Button控件进行串口状态控制,将控件名改为“SerialSts”和标签修改为“Open”;选用TextArea控件监控串口状态,将控件名改为“SampleSts”
右键Open 控件或者在右下的属性里增加回调函数SerialStsButtonPushed() 回调函数SerialStsButtonPushed(app)
try fclose(instrfind);
catch
end
if strcmp(app.SerialSts.Text,'Close') try fclose(app.SERIAL); app.SerialSts.Text='Open'; app.SampleSts.Value=[app.SampleSts.Value(2:end);['关闭',app.COM.Value,'成功']]; catch app.SampleSts.Value=[app.SampleSts.Value(2:end);['关闭',app.COM.Value,'失败']];app.SerialSts.Text='Close'; end delete(app.SERIAL);
else try app.SERIAL=serial(app.COM.Value,'baudrate',str2num(app.Baud.Value)); app.SERIAL.BytesAvailableFcnCount = 3; set(app.SERIAL,'BytesAvailableFcnMode','byte'); %设置中断触发方式terminator set(app.SERIAL,'BytesAvailableFcn',{@app.ReceiveSerial}); fopen(app.SERIAL); %打开串口 app.SerialSts.Text='Close'; app.SampleSts.Value=[app.SampleSts.Value(2:end);['打开',app.COM.Value,'成功']]; catch app.SampleSts.Value=[app.SampleSts.Value(2:end);['打开',app.COM.Value,'失败']]; app.SerialSts.Text='Open'; fclose(app.SERIAL); delete(app.SERIAL); end end
定义串口中断函数ReceiveSerial,其中中断函数需要添加形参src和event
function ReceiveSerial(app,src,event)data = fread(app.SERIAL,3); if data(3) == 10 %10——换行符对应的ASICII码 dataPrint = data(1)*256+data(2); app.SampleSts.Value=[app.SampleSts.Value(2:end);num2str(dataPrint )]; else app.WaitCount=app.WaitCount+1; app.WaitCount=mod(app.WaitCount,100); app.SampleSts.Value=[app.SampleSts.Value(2:end);['Waiting',num2str(app.WaitCount)]]; pause(1); end
end
这里我们给app.SampleSts.Value进行初始化并在启动函数中调用,定义打印数据的长度,同时新增等待计数变量WaitCount,在初始化函数中初始化,
app.SampleSts.Value={'';'';'';'';'Initial'};
app.WaitCount=0;
源码在我的上传资源中SerialApp.mlapp
基于APP Designer 实现串口数据监测功能App总结(2)——app设计相关推荐
- 基于APP Designer 实现串口数据监测功能App总结(1)——函数间变量传递
文章目录 1.全局变量类型 global: 2.作为app的属性传递: 3.setappdata函数为句柄添加数据: 4.跨空间计算evalin和赋值assignin: 5. 将数据保存到文件,需要时 ...
- ionic3实现app启动时进行网络监测功能
需要联网的app一般都需要进行网络监测,尤其是在app启动时,若未发现网络连接应给出提示,本文在参照官网的基础上实现了app启动进行网络监测,实现该功能其实非常简单,只需用到cordova的一个插件- ...
- STM32G070RBT6基于Arduino框架下串口数据接收使用示例
STM32G070RBT6基于Arduino框架下串口数据接收使用示例 相关篇<STM32G070RBT6基于Arduino串口的使用>
- 基于MATLAB App Designer的串口RS485 Modbus上位机
1. 前言 上学那会儿MATLAB还没有App Designer,记得当时开发了一个基于MATLAB的计算器.最近,由于项目需要一个简单的上位机做监控,结合自身实际,拟定了以下三种方案: PyQt5: ...
- iOS APP中嵌入网速监测功能
企鹅的手机管家.一些网页都提供了网速监测功能.在开发过程中我们偶尔也需要开发这个模块,以提示用户网速的状况,增强用户体验. 常见的网络测速方案 通过调研发现,目前常见的网络测速方案只有两种: 方案1: ...
- <UART 波形分析><1>基于RIGOL_DS1202ZE示波器分析串口数据
目录 <任务内容> <实现硬件&测量平台> 实现原理 <数据结果> 第一帧数据 第二帧数据 第三帧数据 第四帧数据 <波特率计算> 算法一 算法 ...
- 我想使用Simulink模型模拟期间生成的数据更新我在App Designer中设计的GUI。换句话说,如何从App Designer访问Simulink模型的运行时参数?
1.将使用的Simulink模型命名为"Trial.slx",将使用的App Designer应用命名为"TrialApp.mlapp".从App Design ...
- qt做的接收串口数据并显示曲线_QT无人机地面站设计与制作
近年来,无人机可谓是大火.无论是军事,还是民用,它的地位更是不用说.但,如何利用利用现有技术对无人机的信息进行操作,实现人.机合一呢?"无人机地面站"应运而生,结合仿真系统为地面工 ...
- 基于MATLAB中APP Designer的采样定理的可视化
采样定理的可视化 一.APP Designer 介绍 二. 时域抽样定理可视化界面搭建 2.1 时域抽样定理原理 2.2核心代码实现 2.3界面设计与操作 全部代码:https://download. ...
最新文章
- POJ-1041 John's trip
- 乱思。。。。。。。、、、、、
- 使用java spring开发ckeditor的文件上传功能(转)
- Struts2.xml
- uniny 物体运动到一个点停止_Unity3D中的逐点运动
- chrom禁用浏览器回退按钮不管用_什么?作为程序员你都工作了还不会用Git
- Math.random()获取随机数
- 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
- javascript的Foreach语法
- 60-400-045-使用-binlog-Maxwell读取MySQL binlog日志到Kafka
- java小数换成字符实现加法_第一、二次笔记总结
- Component creation must be done on Event Dispatch Thread错误解决方法
- jsp中文乱码现象解决办法
- TextCNN文本分类实践
- c语言人民日报排版的代码,人民日报都在玩的排版黑科技,教你1分钟上手!
- python判断手机号运营商_如何判断手机号的运营商那?
- mysql alter index rebuild_Oracle alter index rebuild 说明
- 地磁基本知识(二)地磁异常
- 沈航计算机考研专业课,2018年沈阳航空航天大学计算机学院811操作系统之计算机操作系统考研基础五套测试题...
- jQuery中的end()方法