你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【 逢7发帖赢大礼】3、利用CubeMX添加TouchGFX功能:工程修改和编译烧录

[复制链接]
EPTmachine 发布时间:2026-7-4 17:35

https://shequ.stmicroelectronics.cn/thread-871079-1-1.html

上面的帖子完成在CubeMX中为正点原子H7R7开发板配置TouchGFX应用所需的外设和组件设置。

1、添加CubeMX自定义设置

https://support.touchgfx.com/zh-CN/docs/development/scenarios/adding-files-to-stm32cubemx-projet

在CubeMX生成的工程中添加自定义代码,可以通过创建.extSettings文件为工程添加自定义设置,之前为BOOT工程添加HyperRAM相关的自定义代码。此处为Appli工程添加触摸相关的自定义代码。


[Appli:ProjectFiles]
HeaderPath=../Drivers/BSP
[Appli:Groups]
Drivers/BSP=../Drivers/BSP/SYS/sys.c;../Drivers/BSP/TOUCH/ctiic.c;../Drivers/BSP/TOUCH/gt9xxx.c;../Drivers/BSP/TOUCH/touch.c;../Drivers/BSP/Modules/mod_debug_keil.c
[Appli:Others]

关闭并重新打开CubeMX,生成代码后上述配置会添加到生成的工程中。

2、添加显示屏相关代码

App TouchGFXHAL.cpp当第一帧帧缓存数据准备好后,再打开LCD背景光可以避免开机的撕裂现象

void TouchGFXHAL::endFrame()
{
    TouchGFXGeneratedHAL::endFrame();
    if (!Display_ON)
    {
        HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_SET);
        Display_ON = true;
    }
}

STM32TouchController.cpp中添加代码,获取触摸坐标

#include "TOUCH/touch.h"
void STM32TouchController::init()
{
    tp_dev.init(); /* Touch Init*/
}
bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)
{
    uint8_t touches = 0;
    touches = tp_dev.scan(0);
    if(touches == 1)
    {
    y = tp_dev.x[0];
    x = tp_dev.y[0];
    }
    return (touches > 0);
}

STM32H7R7_TouchGFX\Appli\TouchGFX路径中会生成一个ApplicationTemplate.touchgfx.part文件,使用TouchGFX打开该文件,会提示导入一个GUI用于生成代码。

Import_Example_GUI.png

点击生成对应的GUI代码。

Generate_Code.png

3、编译与下载

由于使用的部分外设涉及到BOOT和ExtMemLoader,将三个工程重新编译,并将ExtMemLoader的固件后缀改为stldr存放到CubeProgrammer插件的ExtLoader目录中,分别烧录BOOT和Appli工程,即可运行TouchGFX图形应用。

收藏 评论0 发布时间:2026-7-4 17:35

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版