【目标】
瑞萨RA8D1 LVGL移植,设计基础界面
【开发环境】
win11
【硬件】
1、CPKCOR-RA8D1B核心板
2、拓展板(CPKEXP-EKRA8X1)
3、ST7796 SPI屏
【开发工具】
1、keil+fsp
【工程准备】
准备一个基于ra8d1的lvgl空白工程。
【界面制作】
使用开源的guiguider制作自定义界面

【代码移植】
1、生成代码后,复制coustom与generated两个文件到工程中。

2、把上面的两个文件夹添加进工程中。
3、在编译时这个版本会提示找不到v_imgbtn 和 lv_keyboard。这时需要到官网的源代码中找到这两个文件,将他复制进\AppData\Local\Arm\Packs\LVGL\lvgl\8.3.10\src\widgets目录里。然后手工添加进工程中。添加好后的目录如下:

【注】在编译中,还会提示一些头文件的引用路径不对,需要自己重新定义头文件的路径。
3、在hal_enty.c中添加对应头文件的引用,并添加初始化代码:
#include "hal_data.h"
#include "st7796.h"
#include "lvgl.h"
#include "events_init.h"
#include "gui_guider.h"
lv_ui guider_ui;
/*******************************************************************************************************************//**
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
* is called by main() when no RTOS is used.
**********************************************************************************************************************/
void hal_entry(void)
{
/* LED type structure */
st7796_init();
st7796_fill_screen(BLUE);
lv_init();
lv_port_disp_init();
setup_ui(&guider_ui);
events_init(&guider_ui);
while (1)
{
lv_timer_handler();
R_BSP_SoftwareDelay(100u, BSP_DELAY_UNITS_MICROSECONDS);
}
}【移植效果】
下载后成果如下图所示:

【总结】
结合guiguider的开源图形化的界面设计,可以高效的实现lvgl的实现。
我要赚赏金
