序言2014年,STM32F429的问世,为嵌入式图形界面开启了一个新的阶段。它并非首个集成LCD控制器的MCU,但在Cortex-M领域,它率先将CPU性能、专用图形加速器与成熟的TFT控制器融为一体,奠定了STMCU图形解决方案的基石。 作为STM32图形生态的里程碑,它不仅是TouchGFX框架在STM32平台的首个完整载体,其集成的DMA2D、LTDC、FPU等模块,更在当时定义了高性能图形MCU的典范,让流畅的彩屏交互成为嵌入式设计的标准配置。 十年过去,凭借稳定的架构与完备的生态体系,STM32F429 依旧在工业控制、家电终端与便携设备等领域被广泛采用,展示出经验证的可靠性与持续价值。本次体验旨在通过学习TouchGFX的开发,重新审视这款经典器件在当今环境下的技术意义与应用潜力。 开发环境本次测评活动使用到的环境有:STM32CubeIDE 1.19.0、TouchGFX 4.26.0 Designer 外观展示我拿到的是版本号为MB1075C的板卡,搭载的是STM32F429ZIT6,Cortex-M4内核,主频180MHz,具有2MB的Flash存储和256KB的RAM。板载的外设主要有:
布局总览如下:正面: 背面: 测评任务简介本次测评活动主要完成以下三个任务:
我将以上三个任务整合到一起,做成了一套支持不同语言的、拥有画板、灯光控制、温度图表等功能的小型嵌入式GUI demo。 本次测评活动最终成果预览:简要思维导图:
主界面:进入时显示欢迎界面和一个“Next”按钮,点击Next按钮后弹出一个窗口,显示“TOUCH GFX DEMO”字样,再次点击屏幕任意位置进入选项界面。
选项界面:有四个选项,分别是灯光、语言设置、温度检测、小画板四个选项,放在一个卷轴菜单中,可以上下滑动;以及一个返回按钮,点击后返回欢迎界面。
灯光控制界面:有一个自锁按键,可以控制PG13连接的LD3亮灭;按下Backward返回菜单界面。
语言切换界面:包含中文和英文两个按键,按下任一按键后跳转回选项界面,并且切换全局为对应语言。
温度监测界面:包含动态图表元件实时显示温度曲线,并且在下方文本实时显示温度数据;有一个滑动菜单,点击露出来的小啾啾可以打开菜单,里面放有一个返回按键;
画板界面:包含一个绘画区域和两行按键,绘画区域通过自定义的SketchContainer控件实现绘制操作,按键区域第一行为多种预置颜色,最后一个“C”按键为唤出调色盘的按键;第二行为清除画板按键和返回菜单按键。
TouchGFX上手——触摸屏点灯TouchGFX Designer和STM32 Cube Programmer的安装官方有详细的视频介绍,此处不再赘述:TouchGFX_02. 如何安装TouchGFX Designer和STM32Cube软件环境 注意STM32 Cube Programmer最好安装到C盘,如果安装到其他目录下的话,需要修改TouchGFX的配置文件: 在新建完项目后,在<你的项目>/gcc/include/下找到cube_programmer.mk,将里面有关cube_programmer的路径进行修改,此处我的cube Programmer安装到了E盘下的Program Files文件夹下:
TouchGFX的官方Demo和例程通过官方例程可以对开发板快速评估,在左侧Demos选择卡中有多种不同例程可供参考,可以看到STM32F429I-DISC1的官方例程为Button Sample Demo:
生成后可以看到界面分布如下: 通过左边Canvas→Screen可以看到,主屏幕放置了三张图片,但是在右边Interactions中发现它没有设计任何的交互,十分简陋。实际上下载到板上也可以发现,它确实只是显示了一个静止的图像而已。
TouchGFX触摸屏点灯我们来实现一个可以跟外界交互的点灯程序:选择左侧Create→找到STM32F429I-DISC1,可以生成空文件。
按照下图顺序放置3个控件在画布上,分别是作为背景的Box,颜色设置为自己喜欢的颜色;用于设置灯光状态的Toggle Button;作为示意图,避免图片过于死板的图像,为了方便调节,使用的是Scalable Image。
如果还没有添加图片到项目中,可以按照下面步骤添加,然后加载到Scalable Image控件中。
完成布局后来设计交互,在Interactions中添加交互,选择触发事件为按钮点击(Button is Clicked),选择自己的按钮,动作(Action)选择生成C++代码(Execute C++ Code),代码中进行PG13的翻转。
接下来点击右下角</>按钮生成代码;生成后,我们需要到CubeMX中配置PG13。
在生成的代码文件夹根目录中有一个.ioc文件,用CubeMX打开或者CubeIDE打开进行配置。
将PG13设置为GPIO_Output模式,在CubeMX中点击上方Generate Code生成代码,在CubeIDE中只需要保存文件即可自动生成代码。
生成后回到TouchGFX Designer,点击右下角最右边的下载按钮,下载到开发板上。
触摸按钮时可以正常开关LED。
项目文件我已经放到了我的gitHub中,有需要可以自取: STM32F429-TouchGFX/MyApplication_Complete at main · Chiando-1100/STM32F429-TouchGFX](https://github.com/Chiando-1100/STM32F429-TouchGFX) |
《STM32U3线上课程》学习笔记+FLASH存储器的核心特性
《STM32U3线上课程》学习笔记+更丰富的外设兼容和总线矩阵学习和总线矩阵学习
意法半导体18nm STM32V8震撼登场,获SpaceX星链选用,重新定义高性能MCU未来
《STM32U3线上课程》学习笔记+STM32U3 超低功耗 MCU,超低功耗及数据安全
实战经验 | KEIL环境下printf导致程序无法执行的解决方案
STM32 GUI+:驱动嵌入式设备从“功能单一”向“智能集成”演进
stm32在原有工程中添加串口模块的详细说明
高手入门STM32总结+学习步骤
STM32开发五大误区,新手别傻傻信了
《STM32系列产品选型手册》全面更新
微信公众号
手机版
F429-DISCO这个板子有好几个型号,出的挺杂的,有部分型号板子的TOUCHGFX工程触摸会上下翻转