一、简介。
在单片机上实现图形界面,最简单的方法是使用串口屏,但是在体积有限的手持机应用中,串口屏显得有点笨重了,而且板子往往不能适应需求,订做串口屏成本又太高。
这就需要使用GUI框架来完成图形界面。在单片机领域的GUI框架有:ucgui(STemWin/emwin)、TouchGFX、GuiLite、LittlevGL等。
emwin提供的更多是一些较底层的函数(如:画线、画圆),而且不能拖控件,做出来的界面更接近像素时代的产物。
在emwin的开发中,要想显示图片,需要把图片转成bmp格式,再用BmpCvt转成数组,最后才用emwin的函数去调用这个数组,这是比较麻烦的。
TouchGFX都可以很好的解决这些问题,但是只能用于STM32的单片机上。
TouchGFX还支持直接生成MDK/IAR工程,目前只支持以下平台。
初学者建议先在移植好的平台下学习TouchGFX,再去研究移植TouchGFX。
二、TouchGFX的开发流程。
使用CubeMX安装TouchGFX组件并启动它,生成工程。
在工程目录下有TouchGFX Designer的工程(.touchgfx文件),使用TouchGFX Designer打开该工程。
根据需求修改界面,点击生成代码。
最后回到MDK/IAR中,编译并下载代码到单片机中运行。
由于TouchGFX是用C++编写的,这就导致整个MDK/IAR工程中是C和C++混合编程,这无疑会增加开发难度。
三、TouchGFX Designer。
emwin需要使用VS仿真,而TouchGFX有专门的开发环境:TouchGFX Designer。
使用TouchGFX Designer,可以直接放入图片到工程中(目前只支持png格式),无需转成数组。
此外,TouchGFX Designer还支持很多控件,如下图所示,可以直接拖到工程中。
不定期更新。。。
四、参考资料。
1、STM32 Graphical User Interface。
2、TouchGFX官网。