嵌入式图形库开发绚丽界面(lvgl、emwin、awtk)

这篇具有很好参考价值的文章主要介绍了嵌入式图形库开发绚丽界面(lvgl、emwin、awtk)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        早些年的单片机开发中,很多都是使用文字菜单界面,这种界面让人感觉非常的朴实无华,内容言简意赅,如果使用图形库进行开发,你的产品一下子就让别人觉得有点高级,更容易去接收它。对于现在来说,很多的嵌入式图形库都可以做出绚丽的界面,占用RAM小,网上资料也多,学习难度不大。下面仅介绍几款常用的图形库。

1.  LVGL

LVGL官方链接

LVGL是我使用的第一款图形库,是免费开源的嵌入式图形库,可为任何 MCU、MPU 和显示器创建漂亮的 UI界面,现在它可以使用UI 编辑器SquareLine Studio来简化开发,这个编辑器我没有使用过,之前开发都是通过写C语言代码形式直接开发的。

代码可以直接到LVGL官方GitHub中提取,同时也提供了在线文档、Demo示例程序等,目前版本已经更新到了V8.3.4了。

lvgl界面编辑器,GUI,物联网,mcu

lvgl界面编辑器,GUI,物联网,mcu

1.1  特性

  • 强大的构建块,例如按钮、图表、列表、滑块、图像等。

  • 具有动画、抗锯齿、不透明度、平滑滚动的高级图形

  • 各种输入设备,如触摸板、鼠标、键盘、编码器等。

  • 使用 UTF-8 编码的多语言支持

  • 多显示器支持,即同时使用多个TFT、单色显示器

  • 具有类 CSS 样式的完全可定制的图形元素

  • 独立于硬件:与任何微控制器或显示器一起使用

  • 支持操作系统、外部存储器和 GPU,但不是必需的

  • 单帧缓冲操作,即使具有高级图形效果

  • 用 C 编写以获得最大兼容性(C++ 兼容)

1.2  硬件要求

