在单片机领域的GUI框架有:ucgui(STemWin/emwin)、TouchGFX、GuiLite、LittlevGL等。
emwin提供的更多是一些较底层的函数(如:画线、画圆),而且不能拖控件,做出来的界面更接近像素时代的产物。在emwin的开发中,要想显示图片,需要把图片转成bmp格式,再用BmpCvt转成数组,最后才用emwin的函数去调用这个数组,这是比较麻烦的。
STemWin是SEGGER公司授权给ST(意法半导体)的。使用ST芯片的用户可以免费使用STemWin。其实不光授权给了ST,还有NXP,Energy Micro等。凡是使用这些芯片厂商生产的处理器都可以免费的使用emWin。但是出于一定的保护措施,使用STemWin的库是不能用在其它芯片厂商的处理器上面的。因为在工程初始化STemWin前要使能CRC校验。如果没有使能,STemWin是启动不起来的。KEIL MDK的安装目录里面也带有emWin软件包,这个软件包也不是可以直接使用的,用户需要给KEIL MDK注册RL-ARM才可以使用。 这里STemWin还针对ST的微控制器做了专门的优化,比如在使用ST的F4XX微控制器带FPU的芯片时,STemWin在需要浮点处理的地方专门做了优化。
======================================================================================================================== TouchGFX都可以很好的解决这些问题,但是只能用于STM32的单片机上。TouchGFX还支持直接生成MDK/IAR工程,目前只支持以下平台 TouchGFX支持STM32F429, STM32F439,STM32F469,STM32F746,STM32L496,STM32L4R9,STM32H743,即支持LCD-TFT, MIPI-DSI,Parallel IF ? ? ?“TouchGFX目前支持 stm32f429,439,469以及 stm32f7系列(其他厂商的芯片也有,基本原则是要集成有 lcd控制器)” ? ? ?TouchGFX让用户界面代码只占用10KB的 SRAM空间和20KB的闪存空间的C ++软件框架。有无操作系统均可 ?
|