极客秀
搜索

浅谈第一次使用TouchGFX为STM32设计GUI的感受

本来这篇文章应该是上周发的,但是这周在忙一些其他的事情于是拖到了现在。
首先先说明一下我的个人情况,虽然应用过许多LCD显示屏但是通常只是普通的信息显示或者效率极差的绘图,关于GUI库也仅仅局限于使用简单的例如U8g2这种简单的,应用于OLED中的库。对于LCD中GUI设计,稍微了解些的就是LVGL。本来是准备出一期LVGL的移植教程,但是由于移植过程确实有点麻烦过头了,因此关于移植的文章还躺在草稿箱中。

所以事实上个人在LCD的GUI设计与部署经验近乎小白,而自从前几天了解到TouchGFX,对其非常感兴趣,因此这段时间在学习和尝试使用TouchGFX。

从官网中的介绍可以知道,他是专门为STM32服务的架构,当然我最关心的几点是: 它的开发效率如何?我使用自己制作的STM32产品中移植难度 。

首先,我先说我这几天的使用感受 优点:

  • 图形化编程的GUI设计效率非常的高
  • CubeMX中有TouchGFX的插件基本没有移植代码的工作量。
  • 就目前了解的一些控件来看,控件的功能和资源非常的丰富,足以满足我目前和设想到的需求。
  • 使用ST的官方开发板的话则可以在GUI界面中一键部署。

  • 在目前自己使用的STM32F407(非官方开发板)中部署,效果也很满意。

上述 这个时钟就是 Touch GFX中的一个控 件,从创建工程到动态时钟的实现 总共花了十来分钟 的时间。

因此如果制作下图这样子的GUI并不是复杂的事情。

其中还有好多内容,这都需要一段时间去消化。当然,使用的过程中也遇到一些阻碍。
首先是你需要一定的C++了解和熟悉,就目前而言需要特别熟悉C++中类的使用,继承机制(幸好这些还是会的)。TouchGFX的底层控件靠C++实现。

这些分别涉及到类方法定义,虚函数使用和意义,虚函数又涉及到继承的机制,所以 对于一些C语言开发者会成为阻力 。
其次是需要使用者对于FreeRTOS也要有一定的理解,该GUI需要基于FreeRTOS框架,所以工程需要为FreeRTOS,好在STM32CubeMX中也可以快速部署FreeRTOS,不过对于裸机开发者来说,这方面也需要额外学习。
最后是目前资料好像并不是很多,官方文档中的描述有些地方似乎不太好理解(例如文本区域),但是ST工程师在B站中也发布了一些视频教程,二者结合也能解决很多的问题,不过有时候这样子解决问题的效率并不是很高。
还有对于一些稍微旧点的芯片不能使用,例如STM32F103C8这些….,不过也正常这些芯片受限于性能和存储无法部署GUI库这点对于LVGL也一样,所以有时候会出现内存溢出的情况。


当然关于具体的问题,例如和LVGL二者在性能上的孰优孰劣以及非ST芯片是否可以方便的移植,这些在后续有时间会去尝试探究,这段时间先学习一下它的基本使用,并尝试在一些自制项目中引入该软件尝试。
不过综上所述这次的使用体验还是较为满意的。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容