回答

收藏

【STM32F746试用】跟着小狂玩F7之快速设计GUI

#其他 #其他 2873 人阅读 | 0 人回复 | 2016-09-26

书接上回,我们继续玩耍stemwin,做过上位机的都知道,要想实现更炫酷的的GUI就应该支持更多的控件,要想实现快速开发就应该用拖拽的方式来,预览的形式来,再加上绚丽的皮肤设置,哈哈,就完美了。今天呢小狂就带着大家来实现F7中的快速GUI设计。
今天帖子要讲的内容分为以下两个部分
1、移植触摸控制程序
2、利用GUIBuilder实现快速的GUI设计
接下来我们就按照流程一点点听小狂慢慢道来,首先我们要做的是移植触摸程序,emwin是支持相应的触摸,joystick,以及PS2鼠标。一个没有输入设备的GUI等于白费,所以由此可以看出Stemwin的完善性,各方面都考虑齐全了。其实触摸屏的移植有点费劲。小狂也是花了一下午的时间才搞定,然后晚上来写帖子来啦。当中肯定有小狂做复杂的地方,还可能有更简单的方法来做这些事情,所以要是有其他方法可以在下面留言,小狂会虚心学习的,因为,要想移植触摸程序,就要有个现成的驱动不是吗。虽然没有现成的历程,但是我们可以从discovery自带的应用中把触摸程序拿出来,真是有感自己的聪明啊,哈哈,在这嘚瑟一把,哈哈。下面的过程可能不太注重代码的分析,只注重移植的过程,让大家以后更方便移植其他程序。如果有人真的对驱动很感兴趣,在下面留言,小狂会根据情况,再开一贴专门讲解,哈哈。废话少说直接进入正题
一、移植触摸程序
1、首先要找到我们要移植的程序,板子一上电就跑的应用,支持触摸,我们就要这个程序目录呢就在这个目录下F:XX\STM32Cube_FW_F7_VX.X.X\Projects\STM32746G-Discovery\Demonstration\MDK-ARM.然后打开看看文件目录


这里边几乎包含了所有的应用的代码,我们不止可以在里边移植触摸的代码,我们更可以移植先要的所有其他代码。要先移植触摸程序,是不是要找到初始化的代码在哪,这个就要去主函数中找了,当我们看到什么什么INIT的时候就要格外关心,看代码


报着试试看的心态,我们点进去看看


哈哈,黄天不负有心人,好像小狂也没有怎么费劲就找到了,接下来我们就是各种go to 去找啦,一般像这种东西,st这种大公司都会做成相应的独立的模块吃的,我们知道找到模块,那岂不happy,哈哈


进去之后看到这个,这个我们也需要只不过我们要最后再说这个,看到这个初始化我们应该更加敏感,点进去看看,这个东西用的是一个函数指针,外加结构体的方式,所以,go to的时候要注意。


这个时候我们找到了结构体的定义,这个时候我们再看一个在哪个c文件中


正好我们驱动的名字也叫这个,这个就不是巧合了,这个肯定就是触摸屏幕启动存放的地方,我们只需要找到这个文件就行。


然后找到这个文件拷贝到工程目录下,然后添加到工程中。


这个时候你发现你的ft5336.h其实还包含一个头文件,那就是


按照同样的方式把他拷贝到工程目录下,现在编译一下
发现找不到几个函数


我们需要把这些函数全部移植到我们得文件中,然后缺什么就补什么,哪有错就修改哪,这个步骤还是很简单的,修改一个编译一次,会发现错误越来越少。具体的修改完成后的代码就不放上来啦,很简单自己试一下就能搞定。如果有需要留言会上传源代码。这两个文件移植完成之后,就要移植初始化代码啦


按照这个一点点找下去,移植的方法跟上面的方法类似,缺什么补什么你也不是问题。
我们要向让我们得触摸屏幕让emwin对接啊,这样才能在gui中识别触摸屏幕并使用
2、移植接口文件
在stemwin的说明文档中说明了,触摸获取至少要100ms调用一次,得到了值把他传给


这个函数就行。
在这之前我们要开一个定时器,代码如下图所示


开启定时器3开启,计数频率为10K,然后每100ms进一次中断,获取一次坐标值。具体代码如下


途中红色的部分很重要,是更新触摸的代码


第一个红框中是我们写的获取触摸的代码,第2/3个是吧触摸坐标传给gui供其使用,到此,我们得触摸程序应该移植完成了,现在加入到我们的系统初始化当中


初始化完成触摸屏后,初始化时钟。到此就基本完成了。下边我们来讲第二个部分,来快速搭建一个简单的gui,功能很简单,第一个界面上有一个按钮,按下后弹出一个对话框,显示欢迎使用,带取消的。
二、搭建GUI界面
搭建GUI需要使用一个工具叫GUIBuilder,打开后如下图所示


里边有各种支持的控件



说明一下,在这个软件所在目录下,会有一个ini的文件,打开以后可以修改保存的c文件的文件目录。
控件必须放在相应的windows上,emwin有两种windows。一种是这个

,带标题栏的,第二个是这个

,不带标题栏的,根据情况而定,我们测试用第一个,直接点一下,就会出来界面

这个是这个界面的参数设置,分别是标题栏的名字,左上角那个点的x和y坐标,整个窗口x尺寸和y的尺寸。
然后我们设置一下字体,右键点击会出来一个菜单


这里可以设置一些参数比如标题的位置,字体,标题文字,字体对其,颜色,高度等。看看
然后添加一个按钮,选中后直接拖到界面中就行,我们来改一下文字,最后的效果如下图所示


然后问来生成第二个对话框,然后放一个Test在里边,打上相应的文字,[url=]Welcom use our system[/url]。做法跟上边的做吧一直,但是有个问题一直没有解决,就是在build里没法添加close按钮,就是最上边的那个[url=]×[/url],没有办法,只有在生成的文件中添加了。
然后我们生成相应的的c文件,名字都是你设置的windows的名字


生成了在你设置的目录下,然后把里边的两个文件拷贝到工程目录下,加入到工程中


这里我们在wecomDLG中加入那个×按钮,在文件中加入如下图所示的红色框中的代码


然后在setwindowsDLG.C按钮的触发程序中加入建立对话框的程序。


调用之前,一定要先外部声明一下。
然后在主函数中创建第一个窗口,就大功告成啦


让我们最后看一下效果


还是很方便快捷的,到这里,所有内容都讲完了,帖子都写到第7篇了,也是真心累啊,下边可能还有两到3篇就要结束这次试用

了,但是在爱板的支持热度上不去写着也有点太无聊了,可能是小狂的内容写的太基础,不好,爱板的大神太多吧。哈哈,但是不管怎么样,最后会把这是试用圆满的完成,最后要是能拿到板子那也是极好不过啦,要是拿不到也希望对接下来的试用者有帮助把。
下边的几篇可能会讲解视频、音频的播放,最后的大招肯定是移植操作系统到F7中,就这样,希望喜欢的继续支持,不喜欢的继续吐槽。
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条