分享6款嵌入式常见的GUI,不要错过

大家好,我是知微

先来聊聊什么是GUI。图形用户界面(Graphical User Interface,简称 GUI)采用直观的图形方式展示,让用户与计算机或设备交流变得简单直观。不仅工作效率得到极大提升,用户体验也因此大幅度增加。

在嵌入式系统中,GUI工具和库扮演着至关重要的角色。它们赋予开发者创造互动且魅力四射的图形界面的能力,深入人心。无论是消费电子,工业控制,还是医疗设备等领域,优质的嵌入式GUI都是不可或缺的。

那么在我们的开发过程中,都有哪些值得关注的GUI框架呢?

一、LVGL

LVGL(Light and Versatile Graphics Library)是一个轻量级的嵌入式图形库,由匈牙利首都布达佩斯的Gábor Kiss-Vámosi创建。自2016年Kiss在GitHub上发布LittlevGL(后更名为LVGL)以来,这个项目吸引了近100名贡献者,迅速发展成为最受欢迎的嵌入式图形库之一。LVGL采用MIT许可,允许自由使用于商业项目中。

作为一个专为嵌入式系统设计的图形用户界面库,LVGL以C语言编写,具备出色的可移植性和灵活性,能适应各种微控制器和操作系统。它提供了丰富的控件和布局选项,让开发者能够轻松构建多样化的图形界面。同时,LVGL还支持触摸屏、按键等多种输入设备,实现用户交互功能。

由于LVGL的轻量级特性,它在资源有限的嵌入式系统中表现出色,为开发者提供了一种高效、便捷的图形界面开发方案。无论是智能家居、工业控制还是物联网应用,LVGL都能成为您的理想选择。

官方地址

https://lvgl.io/

百问网LVGL中文站点

http://lvgl.100ask.net

LVGL是采用面向对象的思想编写,并借鉴CSS盒模型进行设计,使得开发者能够高效、直观地创建和定制图形界面。

二、Qt

Qt是个跨平台的C++应用程序开发框架,被广泛应用于GUI应用程序的开发,也可开发非GUI程序,如服务器或控制台工具。它拥有丰富的库和模块,且在多个操作系统上均有支持。

在嵌入式领域,Qt在需要GUI的嵌入式设备上得到广泛应用,提供了如Qt for Embedded Linux和Qt for MCUs等适用于嵌入式应用程序的产品,使得其在资源有限的设备上也能创造出引人注目,反应迅速的用户界面。Qt在嵌入式领域的运用,极大地提升了用户界面的现代化和功能性。

官方网址

https://www.qt.io/

三、SimpleGUI

SimpleGUI是专为单色显示屏打造的界面库。

相对于传统GUI框架,SimpleGUI省去了心跳、绘图缓冲及图层等概念。该库仅提供多样化的绘图接口和由这些接口生成的更复杂的图形组件,旨在减轻对系统资源的总体要求。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

码云托管链接

https://gitee.com/Polarix/simplegui

SimpleGUI提供了一个单色显示屏的模拟器以方便开发者进行基于SimpleGUI的开发

四、MiniGUI

MiniGUI旨在提供快速、稳定、功能齐全、跨平台的窗口和GUI支持系统,特别适合基于 Linux/uClinux、eCos 和其他传统 RTOS(如 RT-Thread、RTEMS、FreeRTOS、VxWorks、ThreadX、Nucleus、pSOS、uC/OS-II 和 OSE)的嵌入式系统或智能物联网设备。

官网地址

https://minigui.fmsoft.cn/zh

MiniGUI 的优点

  • 支持多个嵌入式操作系统,具有良好的可移植性。
  • 功能丰富,可灵活定制,适用于基于 CPU 主频 30MHz 的低端产品以及高端产品
  • 重量轻,资源消耗低,MiniGUI 库的大小可以减少到大约 500KB 或更小
  • 可配置,与 Linux 内核一样,MiniGUI 有许多编译配置选项

