查看: 53000|回复: 0

[评测分享] 【STM32H735-DK 测评】TouchGFx控制LED亮灭及图标切换

[复制链接]
  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 333 天

    连续签到: 23 天

    [LV.8]以坛为家I

    发表于 2024-3-10 16:05:00 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 eefocus_3914144 于 2024-3-10 19:35 编辑

    【前言】
    TouchGFX给用户提供了良好的界面设计,以及M-P-V的交互分享设计系统。这一篇主要介绍如果建立一个使用屏上的按键来实现对开发板上LED的亮与灭,同时同步国标的显示。
    【界面设计】
    1、在初始化的工程中添加一个toggle button,图标命名为ButOnOff。同时选择两个状态的背景图片,来指示开关的状态。
    togglebutton.png
    2、添加两个图片,重叠在一起,来指示灯的状态。
    灯的状态图标.png
    3、给togglebutton添加用户事件,首先新建用户事件,按下图一步一步创建好虚拟函数:
    函数新建.png
    4、创建好界面所重新生成工程,并打开工程:
    打开工程.png
    【代码实现】
    我们由屏控制硬件的流程,是基于View->Presenter->Model的编程步骤。控制的函数由screenVide.cpp->Screen1Presenter.cpp->Model.cpp来逐步实现。
    1、首先我们在Screen1View.hpp重写按键的函数:
    微信截图_20240310160349.png
    然后在Screen1View.cpp中实现:
    1. void Screen1View::funButOnOff()
    2. {
    3.         bool butState;
    4.         butState = ButOnOff.getState(); //获取按键状态
    5.         presenter->setPoolLiget(ButOnOff.getState());  //更新状态
    6.         image_on.setVisible(butState); //更新图标显示与否
    7.         imageOFF.invalidate();  //刷新
    8. }
    复制代码
    在funButOnOff中,首先获取按键的状态,然后把参数更新到Presenter中的setPooliget函数。同时更新图标的显示状态,刷新图标,如果不刷新则无效。

    2、在Screen1Presenter.hpp,我们声明该函数: 微信截图_20240310160858.png
    然后在Screen1Presenter.cpp中实现,在这个函数中,我们把按键的状态传递给model的userPooliget。

    1. void Screen1Presenter::setPoolLiget(bool state)
    2. {
    3.         model->userPooLiget(state);
    4. }
    复制代码
    3、接在model.hpp中声明该函数:
    微信图片_20240310161150.png
    接着我们在mdoel.cpp中实现对灯的控制,首先我们要把按键初始化与相关控件的开发板的文件stm32h735g_discovery.c添加到工程,该文件在\Drivers\BSP\STM32H735G-DK目录下面,我们复制他并粘贴到工程中就行了,同时在model.cpp中引用他。
    在model.cpp中添加对LED的控制函数,代码如下:
    1. void Model::userPooLiget(bool state)
    2. {
    3.         if(state)
    4.         {
    5.                 BSP_LED_On(LED1);
    6.         }
    7.         else
    8.         {
    9.                 BSP_LED_Off(LED1);
    10.         }
    11. }
    复制代码
    函数中我们通过对按键状态的值来实现对灯的开与关。
    当然我们需要在main.c中初始化按键。
    这样我们就实现了整个代码的编写。下载到开发板后成功实现了TouchGFX对硬件的实时控制。效果如视频所示。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 21:11 , Processed in 0.131082 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.