本设计是在 HMI-Board 开发板上运行的 LVGL 音乐播放器 Demo。基于 RT-Thread 操作系统,支持 RT-Thread Studio/MDK5 软件开发环境。HMI-Board 中控芯片为 RA6M3,支持 2D加速、JPEG 编解码、2M Flash 大容量存储控件,助力用户开发炫酷的图形应用。本参考设计默认运行的是 LVGL 音乐播放器,拥有绚丽的音乐播放界面,并且,通过主界面的播放/暂停、上一首/下一首按钮控件,可以对音乐播放器进行播放控制。用户可以凭借此参考设计评估 RA6M3 芯片的图形性能。
本文档包括技术架构、使用说明、资料及文档三部分内容,通过阅读理解本篇内容,可在此参考设计基础上进行二次开发。
HMI-Board-LVGL 开发框架包括系统层、框架层、应用层三个主要层级:
RT-Thread 是开源国产物联网操作系统,它是一个嵌入式实时多线程操作系统。它集成了大量的系统级基础组件,丰富的软件包,以及详尽的开发指导文档,具体包括:
除了系统层支持外,HMI-Board 还集成了多个出色的系统组件,其中 LVGL 作为多媒体组件加入到了本示例项目中。开发者只需要在 RT-Thread Studio/env 中使能 LVGL 软件包,并将其从服务器上拉取下来,便可以将 LVGL 以组件的形式加入到开发项目中。极大的简化了开发者手动将其加入项目中的步骤,提升效率。
应用层为用户在 LVGL 上进行 UI 的二次开发所使用的,用户可以已有/开发的 UI 代码写在 APP 层级。
音乐播放器 DEMO:
通过播放/暂停、上一首/下一首按钮控件,在触摸面板上可以对音乐播放器进行控制。通过上拉面板控件可以查看音乐列表。也可也在代码中修改手动播放为自动播放。
在 RT-Thread Studio 中可以选择基于示例工程创建 LVGL-Demo。工程创建成功后,进行编译烧录即可。
RT-Thread Studio 的安装使用说明:快速开始
图中为 LVGL 软件包在 RT-Thread 中的集成形式,用户可以通过图形化方式对 LVGL 进行配置:
本 SDK 可以从 studio 的 SDK 管理界面直接下载,并基于本 SDK 新建工程。
本 SDK 同时提供 MDK5 工程。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
编译下载
首先双击 mklinks.bat ,然后打开 env 执行 scons --target=mdk5
生成新的 mdk5 工程
注意:若电脑没管理员权限点击不了mklinks.bat,则需要手动将 sdk-bsp-ra6m3-hmi-board1目录下的 rt-thread 和 libraries 文件夹拷贝到当前工程目录下
编译:双击 project.uvprojx 文件,打开 MDK5 工程,编译程序。(注意 AC6 版本可选 6.14、6.16、6.19,勿选择 6.15 版本编译)
下载:点击 MDK 的 download/Debug 按钮进行下载调试
查看运行结果
下载程序成功之后,系统会自动运行并打印系统信息。
连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。
\ | /
- RT - Thread Operating System
/ | \ 5.0.0 build Jan 4 2023 10:14:56
2006 - 2022 Copyright by RT-Thread team
Hello RT-Thread!
msh >
msh >help
help - RT-Thread shell help.
ps - List threads in the system.
free - Show the memory usage in the system.
clear - clear the terminal screen
version - show RT-Thread version information
list - list objects
msh >
应用入口函数
应用层的入口函数在 sdk-bsp-ra6m3-hmi-board\projects\hmi-board-lvgl\src\hal_entry.c 中 的 void hal_entry(void)
。用户编写的源文件可直接放在 src 目录下。
void hal_entry(void)
{
rt_kprintf("\nHello RT-Thread!\n");
while (1)
{
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
}
在使用过程中若您有任何的想法和建议,建议您通过以下方式来联系到我们 RT-Thread 社区论坛
这是 HMI-Board 的 SDK 仓库地址:sdk-bsp-ra6m3-hmi-board,该仓库包括了外设驱动以及丰富的示例工程,如果像体验官网/社区提供的开源示例请转移到该仓库进行开发。RT-Thread 主仓库只维护最新的驱动相关代码。
如果您对 RA6M3-HMI-Board 感兴趣,并且有一些好玩的项目愿意与大家分享的话欢迎给我们贡献代码,您可以参考 如何向 RT-Thread 代码贡献。
用户如果希望自行移植 LVGL,可以在 RT-Thread 文档中心查看移植相关文档和视频教程:
如要进行 LVGL UI 开发可以前往 LVGL 官网以及文档中心获取详细资料:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。