绝大多数MCU都能满足要求。

  • 16、32 或 64 位微控制器或处理器
  • 推荐 大于16 MHz 时钟速度
  • 闪存/ROM:> 64 kB 用于非常重要的组件(建议 > 180 kB)
  • 内存:
    • 静态 RAM 使用:~2 kB,具体取决于使用的功能和对象类型
    • 堆栈:> 2kB(建议> 8 kB)
    • 动态数据(堆):> 4 KB(如果使用多个对象,建议> 48 kB)。由lv_conf.h中的LV_MEM_SIZE设置。
    • 显示缓冲区:> “水平分辨率”像素(推荐>10× “水平分辨率”

1.3 移植

lvgl移植到嵌入式项目中也比较简单,首先下载好源码、调好LCD的显示驱动程序(画点函数那些),画图函数与lvgl显示接口衔接上即可,stm32中有提供DMA2D优化显示驱动,lvgl也支持触摸屏触摸,有相应的接口,另外还需要提供时钟给lvgl(提供心跳,使其保持响应)。

LVGL移植教程,跟着教程走,一路九十九。

1.4  模拟器

LVGL可以使用模拟器在Windows/Linux/MacOS下运行,这可以大大加快你的开发进程,调试也很方便,Sim源码(它有别于嵌入式源码)可以到GitHub中下载,需要用到SDL库。

模拟器搭建教程

1.5 其它

LVGL还提供了图形、文字转换工具等.......

2. emwin

emWin是Segger公司针对嵌入式平台开发的稳定、高效的图形软件库,适合用于任何图形LCD的操作应用,并可输出高质量的无锯齿的文字和图形。它是不开源的,只提供调用库。

SEGGER 公司授权给 ST、NXP,Energy Micro 等,凡是使用这些芯片厂商生产的处理器的都可以免费使用 emWin。ST芯片的emwin叫STemWin,STemWin 针对 ST 的芯片做了优化。

emwin官方下载链接,有各种工具下载,也提供了各种Demo示例程序。

lvgl界面编辑器,GUI,物联网,mcu

lvgl界面编辑器,GUI,物联网,mcu

2.1  可视化工具AppWizard

可视化工具可以大大加快开发,可以实时的查看制造的UI界面,便于细微的调整。

英文版使用教程,中文版的教程有很多,例如安富莱的emwin教程、正点原子的emwin视频教程,入门相对简单,熟悉了控件功能、函数接口后就能得心应手设计界面了。

lvgl界面编辑器,GUI,物联网,mcu

2.2  模拟器的使用

目前官网提供的最新sim版本是V6.30,下载之后使用VS打开,直接在PC上运行模拟器示例(有些VS的版本过高,编译例程会报错,配置下链接器即可)。

lvgl界面编辑器,GUI,物联网,mcu

lvgl界面编辑器,GUI,物联网,mcu

lvgl界面编辑器,GUI,物联网,mcu

3.  AWTK

AWTK开发指南

源码下载

AWTK意为Toolkit AnyWhere,顾名思义就是一个可以在任何地方开发的工具集,是一个开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。

AWTK本身是用 C 语言开发的,上层界面开发目前支持C/JS;它性能高、内存开销小,无需学习 AWTK 控件本身的 API,而且有很多的示例代码直接用。

3.1  AWTK Designer可视化软件

软件下载地址

需要注册后才能下载使用,流程参考链接。

lvgl界面编辑器,GUI,物联网,mcu

不再需要手写 XML,拖拽方式设计界面,所见即所得,快速预览,一键打包资源。使用教程

lvgl界面编辑器,GUI,物联网,mcu

3.2  例程展示

 在AWStudio中,有几个例程可供下载编译,以下展示手表UI;

智能手表展示链接(可以滑动点击操作)

lvgl界面编辑器,GUI,物联网,mcu

lvgl界面编辑器,GUI,物联网,mcu

4. 其它GUI

为什么叫其它GUI呢?因为我对此没有过多的了解过,只是对其进行归纳总结,用的时候方便查询。

4.1  QT for MCU

QT我们都知道,使用C++开发,重在理解信号与槽,可以发出出一款在PC上运行的软件,例如串口调试软件等。QT for MCU,是一个可以在嵌入式MCU上跑的QT UI。

QT for MCU开发指导链接

lvgl界面编辑器,GUI,物联网,mcu

4.2  GUIX

Azure RTOS GUIX (GUIX) 是图形界面框架的一种高性能实时实现,专用于基于 ThreadX 的嵌入式应用程序,可立即移植到几乎任何具有 ANSI C 编译器和 ThreadX 支持的处理器体系结构。入门指导链接

4.3  柿饼UI

柿饼UI(Persimmon UI)是RT-Thread一款专注于嵌入式领域,由C/C++语言构建,为用户提供类安卓效果的GUI解决方案。为用户提供了设计器+JavaScript语言的开发模式,用户只需拖拽UI控件,写一些简单的JS控制逻辑,就可以实现绚丽、复杂的UI效果。相对于传统纯C语言开发模式的GUI,柿饼UI可以极大的提高开发效率,降低代码调试难度,加快产品迭代速度。

与非网视频教程

b站教程

总结

嵌入式中有很多种GUI可供选择,因地制宜选择合适的一款进行开发,了解使用过其中一两款后,其它的GUI就很容易入门了,只是API接口不同而已,而且很多都是可以使用可视化软件开发的,缩短开发时长的同时也更利于初学者入门。

如果阅读这篇文章后,有给你带来一定的帮助,就麻烦点个小小的赞吧,这会是我持续更新的动力,谢谢~

                                                                                                         //一个苟且在技术区的博主.文章来源地址https://www.toymoban.com/news/detail-822262.html

到了这里,关于嵌入式图形库开发绚丽界面(lvgl、emwin、awtk)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL

    最近emwin用的比较烦躁,同时被LVGL酷炫的界面吸引到了,所以准备换用LVGL试试水。 LVGL(轻量级和通用图形库)是一个免费和开源的图形库,它提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素,美丽的视觉效果和低内存占用。 丰富且强大的模块化图形组件:按钮 (b

    2024年02月02日
    浏览(72)
  • 嵌入式Linux下LVGL的移植与配置

    ​​​​​​ https://github.com/lvgl/lvgl git下载方式 git clone https://github.com/lvgl/lvgl.git 链接:https://pan.baidu.com/s/1jyqIennsQpv-RB4RyKvZyg?pwd=c68e  提取码:c68e 注意: 以下的配置均基于个人移植的sdk上修改. 解压sdk源码后修改Makefile文件,修改如下 直接修改编译器(编译器需要添加进系统的

    2024年02月13日
    浏览(61)
  • 嵌入式 QT 界面布局管理

    目录 1、实例程序功能 2、界面组件布局 2.1 界面组件的层次关系 2.2 布局管理 2.3 伙伴关系和Tab顺序       创建一个 Widget Application 项目 samp2_2, 在创建窗体时选择基类 QDialog ,生成的类命名为 QWDialog ,并选择生成窗体。     如 此 新建 的项 目 samp2_2 有一 个界 面文 件 qwdi

    2024年02月04日
    浏览(55)
  • 【嵌入式】使用MultiButton开源库驱动按键并控制多级界面切换

    目录 一 背景说明 二 参考资料 三 MultiButton开源库移植 四 设计实现--驱动按键 五 设计实现--界面处理         需要做一个 通过不同按键控制多级界面切换以及界面动作 的程序。         查阅相关资料,发现网上大多数的应用都比较繁琐,且对于多级界面的切换逻辑可读

    2024年02月07日
    浏览(60)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(70)
  • 适合嵌入式开发的GUI(嵌入式学习)

    嵌入式开发中的GUI(图形用户界面)是指在嵌入式系统中实现图形化的用户界面,以便用户可以通过触摸屏、按钮、鼠标或其他输入设备与系统进行交互。 以下是一些常见的嵌入式GUI开发方法: 轻量级GUI库:一些轻量级的GUI库适用于嵌入式系统,例如uGFX、LittlevGL、Nanogui等。

    2024年02月09日
    浏览(69)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(80)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(57)
  • rust嵌入式开发

    最近终于打通了rust嵌入式,值得庆贺!在折腾的过程中发现相关的资料不说少,但合用的太少,所以做个总结,希望能帮到有需要的兄弟。 在这个回答中我说了一下为什么想要启用rust嵌入式,不过当时还是有点低估了rust本身的门槛:( 环境 开发环境很简单:vscode+插件Cortex

    2024年01月25日
    浏览(47)
  • 【嵌入式开发】开发板设置系统时间

    时钟包括硬件时钟和系统时钟,系统时钟就是linux系统显示的时间,用命令 date 可以显示当前系统时间;硬件时钟就是硬件自身的时间了。它们两者没有关系的,但是可以通过命令设置系统时钟和硬件设置,让它们同步。 Linux系统ARM架构开发板、Xshell软件 date 命令查看系统时

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包