Zephyr LVGL 应用开发教程
  m9kCQSVmQX0i 2023年11月02日 52 0

Zephyr RTOS 原生支持了丰富的第三方库,这也是很多人和厂商选择Zephyr的原因。开源轻量级框架LVGL就是其中一个较为人熟知的第三方库,它可以让嵌入式设备也拥有可以媲美手机的UI界面。


什么是LVGL?

LVGL全称Light and Versatile Graphics Library,是一个开源的GUI库,具备资源消耗小、可移植度高的特点,因此很适合在嵌入式设备上使用。

作为一个图形库,LVGL也自带了丰富的GUI控件可以供开发者直接使用,如常用的按钮,图表,列表,滑块等,此外还支持多种图形动画的调用,相比传统驱屏绘制GUI,开发者不需要大量的代码编写量和反复的效果验证,就可以搭建出一个比较满意的GUI应用。


LVGL的一些关键概念

在开始使用LVGL前,我们需要简单了解以下LVGL一些比较重要的概念,方便对后续学习过程中的理解。

Display:在LVGL中一个物理显示器对应一个显示器驱动,LVGL支持多个物理显示器。

Screen:一个Display创建多个Screen,可以理解为页面,Screen上可以添加各种LVGL支持的组件。

Object:object是LVGL构建GUI的基本单位,每个控件都属于Object,上面的Screen(页面)也是一个Object。


快速上手与讲解

手头的实验平台是 CSK6开发套件,目前CSK6芯片的SDK已经支持LVGL的使用,版本为LVGL8。


简单按钮例程的运行

在完成CSK6芯片的开发环境安装

在终端执行以下指令获取sample:

lisa zep create


Sample所在路径:

boards → csk6 → subsys → display → lvgl → SimpleShow

Zephyr LVGL 应用开发教程_UI开发


编译:

lisa zep build –b csk6011a_nano


烧录:

lisa zep flash


运行效果:

Zephyr LVGL 应用开发教程_RTOS开发_02


Simple Show 工程解析

工程目录下的 prj.conf 文件保存着这个项目相关的配置:

Zephyr LVGL 应用开发教程_UI开发_03


overlay 文件则是设备树文件,定义了硬件相关的信息,包括对屏幕驱动ST7789V、触摸驱动FT5336,以及使用到的I2C接口、SPI接口的定义:

Zephyr LVGL 应用开发教程_LVGL_04


然后我们来看main.c文件

在main.c文件中,依次进行了以下的操作:

1.获取设备树的实例,也就是我们显示屏的实例

2.创建一个hello world的button的一个对象

3.然后去给button设置一个文字“hello world”,对齐方式为align center

4.创建一个count label,用来显示我们的计数器

5.在计数器的循环里面不断的去计数

6.更新显示


更详细的代码说明可见 LVGL例程与API讲解


LVGL官方提供的其他例程

LVGL也提供了其他丰富的例程,可以通过跑这些例程,查看工程源码,了解更多的LVGL用法。

这些例程也已经上传到LSCloud中,感兴趣的伙伴可以拉取代码:

git clone git@cloud.listenai.com:listenai_xqqin/lvgl_demo.git

Zephyr LVGL 应用开发教程_开发教程_05


LVGL基础开发

功能1:LVGL显示文字

Zephyr LVGL 应用开发教程_Zephyr_06


功能2:LVGL显示图片

Zephyr LVGL 应用开发教程_UI开发_07


功能3:LVGL显示动图

Zephyr LVGL 应用开发教程_UI开发_08


获取更高阶的示例项目:

使用LVGL在屏幕上显示头肩检测&手势识别结果的项目源码已上传,可点击查看,使用的仓库分支为 feature/lvgl。

在安装lisa开发工具后可通过在命令行执行以下命令拉取代码:

lisa zep create --from-git https://cloud.listenai.com/zephyr/applications/app_algo_hsd_sample_for_csk6.git


更多进阶用法

除了以上基础用法,我们还可以使用LVGL开发一些大动图、页面切换等完整度更高的UI界面,感兴趣的同学可以评论区回复索取教程视频。

本课程由聆思科技资深解决方案专家覃晓庆讲解,涉及内容有

  • 如何在 Zephyr 上进行高效开发高品质UI
  • LVGL 是什么,有什么先进特性
  • LVGL 的基础概念
  • 如何基于 CSK6 AI 芯片,通过 LVGL 开发有趣实用的应用。

更多学习资源

如果需要获取更多与本教程相关的学习资源(如LVGL性能优化、刷新帧率提升教程、使用所用硬件平台等), 或者了解更多与嵌入式开发、AI芯片相关的其他课程,可以点击查看目录导航


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
m9kCQSVmQX0i
最新推荐 更多