已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这是我很久之前写串口通信程序时编的,网上这写资料很少,我是看着MATLAB的帮助文档自己一点点写的,虽然最后放弃了matlab上位机程序的方案,但是还是整理了一下之前的一些收获,写下以下的说明。编译环境:MATLAB 2009a1 打开GUIDE工具,点击红圈中的GUIDE图标。 2 直接利用默认设置点OK即可 3 在控件篮拖拽控件到如下图的形式 4 进行控件设置,右击控件点“Property Inspector”,如图 一般仅设置Tag选项和String选项。其中String选项在按钮控件中就是GUI显示时的字符。Tag属性较为重要,在GUI编程时控件的索引主要利用Tag选项的属性并且在GUI生成回调函数时候也是由Tag属性的值命名的。这里将“打开串口”按钮控件的String设置为“打开串口”,tag设置为pb_OpenSerialPort。 具体控件的设置和关于GUI的编程还是看下帮助(截图部分)或找本这方面的书看一下。 这里对我即将用的功能简述一下,MALTAB的GUI主要由两个文件,当设置好GUIDE时点击保存,这时将在当前路径自动产生两个名字相同的文件,但扩展标识符不同,一个为.fig文件,一个为.m文件,.fig主要是GUI图形文件,和GUIDE设计的图像相同,.m文件为程序文件,所有事件响应和计算功能都在这里实现。MATLAB的按钮以及各种控件事件响应是依靠一种叫做回调函数(Callback Function)来实现的(我理解为和Visual C+中的消息映射,C#中的异步委托事件响应一种原理),自动生成的M文件中已经自动做好回调函数的名称和参数了,我们需要做的就是在其中添加你要进行的处理。例如:我们要在鼠标单击按钮“打开串口”时进行一系列的串口初始化动作,这时右键单击“打开串口按钮”如图 则MALAB会自动转向相应的M文件的回调函数的位置。如图这里,因为该按钮的Tag为pb_OpenSerialPort,则GUIDE自动生成的回调函数名即为pb_OpenSerialPort_Callback,函数有三个参数, hObject是当前控件对象,即打开串口按钮对象(面向对象技术中的概念),索引或设置当前对象(打开串口按钮对象)时只需要引用hObject就可以了。例如:改变当前空间的可见性,只需调用 set(hObject,Visable,off);打开串口对象在单击该按钮时即会隐藏。 eventdata我暂时没有用到,所以暂且不管他 handles我理解是整个GUI界面的索引句柄,所有GUI界面上的控件都可以通过他来索引,几乎有全局作用域,例如在打开串口按钮的回调中要将关闭串口按钮显示出来,可以这样调用 set(handles.pb_CloseSerialPort,Visable,on);就可以了! 这里handles还有一个作用就是在不同控件间进行参数传递,只要对handle的成员变量进行赋值就可以了。当然后面要调用一下guidata(hObject, handles);将变量保存。例如打开串口按钮里面有个数据10需要关闭串口按钮调用可以这样写。 %打开串口按钮回调函数中 handles.double_vir=10; guidata(hObject, handles); %关闭串口按钮回调函数中a=handles.double_vir;5 进行串口设置,参看如下图中的MATLAB帮助 串口初始化(主要在打开串口按钮的回调函数中),包括COM端口,BaudRate,DataBits,StopBitsBytes available事件设置,主要触发串口响应Bytes available事件的条件。BytesAvailableFcn Specify the M-file callback function to execute when a specified number of bytes is available in the input buffer, or a terminator is read,即指定当一个确定数量的字节数据(由BytesAvailableFcnCount属性设置)存在输入缓冲区时或一个结束符被读到时执行的m文件的回调函数。BytesAvailableFcnCountSpecify the number of bytes that must be available in the input buffer to generate a bytes-available event.指定产生bytes-available事件串口输入缓冲区必须存在的字节数。BytesAvailableFcnMode Specify if the bytes-available event is generated after a specified number of bytes is available in the input buffer, or after a terminator is read。指定是由串口输入缓冲区指定数量的字节数产生bytes-available事件还是由读到结束符产生bytes-available事件。(本文选择byte)串口初始化代码:%COM端口初始化o_SerialPort=serial(string_Select_COM);set(o_SerialPort,BaudRate,double_Baud);%Baud初始化set(o_SerialPort,DataBits,double_DataBit);%设置数据长度set(o_SerialPort,StopBits,double_StopBits);%设置停止位长度set(o_SerialPort,InputBufferSize,1024000);%设置输入缓冲区大小为1M%串口事件回调设置 o_SerialPort.BytesAvailableFcnMode=byte; o_SerialPort.BytesAvailableFcnCount=10;%输入缓冲区存在10个字节触发回调函数 o_SerialPort.BytesAvailableFcn=EveBytesAvailableFcn,handles;%回调函数的指定fopen(o_SerialPort);%打开串口%这时在M文件中添加回调函数function EveBytesAvailableFcn( t,event,handles )fread(o_SerialPort,10)% 在串口输入缓冲区中读取十个字节%其他数据处理及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准化项目进度监控与报告模板
- 班级里的特殊人物描写5篇
- 需求调研与分析工具箱
- 小白兔的奇遇记童话故事展现想象世界4篇范文
- 销售合同管理模板与风险控制措施
- 社会稳定责任之安全承诺书4篇
- 我身边的英雄人物故事写人作文12篇
- 网购个人信用承诺函7篇范文
- 财务成本控制预算编制范例
- 团队激励与绩效评估标准化手册
- 2025年年国产AI芯片和高性能处理器厂商排名和行业趋势报告
- 2025年及未来5年中国烘焙花生行业市场调研分析及投资战略咨询报告
- 船舶现场应急预案
- 2025年森林防火考试题目及答案
- 正大杯第十二届全国大学生市场调研与分析大赛题库和答案
- 医务人员进修工作汇报
- 装修安全培训试题及答案解析
- 2025至2030中国医用雾化器行业市场发展分析及竞争格局与风险对策报告
- 统编版2025-2026学年语文六年级上册期中阶段培优情境卷试题(有答案)
- 抗美援朝课件图文
- 2025年全国新闻记者职业资格考试(新闻采编实务)全真模拟试题及答案
评论
0/150
提交评论