539|2

26

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

STM32H7S78-DK测评(一)——TouchGFX控制板载LED [复制链接]

本帖最后由 FuShenxiao 于 2024-9-17 17:34 编辑

非常感谢EEWORLD和ST提供的测评机会。这块开发板搭载的STM32H7S7L8是一颗相当高性能的MCU,这块板子的做工也是十分精美。大家可以观看b站的介绍视频,无论是计算性能还是图形显示能力都是相当厉害的【新品速递】STM32H7R/S高性能MCU:高安全性,大存储和优异图显_哔哩哔哩_bilibili

作为ST官方的Discovery系列开发板,TouchGFX在这上面的开发就显得轻而易举了。

软件准备:

TouchGFX Designer(这个在官网下载最新版本,里面才有STM32H7S78-DK的模板)

STM32CubeIDE(须安装好STM32H7RS的芯片固件包,不选用MDK-ARM可能是不太适配,试了好久总是缺文件,而CubeIDE就能正常编译)

STM32CubeMX(须安装好STM32H7RS的芯片固件包)

在TouchGFX中绘制UI

在TouchGFX中选择对应的开发板

 

 

绘制UI,包括标题与四个控制按键。四个按键用于控制板载LD1-LD4四个用户自定义灯。

 

分别配置四个按键的反转触发。配置完成后点击屏幕右下角的代码生成即可生成代码。

 

生成文件目录如下

 

 

在CubeIDE中烧录

选择生成的STM32CubeIDE文件夹下的工程,对生成的代码进行编译和烧录,即可在开发板的屏幕上观察到在TouchGFX中绘制的画面。

 

 

 

配置用户灯

观察开发板原理图可以发现,LD1和LD2为高电平点亮,而LD3和LD4为低电平点亮。

 

进入CubeMX进行引脚配置

 

TouchGFX按键代码编写

进入STM32H7S78-DK_Appli/Application/User/generated/Screen1ViewBase.cpp,可以看到已经有了对于反转LED灯的函数调用,此处的四个ledToggle()均为虚函数。

void Screen1ViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
    if (&src == &toggleButton1)
    {
        //Interaction1
        //When toggleButton1 clicked call virtual function
        //Call led1Toggle
        led1Toggle();
    }
    if (&src == &toggleButton2)
    {
        //Interaction2
        //When toggleButton2 clicked call virtual function
        //Call led2Toggle
        led2Toggle();
    }
    if (&src == &toggleButton3)
    {
        //Interaction3
        //When toggleButton3 clicked call virtual function
        //Call led3Toggle
        led3Toggle();
    }
    if (&src == &toggleButton4)
    {
        //Interaction4
        //When toggleButton4 clicked call virtual function
        //Call led4Toggle
        led4Toggle();
    }
}

进入gui/Screen1View.cpp,添加以下代码

#include "main.h"

void Screen1View::led1Toggle()
{
	HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin);
}

void Screen1View::led2Toggle()
{
	HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}

void Screen1View::led3Toggle()
{
	HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);
}

void Screen1View::led4Toggle()
{
	HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
}

在gui/Screen1View.hpp中添加void ledToggle()成员函数定义,这个函数继承自Screen1ViewBase。

#ifndef SCREEN1VIEW_HPP
#define SCREEN1VIEW_HPP

#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include <gui/screen1_screen/Screen1Presenter.hpp>

class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    virtual ~Screen1View() {}
    virtual void setupScreen();
    virtual void tearDownScreen();
    		void led1Toggle();
    		void led2Toggle();
    		void led3Toggle();
    		void led4Toggle();
protected:
};

#endif // SCREEN1VIEW_HPP

再次编译烧录,即可实现用TouchGFX按键控制用户灯亮灭。

5434A826C7A8283619A0016B7A57C65A

工程源代码:

https://download.eeworld.com.cn/detail/FuShenxiao/634343

此帖出自stm32/stm8论坛

最新回复

现在工具真是越来越丰富了。   详情 回复 发表于 2024-9-18 10:42
点赞 关注(1)
 

回复
举报

6587

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

反转LED灯的函数调用的比较恰当

此帖出自stm32/stm8论坛
 
 

回复

7452

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

现在工具真是越来越丰富了。

此帖出自stm32/stm8论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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