跳转到主要内容

开发简介

本节包含了如何开发TouchGFX应用程序的信息,包括结构、工作流和工具。

主要操作

一个TouchGFX项目会涉及到开发阶段的一系列操作。 每个操作的工作量取决于项目的目标。 如果您正在执行UI原型设计,则应用程序的主要部分可使用预制代码,以跳过大多数步骤,从而加快项目开发速度。 如果您基于定制板来完成整个项目,您将在项目开发中涉及所有这些操作。

TouchGFX项目的主要操作

主要部件

您的TouchGFX项目由五个主要的硬件和软件部件组成。 每个操作都会为您的TouchGFX项目生成一个主要部件。 TouchGFX Engine不是任何主要操作的输出,而是TouchGFX项目的起点,在下载和安装后即可使用。

TouchGFX项目的主要部件

以下各节将概述每个操作及部件。 本章其余各节将进一步详细描述每个操作。

硬件选择

此操作是TouchGFX项目中的初始项。 选择要运行应用程序的硬件。 确定所需的硬件组件,并弄清这些硬件对TouchGFX应用程序的影响。 完成此步后,您就拥有了一个可用于TouchGFX项目的显示板。

原型设计

如果您正在执行UI原型设计, STM32评估套件则是快速启动并运行的理想之选。 这里无需考虑硬件组件、不同组件间的连接或类似问题。 这种情况下,硬件选择操作只需基于MCU性能、存储器设置和显示屏尺寸方面选择最贴近您的最终产品的STM32评估套件。

定制硬件

如果您要创建自己的硬件解决方案,选择很多,同时要考虑的问题也多。 硬件选择将帮助您完成此任务、回答许多问题,并描述您的选择如何影响TouchGFX应用程序。

通常直到项目开发后期,将不会有完备的最终硬件。 在这种情况下,通常会选择一个类似于最终板子的STM32评估套件,并在UI开发的第一步中使用该套件。 如果您没有这样的板,也可以只使用在PC上运行的TouchGFX Simulator来开始。

有关此步骤的完整说明,请参见<硬件选择部分。

板启动搭建

此操作是一项让TOUCHGFX运行于你板上的中心任务。 输出组件被称为板级初始化代码,是些通用初始化代码,用于设置MCU及所有外设,为执行应用程序做准备。 该初始化代码独立于TouchGFX,仅处理纯硬件设置。

STM32CubeMX

该操作的主要工具是STM32CubeMX。 它可以帮助您配置MCU并生成基础性的启动代码。 对于外设(如外部RAM和显示屏),您将自行添加初始化代码和特定外设驱动程序。 也可以在不使用STM32CubeMX的情况下完成整个板的初始化代码,不过这需要您对STM32和搭建启动开发板具备专家级水准,否则不建议这样做。

TouchGFX板卡设置(TBS)

如果您正在执行UI原型设计或只想尝试TouchGFX,则您可以让应用程序基于TouchGFX Designer中的STM32标准评估套件中的某个现有TouchGFX板卡设置(TBS)来进行。 这包括所需的所有板级初始化代码。 TBS基于STM32CubeMX配置,因此,如果您想尝试或添加对更多外设的访问权限,则可以修改配置。

有关此步骤的完整说明,请参见开发板搭建启动章节。

TouchGFX AL开发

此操作是TouchGFX Engine在完全初始化过的显示板(显示板 + 板初始化代码)上运行的关键。 输出组件被称为TouchGFX抽象层(AL),这是一个软件层,是硬件的抽象,并使TouchGFX Engine可在您的开发板上运行。

TouchGFX Generator

此操作的主要工具是TouchGFX Generator,这是一个STM32CubeMX插件,该插件让您配置并生成大多数TouchGFX AL代码。 您也很可能自行编写TouchGFX AL代码中的某些部分。 TouchGFX Generator通过创建要实现的空函数来帮助您完成此步骤。

请特别注意,为使TouchGFX AL正常工作,正确完成板级初始化代码并正确配置MCU、外部RAM、显示屏等非常重要。

如果您正在执行UI原型设计或只想尝试TouchGFX,则您可以让应用程序基于TouchGFX Designer中的STM32标准评估套件中的某个现有TouchGFX板卡设置(TBS)来进行。 这包括您需要的所有TouchGFX AL代码。 TBS基于CubeMX和TouchGFX Generator配置,如果您以后想做实验,则可以修改配置。

有关此步骤的完整说明,请参见TouchGFX AL开发章节。

UI开发

您可能会在此操作中花费大部分的项目开发时间。 您将在这里创建用户界面代码,该代码将构成TouchGFX项目的可视部分,该组件被称为TouchGFX UI应用程序。

TouchGFX Designer

此操作的主要工具是TouchGFX Designer以及您最喜爱的IDE或文本编辑器。 在TouchGFX Designer中,您可以设置、设计和创建您的应用程序中的视窗,并用C++代码生成UI应用程序的主要部分。 对于应用程序逻辑(处理事件,与系统的非UI部分进行通信),您可以使用IDE或文本编辑器编写C++代码,该代码与TouchGFX Designer生成的代码交互共存。

TouchGFX板卡设置

如果您正在执行UI原型设计,或只是想尝试TouchGFX,而不希望花时间做其他操作,则您可以基于PC上的TouchGFX Simulator来开发应用程序,也可基于某个标准STM32评估套件中的现有TouchGFX板卡设置(TBS)来操作。 无论如何,您都可以立即着手开发UI应用程序。

演示和示例

如果您只是想运行某些应用程序或因此找些启发,则在TouchGFX Designer中创建新项目时,可以选择其中某个TouchGFX示例来开始。 如果这样的话,只需编译、烧写代码并运行,无须其它操作。

定制硬件

如果您已经完成所有其他操作,即已经为TouchGFX应用程序准备好了运行板,则您可以从头开始,或基于某个现有示例开始。 如果定制板的分辨率与示例一致,则示例也应该能在您的定制板上运行。

有关此步骤的完整说明,请参见UI开发章节。

工作流程

如您所见,TouchGFX开发涉及许多操作和工具。 但需要注意的是,您无需一次性完成所有操作,而且在开始进行UI开发之前,不一定需要使用显示板、板级初始化代码和TouchGFX AL。 可使用STM32评估套件或TouchGFX Simulator来完成这些操作。

TouchGFX Designer工作流程

生成的代码和用户代码

在开发板搭建启动、TouchGFX AL开发和UI开发所需的三个软件操作中,您将使用工具来生成代码。 这些工具的共同点是它们不会生成您所需的所有代码,您还将在项目中添加特定用户代码。 对于这三种工具,您可以在使用工具和编写代码之间来回切换。 工具生成的代码和用户代码是独立的,并可以分别更新。

有时,您还可以在不同操作之间来回切换,因此需要使用不同的工具。 在进行TouchGFX AL开发时,您通常会使用非常简单的TouchGFX UI来测试TouchGFX AL。 而且,在不同操作之间进行切换没有问题,工具、生成代码和您的用户代码共存,并在更新时不会出现任何问题。

更改编译器/IDE

在这些操作中,您必须为目标板编译代码。 TouchGFX支持的编译器有IAR、ARMCC、ARMCLANG和GCC(STM32CubeIDE)。 为TouchGFX项目选择的工具链在STM32CubeMX中配置,所以如果您要进行更改,则应在STM32CubeMX中打开TouchGFX project .ioc文件,并更改工具链设置。 在TouchGFX Designer中选择板件设置(TBS)时要预先选择一个工具链,因此您只能找到基于一个工具链的项目文件。 由于AT与.ioc文件是配套的,因此您可以将其打开并更改工具链,以适应项目需求。