3、第一个TouchGFX项目:创建空白项目、屏幕与画布基础、模拟器运行与调试

说实话,很多初学者一上来就急着往画布上堆按钮、拖图片,结果项目结构乱成一锅粥,后面改需求时欲哭无泪。我刚开始用TouchGFX时也犯过这毛病——总觉得「先跑起来再说」,后来被一个客户需求变更折腾了整整两天,才老老实实回来补基础。

这一章,咱们就稳扎稳打,从零创建一个空白项目。你跟着我走一遍,后面30章都会轻松很多。

3.1 创建空白项目——别选错模板

打开TouchGFX Designer,点击「Create New Project」。这里有个坑——很多人直接选「Empty UI Project」,结果发现连个屏幕都没有,一脸懵。

我个人习惯选「Stampe」模板。为什么?因为它自带一个空白屏幕和基础的画布配置,省去你手动配一堆参数的时间。你想想看,咱们的目标是学界面设计,不是学配环境。

我的经验: 选模板时注意右下角的「Target」选项。如果你用的是STM32F429 Discovery板,就选「STM32F429 Discovery」;如果只是纯软件模拟,选「Simulator」就行。我见过有人选了硬件模板却在模拟器里跑,结果一堆报错。

创建完成后,你会看到这样一个界面:

  • 左侧是组件面板(Widgets)
  • 中间是画布(Canvas)
  • 右侧是属性面板(Properties)
  • 底部是时间轴(Timeline)

嗯,这里要注意——画布默认是480x272像素,这是很多嵌入式屏幕的经典分辨率。如果你用的屏幕不一样,记得在项目设置里改。

3.2 屏幕与画布基础——搞清楚谁是谁

很多新手搞混「屏幕」和「画布」的概念。我打个比方:

  • 屏幕(Screen) 就像一栋楼里的楼层。你可以在不同楼层之间切换。
  • 画布(Canvas) 就是每个楼层里的房间布局。你往里面放什么家具(控件),用户就看到什么。

在TouchGFX里,一个项目可以有多个Screen,每个Screen里可以有一个或多个Canvas。但大多数情况下,一个Screen配一个Canvas就够了。

核心概念: Screen管理页面切换逻辑,Canvas管理控件布局。两者分工明确,别混着用。

双击左侧的「Screen1」,你会看到画布上出现一个白色矩形区域。这就是你的第一个屏幕。右键点击它,选择「Properties」,可以设置背景色、是否启用滚动等。

我个人习惯先把背景色设成浅灰色(#F0F0F0),这样后面放控件时对比明显,不容易看花眼。

3.3 模拟器运行与调试——先别急着烧录

代码写完了?别急着往板子上烧。TouchGFX的模拟器非常强大,我建议你养成「先模拟、后烧录」的习惯。

点击工具栏上的「Run」按钮(绿色三角形),TouchGFX会自动编译并启动模拟器。第一次编译可能会慢一点,别急,去倒杯水。

模拟器启动后,你会看到一个窗口,里面就是你刚才设计的界面。你可以用鼠标点击按钮、滑动滑块——就跟在真机上一样。

避坑指南: 我曾经在模拟器里跑得好好的,一烧到板子上就花屏。后来发现是屏幕驱动配置不对。所以模拟器只能验证UI逻辑,硬件相关的坑还得靠真机调试。

调试时,我常用这几个技巧:

  1. 按F5刷新: 修改代码后不用重新编译,直接按F5刷新模拟器,省时间。
  2. 查看日志: 模拟器底部有个「Log」面板,所有printf输出都在那里。我习惯在关键函数里加printf,方便追踪流程。
  3. 断点调试: 如果你用IDE(比如STM32CubeIDE),可以直接在C++代码里打断点。模拟器会停在断点处,方便你查变量值。

3.4 知识体系总览——一张图看懂本章

下面这张图总结了本章的核心逻辑。你跟着它走,就不会迷路。

第一个TouchGFX项目知识体系 创建空白项目 选择模板 屏幕与画布基础 模拟器运行与调试 Empty UI Stampe模板 Screen管理页面切换 Canvas管理控件布局 F5刷新 日志查看 核心原则:先模拟、后烧录 模拟器验证UI逻辑 → 真机验证硬件驱动 → 两者结合才能稳定交付

3.5 常见问题与避坑

问题 原因 解决方法
模拟器启动后黑屏 画布背景色为黑色,或屏幕配置错误 检查Screen的Background Color属性
编译报错:找不到头文件 项目路径包含中文或空格 把项目移到纯英文路径下
模拟器里控件不响应点击 控件被其他元素遮挡 检查控件的Z-order顺序
烧录到板子后花屏 屏幕驱动时序不对 核对LTDC或FMC配置参数
我曾经踩过的坑: 有次项目交付前夜,发现模拟器里按钮正常,烧到板子上却按不动。排查了半天,原来是板子的触摸屏中断引脚没配置。从那以后,我每次新建项目第一件事就是检查硬件配置。

3.6 小结

这一章咱们走完了从创建空白项目到模拟器调试的完整流程。你掌握了:

  • 如何选择正确的项目模板
  • 屏幕与画布的分工逻辑
  • 模拟器的运行与调试技巧
  • 常见问题的排查方法

说白了,这些就是TouchGFX开发的「基本功」。后面所有复杂的界面、动画、交互,都是在这个基础上搭建的。你把这章吃透了,后面的路会顺很多。