ST意法半导体
直播中

符筹荣

7年用户 972经验值
私信 关注
[问答]

求助,使用TouchGFX时如何创建多个STM32CubeIDE工程?

我使用 STM32F429I-DISC1 探索板创建了一个项目。我花了几天时间弄清楚 TouchGFX 如何与 STM32CubeIDE 集成。我能够为我要开发的项目创建所需的小部件。在我的测试项目中一切正常。
我今天使用 TouchGFX 开始了真正的项目,并使用探索板作为起点。新项目已在新文件夹中创建。我在屏幕上放置了几个按钮作为测试。我把生成的IOC文件改名,用STM32CubeIDE打开,生成代码。当它完成生成代码时,会弹出一个框,我单击“打开项目”。然后我收到这条奇怪的消息:
逐字:
工作区中已存在项目“STM32F429I-DISCIO”:
这个:C:TouchGFXProjectsButtonsLEDsSTM32CubeIDE
他们的:C:TouchGFXProjectsProject2MultiScreenSTM32CubeIDE

您要删除它并导入新版本吗?
我回答否,项目没有打开。所以我重新开始并回答是。该项目打开并按预期运行。然后我关闭了 MultiScreen 项目并尝试打开 ButtonsLeds 项目。
我收到一条错误消息,指出由于文件丢失而无法打开项目。显然对导入问题的回答是破坏了另一个项目。我搜索了我的磁盘以找到 STM32F429I_DISCO_REV_E01 文件,它只出现在 STM32CubeIDEworkspace_1.7.0 目录中。它有我对导入问题回答“是”的时间戳。
我过去从未遇到过使用 STMCubeIDE 创建多个项目的问题,因为项目总是位于不同的文件夹中。显然这个问题是在创建项目时使用 TouchGFX 工具所特有的。
我有两个问题。
1) 如何在不破坏我上一个工作的项目的情况下创建和打开一个新项目?显然将它放在另一个目录中不起作用,因为如果 TouchGFX 创建了项目,STMCubeIDE 似乎只知道 STM32CubeIDEworkspace_1.7.0 目录。似乎没有办法在新项目中重命名 STM32F429I-DISCO 文件来消除冲突。
2) 使用 TouchGFX 时如何为自定义板创建项目?我是否需要使用探索板模板之一,然后修改 IOC 文件以匹配我正在使用的 GPIO 引脚?如果我这样做,是否会破坏 TouchGFX 创建的代码中的任何内容?








回帖(1)

李子月

2022-12-14 14:14:25
MM.. 1,
我尝试了您最后一种重命名 IOC 文件并将其放置在空文件夹中的方法。我尝试了几个小时的不同方法,但始终无法正常工作。我永远无法让代码正常工作。它不会编译并且总是有 9 个错误。此处显示前三个。
./TouchGFX/target/generated/TouchGFXConfiguration.cpp:19:10: 致命错误: texts/TypedTextDatabase.hpp: 没有这样的文件或目录
.hpp:22:10: 致命错误: touchgfx/hal/HAL.hpp: 没有那个文件或目录
OSWrappers.cpp:21:10: 致命错误: touchgfx/hal/HAL.hpp: 没有这样的文件或目录
我终于找到了一个相当简单的方法。这些是我使用的步骤。
我在 STM32CubeIDE 文件夹中编辑了 .project 文件。我将位于第 3 行的 STM32F429I_DISCO 项目名称更改为我当前的项目名称。
正如您在第一篇文章中提到的,我更改了 ProjectManager IOC文件中的ProjectFileName改为我当前的项目名称。我也改变了 ProjectManager ProjectName 到我当前的项目名称。我没有更改 IOC 和备份 IOC 文件的名称。我发现如果我这样做,TouchGFX 将无法再编译代码。
接下来,我将 STM32F429I-DISCO Debug.launch 文件名更改为 MyProjectName Debug.launch。在该文件中有一行 。我将行更改为 。我不确定是否需要进行此更改,但如果您尝试调试项目,则可能需要进行此更改。
然后我双击启动 STM32CubeMX 的 IOC 文件。我对 GPIO 进行了一些更改,并在 FreeRTOS 中启用了 USE_NEWLIB_REENTRANT 设置。如果不启用它,代码将无法编译。然后单击“生成代码”,STM32CubeIDE 启动并成功导入项目。
我确认我可以在 TouchGFX 中进行更改,并且更改会反映在 STM32CubeIDE 项目中。
如果我查看 Username/../workspace_1.7.0/ 插件/ projects directory 我只看到我的项目文件夹的名称。没有 STM32F429I-DISCO 文件/文件夹,这是应该的方式。
“在 TGFX 中创建的项目仅用于演示、学习……”
你这句话是什么意思?是否有更好的工具来创建 LCD 显示图像和与 STM32 CPU 的操作/交互?一旦了解了 TouchGFX 的一些小怪癖,TouchGFX 似乎是一个很好的工具。真正好的部分是它创建了 CPU 和 LCD 板之间所需的所有 GPIO 连接。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分