604|0

6995

帖子

11

TA的资源

版主

楼主
 

【STM32U599J-DK】TouchGFX使用MVP架构实现GUI与硬件的交互 [复制链接]

 
实验平台
硬件:STM32U599J-DK
软件:STM32Cube_FW_U5_V1.3.0,touchGFXDesigner v4.22.1和stm32CubeIDE1.13.2
实验前准备:
  1. STM32U599J-DK
  2. 安装好touchGFX
  3. 安装好stm32cubeIDE
使用TouchGFX MVP来实现和硬件的交互:
mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,controller/Presenter负责逻辑的处理。
用一句话来概括:所有数据仅能保存在Model的类对象(简单说就是一种文件)中,Presenter是视图(View)与Model之间的纽带,View只能通过Presenter来读取数据。
MVP的优点:
模型与视图分离,我们可以修改视图而不影响模型;
可以更高效的使用模型,因为所有的交互都发生在一个地方——presenter内部。
我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)
【实现步步骤】
  1. 用touchGFX Designer新建一个stm32u599的空白工程,项目命名为MyLed
  2. 在屏幕上添加一个按键与二个图片,图片显示LED灯的状态,按键用于控制GUI上的圆与板载的LED灯的开关。


    3、添加开关按键的事件:

    【代码实现】
    1、打开stm32cubeIDE工程
    2、我们添加GUI对硬件的控制,遵循是View->Persenter->Model。所以我们先在screen1View.hpp上新建一个虚拟函数:

    3、然后在screen1View.cpp中实现它,函数实现的功能是将按键的状态传给persenter。然后根据状态让亮灯与熄灯的图片显示与否。
     
  3. 4、在screen1persenter.hpp中添加set_light_onoff函数,并在screen1persenter.cpp中实现它。
  4. 最后我们在model.hpp中声明set-light_onoff函数,并在model.cpp中引用main.h,实现对板载LED灯的控制:
最后我修编译下载到开发板就实现对点击屏幕的按键,实现对板载LED灯的控制,同时也看到屏幕的图片实时显示了。
 
附视频讲解:

 
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表