3、第一个TouchGFX工程:从创建到跑起来
说实话,很多初学者拿到TouchGFX Designer,第一反应就是「这工具看着挺花哨,但到底怎么用?」。别急,咱们今天就亲手走一遍——从创建空白工程,到看懂它的目录结构,最后把代码烧进板子。我保证,走完这一趟,你对TouchGFX的整个工作流心里就有底了。
3.1 用TouchGFX Designer创建空白工程
打开TouchGFX Designer,你会看到一个启动界面。别被它吓到,操作其实很简单。
- 选择模板:点击「Create New」按钮,弹出模板选择窗口。我们选「Empty Application」——空白工程,干干净净,最适合学习。
- 配置工程参数:在弹出的对话框里,填好工程名、存放路径。注意,路径里不要有中文和空格,否则编译时容易出幺蛾子。我吃过这个亏,路径里带了个「项目」两个字,结果编译报错找了半天。
- 选择目标平台:这里要选你手上的开发板型号。比如STM32F429 Discovery、STM32F746 Discovery之类的。选错了也没关系,后面可以改。
- 点击Create:等几秒钟,Designer会自动生成工程骨架。你会看到左侧出现了一个屏幕预览,右侧是各种属性面板。
3.2 工程目录结构解析
工程创建完成后,我们打开文件夹看看。嗯,这里面的东西不少,但别慌,我帮你理一理。
下面这张图展示了TouchGFX工程的核心目录结构:
咱们逐个来看:
| 目录/文件 | 作用 | 能不能改 |
|---|---|---|
| Core/ | 存放main.cpp和STM32CubeMX生成的初始化代码 | 可以改,但小心 |
| TouchGFX/ | 你的UI代码都在这里,包括gui/目录下的界面逻辑 | 可以改,这是你写代码的地方 |
| Generated/ | Designer自动生成的UI代码,比如布局、资源引用 | 千万别改,改了也会被覆盖 |
| Target/ | 硬件抽象层,LCD、触摸屏、DMA等驱动 | 一般不动,除非换硬件 |
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文件。接下来就是把它烧进板子。
- 连接开发板:用USB线连上电脑。确保驱动装好了。如果是STM32 Discovery板,通常自带ST-Link,插上就能识别。
- 选择下载工具:在IDE里,点击「Download」或「Flash」按钮。Keil里是那个绿色的向下箭头。IAR里是「Download and Debug」。
- 观察现象:下载完成后,板子会自动复位。如果一切正常,你会看到屏幕上出现一个空白的TouchGFX界面——嗯,就是一片白,因为咱们创建的是空白工程。
- USB线是不是数据线(有些线只能充电)
- 开发板供电是否正常(LED亮不亮)
- IDE里的调试器配置是否正确(比如ST-Link的型号选没选对)
我曾经因为一根劣质USB线,折腾了整整一个下午。后来换了根带屏蔽的线,一次成功。
3.5 验证工程是否正常
空白工程跑起来后,怎么知道它是不是真的在工作?你可以做个小测试:
在TouchGFX Designer里,往屏幕上拖一个Text Area控件,随便写几个字,比如「Hello TouchGFX」。然后重新编译、下载。如果屏幕上出现了这几个字,恭喜你,整个工具链已经打通了。
从创建工程到看到第一个画面,这个过程其实很快。熟练之后,5分钟就能搞定。但第一次走通,意义重大——它意味着你的开发环境、工具链、硬件全部就绪,后面就可以专心写UI逻辑了。