这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【STM32H7S78-DK】TouchGFX模拟器中运行代码小技巧

共7条 1/1 1 跳转至

【STM32H7S78-DK】TouchGFX模拟器中运行代码小技巧

助工
2024-09-14 14:07:30     打赏

【前言】

在TouchGFX Designer中,如果设计的工程比较大,下载到开发板需要费许多的时间。用摸拟器可以实时实现所见即所得,不用下载到开发板就可以查看实时效果。同时如果混合C编程,那么也会影响到摸拟器的运行,因此需要使用条件编译来实现,即SIMULATOR。

【定义只在摸拟器中运行】

在官方文档中有如下图所示的标注:

image.png

为此在示例工程中添加一个按键测试:

image.png

【代码添加】

在Screen1View.hpp中添加我们在TouchGFX Desiger中添加好的按键按下的函数。

image.png

同时在Screen1View.cpp中实现他,在实现之前需添加头文件:#include <touchgfx/Utils.hpp>

添加好后添加内容如下:

#include <gui/screen1_screen/Screen1View.hpp>
#ifdef SIMULATOR
  #include <touchgfx/Utils.hpp>
#endif
Screen1View::Screen1View()
{

}

void Screen1View::setupScreen()
{
    Screen1ViewBase::setupScreen();
}

void Screen1View::tearDownScreen()
{
    Screen1ViewBase::tearDownScreen();
}

void Screen1View::simulator_test()
{
#ifdef SIMULATOR
  touchgfx_printf("Button pressed\n");
#endif
}

然后我们在模拟器中就可以实现按键按下输出打印的信息了:

image.png

【屏蔽在模拟器中运行】

当然,如果我们需要用到的一些代码,是在真机上运行的,如果不做处理,就会影响到模拟器在运行时报错,比如说,我们在代码中引入#include "main.h",如果不做处理就会在模拟器运行时报错:

image.png

那么,我们就需要添加条件编译:

#ifndef SIMULATOR
#include "main.h"
#endif

这样,就可以实现在摸拟器成功的运行了。


工程师
2024-09-14 16:44:03     打赏
2楼

谢谢分享


专家
2024-09-14 23:19:31     打赏
3楼

感谢分享


高工
2024-09-14 23:22:20     打赏
4楼

感谢分享


专家
2024-09-15 09:26:32     打赏
5楼

感谢分享


专家
2024-09-15 15:45:49     打赏
6楼

模拟器的运行速度怎么样?以前用安卓的模拟器,速度太慢了。


专家
2024-09-16 09:09:41     打赏
7楼

谢谢分享


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]