您的位置:首页 > 其它

stm32 TouchGFX基础教程(十四)触控点亮LED

2020-06-02 04:44 2481 查看

Touchgfx用MVP架构将UI界面、界面逻辑、硬件系统三者分离,这是官方例程里的说明:

View: 负责描述UI界面,比如包含哪些控件、控件如何布局等,Touchgfx Designer软件里的工作就是在构建View
Model: 保存与UI界面有关的数据;有个tick()函数,每秒执行60次,实现与硬件系统交互,相当于硬件与Touchgfx之间的桥梁
Presenter:在Model与View之间起传话筒的作用
System:Touchgfx以外所有的其它部分都属于System的范畴

之所以使用MVP架构是为了把代码功能分离开来,增强系统的可移植性和可阅读性。

下面介绍如何通过触控界面控制一个LED灯,这其实是一个拆套娃的过程:

我们可以看到,HAL_GPIO_TogglePin(…)函数经过多级封装被最顶端的View调用,是最终干活的小老弟。我们也完全可以在View的点击事件回调函数里直接调用HAL_GPIO_TogglePin函数,但是这样会破坏MVP结构,不推荐这样做。所以还是按官方的方法,一层一层剥套娃吧。

下面在开发板上实战。
1、在前面配置好的工程模板里添加一个LED:

2、Touchgfx Designer里放一个按键,并为它添加交互函数btnClicked:

3、用VS打开生成的仿真项目,然后在Screen1View中实现btnClicked:


4、由于presenter里没有btnClicked这个方法,所以需要为它添加一个:


5、同样,Model里也没有toggleLED方法,依然需要为它添加。不过,VS仿真中并不支持调用系统底层的函数,所以将VS保存关闭,我们在MDK中为Model添加toggleLED方法:


6、编译下载到开发板就可以看到现象了:

-------------------------------下面是我的小广告----------------------------------------------

淘宝小店:芯视界touchgfx

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: