3、第一个TouchGFX工程:从创建到跑起来

说实话,很多初学者拿到TouchGFX Designer,第一反应就是「这工具看着挺花哨,但到底怎么用?」。别急,咱们今天就亲手走一遍——从创建空白工程,到看懂它的目录结构,最后把代码烧进板子。我保证,走完这一趟,你对TouchGFX的整个工作流心里就有底了。

3.1 用TouchGFX Designer创建空白工程

打开TouchGFX Designer,你会看到一个启动界面。别被它吓到,操作其实很简单。

  1. 选择模板:点击「Create New」按钮,弹出模板选择窗口。我们选「Empty Application」——空白工程,干干净净,最适合学习。
  2. 配置工程参数:在弹出的对话框里,填好工程名、存放路径。注意,路径里不要有中文和空格,否则编译时容易出幺蛾子。我吃过这个亏,路径里带了个「项目」两个字,结果编译报错找了半天。
  3. 选择目标平台:这里要选你手上的开发板型号。比如STM32F429 Discovery、STM32F746 Discovery之类的。选错了也没关系,后面可以改。
  4. 点击Create:等几秒钟,Designer会自动生成工程骨架。你会看到左侧出现了一个屏幕预览,右侧是各种属性面板。
小技巧:第一次创建工程时,Designer会联网下载一些依赖文件。如果网络慢,可以提前把SDK包下载好放到本地。我个人习惯把常用板子的SDK都存一份,省得每次等。

3.2 工程目录结构解析

工程创建完成后,我们打开文件夹看看。嗯,这里面的东西不少,但别慌,我帮你理一理。

下面这张图展示了TouchGFX工程的核心目录结构:

TouchGFX工程目录结构 工程根目录 Core TouchGFX Generated Target main.cpp STM32CubeMX相关 gui/ 目录 config/ 配置 自动生成的代码 不要手动修改 硬件驱动层 LCD/触摸驱动 核心原则:Generated目录下的文件不要手动修改 所有UI修改都通过TouchGFX Designer完成,再重新生成

咱们逐个来看:

目录/文件 作用 能不能改
Core/ 存放main.cpp和STM32CubeMX生成的初始化代码 可以改,但小心
TouchGFX/ 你的UI代码都在这里,包括gui/目录下的界面逻辑 可以改,这是你写代码的地方
Generated/ Designer自动生成的UI代码,比如布局、资源引用 千万别改,改了也会被覆盖
Target/ 硬件抽象层,LCD、触摸屏、DMA等驱动 一般不动,除非换硬件
注意:Generated目录是Designer的「领地」。我曾经手痒改过里面一个坐标值,结果下次Designer一刷新,全给我覆盖了。白忙活半小时。记住,UI布局和资源引用,都在Designer里改,然后重新生成。

3.3 编译工程

好,目录看完了,咱们来编译。有两种方式:

方式一:在TouchGFX Designer里编译

Designer界面右上角有个「Run」按钮,点它。Designer会自动调用底层的编译器(通常是GCC或者ARMCC)。你会看到控制台输出一堆信息,最后出现「Build succeeded」就对了。

方式二:用IDE编译

我个人更推荐这种方式,尤其是当你需要调试的时候。Designer生成的工程里,会包含一个IDE工程文件(比如Keil的.uvprojx,或者IAR的.eww)。直接用IDE打开,然后编译。

为什么推荐用IDE?

Designer的编译功能适合快速验证,但一旦工程复杂了,编译错误信息不够详细。用IDE可以看到具体的错误行号、变量值,还能单步调试。我平时都是Designer画界面,Keil写逻辑、编译、调试。

3.4 下载到开发板

编译通过后,会生成一个.bin或.hex文件。接下来就是把它烧进板子。

  1. 连接开发板:用USB线连上电脑。确保驱动装好了。如果是STM32 Discovery板,通常自带ST-Link,插上就能识别。
  2. 选择下载工具:在IDE里,点击「Download」或「Flash」按钮。Keil里是那个绿色的向下箭头。IAR里是「Download and Debug」。
  3. 观察现象:下载完成后,板子会自动复位。如果一切正常,你会看到屏幕上出现一个空白的TouchGFX界面——嗯,就是一片白,因为咱们创建的是空白工程。
避坑指南:如果下载失败,先检查这几样:
- USB线是不是数据线(有些线只能充电)
- 开发板供电是否正常(LED亮不亮)
- IDE里的调试器配置是否正确(比如ST-Link的型号选没选对)
我曾经因为一根劣质USB线,折腾了整整一个下午。后来换了根带屏蔽的线,一次成功。

3.5 验证工程是否正常

空白工程跑起来后,怎么知道它是不是真的在工作?你可以做个小测试:

在TouchGFX Designer里,往屏幕上拖一个Text Area控件,随便写几个字,比如「Hello TouchGFX」。然后重新编译、下载。如果屏幕上出现了这几个字,恭喜你,整个工具链已经打通了。

从创建工程到看到第一个画面,这个过程其实很快。熟练之后,5分钟就能搞定。但第一次走通,意义重大——它意味着你的开发环境、工具链、硬件全部就绪,后面就可以专心写UI逻辑了。