需要注意的是,MiniGUI 不免费用于商业用途

五、emWin

emWin是由Segger Microcontroller Systems 公司研发的一款功能强大的嵌入式图形用户界面(GUI)库。它广泛应用于各个领域,从医疗监控设备的心率信息显示到工业控制设备的生产过程参数控制与展示,emWin都能轻松胜任。

官网地址

https://www.segger.com/products/user-interface/emwin/

该GUI库特别提供了窗口管理器功能,支持开发者创建多窗口应用程序。每一个窗口不仅可以展示简单的文本或图像,还可以配置成复杂而精美的控件,以满足从基础到高级的各种需求。

emWin可在单任务及多任务环境下运行,既可以搭配专用操作系统使用,也能与任何商业的实时操作系统(RTOS)兼容,展现出极佳的灵活性和兼容性。

拓展:emWin和STemWin、μC/GUI的关系

其实,STemWin和μCGUI都是由emWin发展而来。它们的关系就像是同一个树上的两个枝叶,这里就不再过多介绍了!

六、TouchGFX

TouchGFX作为一款高效的图形用户界面开发工具,它已集成到STM32Cube生态系统中,专门针对STM32微控制器系列开发GUI。

它提供了一种易于操作的界面设计方法,支持实时仿真和简单的拖拽功能来创建用户界面,能高效生成STM32的工程代码。TouchGFX内置了多种控件类,生成的代码结合了固件库和GUI的C++代码,以便于开发者使用。

此外,TouchGFX有着内存优化特性,支持6位色深显示,减少RAM需求,并支持不同的压缩格式以缩减Flash使用和提高刷新率。它适用于所有STM32系列微控制器,包括带有Cortex M0+内核的产品,是构建美观、高效GUI的重要工具。

以上就是分享的全部内容了!

📢你的每一次👍点赞 ⭐收藏 📝评论,都是我更新的动力,如有错误请留言指正,非常感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通人也可以在抖音上开店卖货了,还有多少人不知道!

大家好,我是电商糖果 在抖音上开网店卖货最近几年特别火,我想只要是稍微了解电商创业的朋友都知道。 就当你没有创业做电商的想法,你只要有网购的习惯,就会发现抖音上购买商品非常的方便。 而且身边的同事,朋友也都…

全新G级越野车家族领衔 梅赛德斯-奔驰携强劲实力阵容和前瞻数字科技亮相2024北京车展

全新纯电G级越野车、G 500和AMG G 63亮相,油电双雄带来G级越野车的多元选择CLA级概念车携MMA平台及MB.OS构建奔驰电动化、数字化的未来,定义新生代电动风潮全新AMG GT 63 S E PERFORMANCE车展亮相,以F1技术打造“史上最快AMG量产车”“迈巴赫…

Vue2 —— 学习(十)

目录 一、vue-resource 库 二、插槽 (一)默认插槽 (二)具名插槽 (三)作用域插槽 三、vuex (一)介绍 (二)多组件共享数据 1.通过全局事件总线实现 2…

【virtuoso】 PDK

什么是PDK? PDK( Process Design Kit ),工程设计数据包,是芯片厂家foundary提供给IC设计公司的有关制造工艺的模型和EDA工具支持。是连接IC制造公司,IC设计公司的桥梁。 PDK包含内容: 器件模型 SPICE模型模型 与 测量误…

Nodejs--异步编程

