用MATLAB的GUIDE工具做有GUI界面的串口通信上位机.docVIP

用MATLAB的GUIDE工具做有GUI界面的串口通信上位机.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这是我很久之前写串口通信程序时编的,网上这写资料很少,我是看着MATLAB的帮助文档自己一点点写的,虽然最后放弃了matlab上位机程序的方案,但是还是整理了一下之前的一些收获,写下以下的说明。 编译环境:MATLAB 2009a ? 1 打开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,StopBits Bytes 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文

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

擅长各种类型文档 找不到的文档可私信

1亿VIP精品文档

相关文档