基于RT-thread版本4.1.0 对接LVGL8.3.11 音乐播放器例程 流畅不卡顿
前言
RT-thread 在使用过程中发现版本的变化对于开发者比较困惑,经常会因为版本问题导致软件包不兼容出现未知宕机,进入hardfault。
RT-thread对4.1.1以后的版本对接lvgl进行了优化。但尝试很多次发现经常出现音乐播放器例程出现hardfault的情况,故自己往前一个版本4.1.0进行移植。
*** 本次使用的硬件环境是ART-PI开发板,单片机stm32h750、RT-thread版本4.1.0 ***
其他开发板与屏幕同理,仅需要修改屏幕的尺寸和替换LCD驱动即可。
成果展示
- 目前看到最高可以到58FPS。
移植流程
添加lvgl 移植文件、修改Kconfig
- 添加lvgl的文件到applications.可以在移植模板请参见 正点原子 STM32L475 潘多拉 中找到。
- 修改kconfig,后就可以通过menuconfig进行选择
if BSP_USING_LVGL
config BSP_USING_LVGL_DEMO
bool "Enable LVGL demo"
default y
endif
menuconfig选择使用DEMO、 下载软件包
-
进入menuconfig 选择刚才添加的Enable LVGL demo
-
下载软件包
修改lv_config.h中的宏定义
#define LCD_W 480
#define LCD_H 320
#define LV_COLOR_DEPTH 32
#define LV_USE_PERF_MONITOR 1
#define LV_HOR_RES_MAX LCD_W
#define LV_VER_RES_MAX LCD_H
#define LV_DEMO_RTT_MUSIC_AUTO_PLAY_FOREVER 1
#define LV_USE_DEMO_RTT_MUSIC 1
#define LV_DEMO_RTT_MUSIC_AUTO_PLAY 1
#define LV_FONT_MONTSERRAT_12 1
#define LV_FONT_MONTSERRAT_16 1
#define LV_COLOR_SCREEN_TRANSP 1
*** 需要注意的是,LV_COLOR_DEPTH配置项的值分别对应1,8,16,32,分别代表的格式为:1 byte per pixel, RGB233, RGB565, ARGB8888。根据不同屏幕型号进行选择。***
最后一步添加例程代码入口函数
#include <lvgl.h>
void lv_user_gui_init(void)
{
/* display demo; you may replace with your LVGL application at here */
// extern void lv_demo_calendar(void);
// lv_demo_calendar();
extern void lv_demo_music(void);
lv_demo_music();
}
编译即可运行成功!
*** 如果有任何疑问或编译问题,可以下载工程源文件进行核对差异。***