Page 1 of 1

记录tuyaos_demo_quickstart 移植LVGL

Posted: 2025年 Jan 16日 12:01
by Robertz

1、下载LVGL库
官方下载链接GitHub: https://github.com/lvgl/lvgl.

2、将lvgl源码添加到例程中,例如:在src目录下创建一个lvgl文件夹,拷贝component.mk(可不要) lv_conf_template.h(需要重命名为lv_conf.h) lvgl.h lvgl.mk lvgl_private.h lv_version.h README.md src,在lvgl文件中创建一个porting文件夹作为屏幕驱动程序存放位置,目录结构参考附件图片1。

3、将新添加的文件添加到编译框架中。
按照lvgl官方文档教程,在local.mk文件中包含 lvgl.mk文件,将lvgl的源文件和头文件添加到编译框架中,参考图片2.

4、完成屏幕驱动适配
我这里使用ST7725S屏幕驱动芯片,lvgl源码的drivers文件夹中已经写好了一些屏幕IC的初始化程序,只需要根据自己的芯片硬件平台适配屏幕数据收发接口和硬件初始化接口,我这里是拷贝了源码中lvgl-master\lvgl-master\examples\porting 的
lv_port_lcd_stm32_template.c和lv_port_lcd_stm32_template.h放到了上面创建好的porting文件夹中。

lv_port_lcd_stm32_template.c需要根据自己的屏幕通过MY_DISP_HOR_RES和MY_DISP_VER_RES两个宏定义设置分辨率大小。另外还需要实现lv_port_disp_init();lcd_io_init();lcd_send_cmd();lcd_send_color();几个接口。
如果需要具体实现可以参考附件源码。

5、修改lvgl源码中的文件名称和打开必要的宏定义。
比如把把lv_conf.h文件#if 0 改成#if 1等...。这里不做赘述,网上教程很多,比如:https://blog.csdn.net/weixin_42111891/a ... /124989266
6、lvgl测试程序作为一个线程添加到主程序中。
在src文件中添加一个lvgl_test.c文件(TuyaOS/apps/tuyaos_demo_quickstart_lvgl/src/lvgl_test.c),运行LVGL需要初始化lv_init();和lv_port_disp_init();还需要定期调用lv_tick_inc ( x )或者通过调用lv_tick_set_cb ( my_get_milliseconds )为 LVGL 提供一个回调函数来检索系统已过去的毫秒数,以及在主程序while(1)循环中通过调用lv_task_handler()。


Re: 记录tuyaos_demo_quickstart 移植LVGL

Posted: 2025年 Jan 21日 17:19
by 愚者千虑必有一得

:D
非常专业,感谢!