异步编程 函数式编程 高阶函数 在通常的语言中,函数的参数只接受基本的数据类型或者是对象引用,返回值只能是基本数据类型和对象引用。 function foo(x) {return x }高阶函数是把函数作为参数,将函数作为返回值的函数 function foo(x) {…

最好的电脑监控软件,监控员工的软件哪个好用

经过对百度AI的询问,最好的电脑监控软件是安企神,因为它排名第一位。 经过对AI的详细询问,它给出了选择安企神作为电脑监控软件的十个理: 获取试用版找客服 1.全面的监控功能 安企神软件提供了屏幕监控、键盘记录、文件操作记录…

【Harmony3.1/4.0】笔记二-列表

概述 列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、…

抗D盾是什么,为什么游戏被攻击了需要抗D盾

游戏行业DDoS攻击的主要原因是因为游戏产品生命周期偏短,而DDoS供给成本又不高,只要发起攻击,企业为确保游戏稳定运营而不得不快速做出让步,致使敲诈勒索的成功率相对更高。在遭受DDoS攻击后,游戏公司的日损失甚至多达…

git远程分支强制覆盖本地分支

目录 第一章、问题1.1)报错提示:没有为分支主机或分支配置被跟踪的分支1.2)报错分析与解决 第二章、2.1)本地误删代码后想要git pull拉取覆盖:失败2.2)报错分析和解决 友情提醒: 先看文章目录,…

4.24总结

对部分代码进行了修改,将一些代码封装成方法,实现了头像功能,通过FileInputStream将本地的图片写入,再通过FileOutputStream拷贝到服务端的文件夹中,并将服务端的文件路径存入数据库中

Java——接口

目录 一.接口的概念 二.语法规则 三.接口使用 四.接口特性 1.接口类型是一种引用类型,但是不能直接new接口的对象 2.接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract(只能是 public abstract&#xff0c…

君正X2100 RTOS 固件升级

使用cloner工具烧写固件需要在上电之前让boot_sel[2:0]处于boot from USB模式,但是电路板装在机壳内部后不方便改变boot_sel[2:0]的状态,如果要升级固件,需要通过机壳留出的USB口、网口、或者无线网络进行固件更新。 一、升级方案 1、固件分…

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台&…

Postman 工具发送请求的技巧与实践

在开发和测试 API 时,发送 JSON 格式的请求是一个常见需求。 在 Postman 中构建和发送 JSON 请求 创建一个新的请求 首先,在 Postman 启动界面上找到并点击 “New” 按钮,选择 “HTTP Request” 来开始新建一个请求。这一步骤允许你定义请…

指针学习总结

当指针本身定义的类型不同十,指向的一次性取值长度也不同 数组元素的指针 数组存放字符串 数组存放字符串时存放在栈区,sizeof(str1) 128字节 字符指针指向字符串 str2此时存放的是h的地址,因此sizeof(str2) 4字节或者8字节 并且文字常量…

递归算法/斐波那契数列

目录 递归 直接递归 间接递归 思想沿用 斐波那契数列 图片来源网络,侵权联系可删 递归 递归(Recursion)是一种编程技术,其中函数或方法直接或间接地调用自身。递归通常用于解决可以分解为更小、更简单的子问题的问题。递归的…

一文速览Llama 3及其微调:如何通过paper-review数据集微调Llama3 8B

前言 4.19日凌晨正准备睡觉时,突然审稿项目组的文弱同学说:Meta发布Llama 3系列大语言模型了 一查,还真是 本文以大模型开发者的视角,基于Meta官方博客的介绍:Introducing Meta Llama 3: The most capable openly a…

linux 系统文件目录颜色及特殊权限对应的颜色

什么决定文件目录的颜色和背景? 颜色 说明 栗子 权限白色表示普通文件 蓝色表示目录 绿色表示可执行文件 浅蓝色链接文件 黄色表示设备文件 红色 表示压缩文件 红色闪烁表示链接的文件有问题 灰色 表示其它文件 可以用字符表示文件的类型&am…

Netty快速入门

网络通信模型 在了解Netty之前,我们可以简单的先了解一下我们的网络通信方式,正所谓知其然,知其所以然。只有了解了网络通信模型,我们才能更好的去理解Netty的一些核心的原理。 如下图是一个简单的请求发送的时候的一个大概的HTT…

【Linux】GDB调试器学起来!指令全解,建议收藏

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …