STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互

目录:

新版:
0.STM32F429使用STM32CUBMX5.6移植touchGFX4.13
旧版:
1.STM32F429移植touchGFX(一)——通过STM32CubeMX移植TouchGFX
2.STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互
3.STM32F429移植touchGFX(三)—— 实现DIY数字仪表
实战
3.STM32F767移植touchGFX—— 使用RTThread系统和TouchGFX实现DIY数字仪表(正在进行)
4.STM32H747移植touchGFX—— 使用RTThread系统和TouchGFX实现AI图像识别(计划进行)

实验平台:

硬件: 野火挑战者STM32F429开发版
软件: 最新版本的STM32CubeF4固件库,TouchGFXDesigner v4.12.3和 STM32CubeMX v5.4.0,开发环境MDK v5.26

实验前准备工作:

1.准备一套 野火挑战者STM32F429开发版,和下载工具
2.下载 TouchGFXDesigner v4.12.3
3.下载 STM32CubeMX v5.4.0
4.下载 MDK v5.26

下载:

代码持续更新中:github代码下载地址

联系作者:

关注公众号,加入技术交流群共同学习
在这里插入图片描述

使用TouchGFX MVP来实现和硬件的双向交互

mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部。
用一句话来概括MVP:所有数据仅能保存在称为 Model 的类对象(简单说就是一种文件)中,Presenter是视图(View)与Model之间的纽带,View只能通过Presenter来读取数据。
MVP优点:
模型与视图完全分离,我们可以修改视图而不影响模型;
可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;
我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)
MVP架构
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第1张图片
一.增加一个按键任务和一个消息队列
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第2张图片
二.用户使用UI控制LED
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第3张图片
1.在屏幕二添加按钮开关
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第4张图片
2.用户实现M
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第5张图片
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第6张图片
3.用户实现P
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第7张图片
4.用户实现V
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第8张图片
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第9张图片

三.用户使用外部按键操作界面
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第10张图片
1.在屏幕二添加按钮开关
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第11张图片
2、实现M
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第12张图片
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第13张图片
3、实现P
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第14张图片
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第15张图片
4、实现V
Screen2View继承自Screen2ViewBase,view.handleKeyEvent(USP_KEY) ->Screen2ViewBase::handleKeyEvent(uint8_t key)->Screen2View::togglelight();
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第16张图片

STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第17张图片
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第18张图片
5、添加用户代码
STM32F429移植touchGFX(二)—— 使用MVP架构来实现GUI和硬件的双向交互_第19张图片

你可能感兴趣的:(项目实战)