资料准备
Release Release v9.1.0 · lvgl/lvgl · GitHub
硬件平台:stm32f103rct6
屏幕:保凯中景园1.69寸lcd显示屏240x280 st7789驱动串口ips液晶屏
1.准备一个lcd可以点亮的工程
2.向工程复制源码并添加到工程中
复制源代码在工程目录
2.1分组如下
这里有一个核心的接口文件lv_port_disp_template.c
,在后边的移植过程中需要修改此文件
快捷添加分组和文件
在之前添加过的工程中复制如下内容,粘贴在如下图中位置
<Group>
<GroupName>Middlewares/lvgl/src/core</GroupName>
<Files>
<File>
<FileName>lv_disp.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_disp.c</FilePath>
</File>
<File>
<FileName>lv_event.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_event.c</FilePath>
</File>
<File>
<FileName>lv_group.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_group.c</FilePath>
</File>
<File>
<FileName>lv_indev.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_indev.c</FilePath>
</File>
<File>
<FileName>lv_indev_scroll.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_indev_scroll.c</FilePath>
</File>
<File>
<FileName>lv_obj.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj.c</FilePath>
</File>
<File>
<FileName>lv_obj_class.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_class.c</FilePath>
</File>
<File>
<FileName>lv_obj_draw.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_draw.c</FilePath>
</File>
<File>
<FileName>lv_obj_pos.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_pos.c</FilePath>
</File>
<File>
<FileName>lv_obj_scroll.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_scroll.c</FilePath>
</File>
<File>
<FileName>lv_obj_style.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_style.c</FilePath>
</File>
<File>
<FileName>lv_obj_style_gen.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_style_gen.c</FilePath>
</File>
<File>
<FileName>lv_obj_tree.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_obj_tree.c</FilePath>
</File>
<File>
<FileName>lv_refr.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_refr.c</FilePath>
</File>
<File>
<FileName>lv_theme.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\core\lv_theme.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/draw</GroupName>
<Files>
<File>
<FileName>lv_draw.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw.c</FilePath>
</File>
<File>
<FileName>lv_draw_arc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_arc.c</FilePath>
</File>
<File>
<FileName>lv_draw_img.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_img.c</FilePath>
</File>
<File>
<FileName>lv_draw_label.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_label.c</FilePath>
</File>
<File>
<FileName>lv_draw_line.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_line.c</FilePath>
</File>
<File>
<FileName>lv_draw_mask.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_mask.c</FilePath>
</File>
<File>
<FileName>lv_draw_rect.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_rect.c</FilePath>
</File>
<File>
<FileName>lv_draw_triangle.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_draw_triangle.c</FilePath>
</File>
<File>
<FileName>lv_img_buf.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_img_buf.c</FilePath>
</File>
<File>
<FileName>lv_img_cache.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_img_cache.c</FilePath>
</File>
<File>
<FileName>lv_img_decoder.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\lv_img_decoder.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_arc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_arc.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_blend.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_blend.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_dither.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_dither.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_gradient.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_gradient.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_img.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_img.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_letter.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_letter.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_line.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_line.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_polygon.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_polygon.c</FilePath>
</File>
<File>
<FileName>lv_draw_sw_rect.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sw\lv_draw_sw_rect.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/extra</GroupName>
<Files>
<File>
<FileName>lv_flex.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\layouts\flex\lv_flex.c</FilePath>
</File>
<File>
<FileName>lv_grid.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\layouts\grid\lv_grid.c</FilePath>
</File>
<File>
<FileName>lv_gridnav.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\others\gridnav\lv_gridnav.c</FilePath>
</File>
<File>
<FileName>lv_monkey.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\others\monkey\lv_monkey.c</FilePath>
</File>
<File>
<FileName>lv_snapshot.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\others\snapshot\lv_snapshot.c</FilePath>
</File>
<File>
<FileName>lv_theme_basic.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\themes\basic\lv_theme_basic.c</FilePath>
</File>
<File>
<FileName>lv_theme_default.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\themes\default\lv_theme_default.c</FilePath>
</File>
<File>
<FileName>lv_theme_mono.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\themes\mono\lv_theme_mono.c</FilePath>
</File>
<File>
<FileName>lv_animimg.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\animimg\lv_animimg.c</FilePath>
</File>
<File>
<FileName>lv_calendar.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\calendar\lv_calendar.c</FilePath>
</File>
<File>
<FileName>lv_calendar_header_arrow.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\calendar\lv_calendar_header_arrow.c</FilePath>
</File>
<File>
<FileName>lv_calendar_header_dropdown.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\calendar\lv_calendar_header_dropdown.c</FilePath>
</File>
<File>
<FileName>lv_chart.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\chart\lv_chart.c</FilePath>
</File>
<File>
<FileName>lv_colorwheel.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\colorwheel\lv_colorwheel.c</FilePath>
</File>
<File>
<FileName>lv_imgbtn.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\imgbtn\lv_imgbtn.c</FilePath>
</File>
<File>
<FileName>lv_keyboard.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\keyboard\lv_keyboard.c</FilePath>
</File>
<File>
<FileName>lv_led.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\led\lv_led.c</FilePath>
</File>
<File>
<FileName>lv_list.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\list\lv_list.c</FilePath>
</File>
<File>
<FileName>lv_menu.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\menu\lv_menu.c</FilePath>
</File>
<File>
<FileName>lv_meter.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\meter\lv_meter.c</FilePath>
</File>
<File>
<FileName>lv_msgbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\msgbox\lv_msgbox.c</FilePath>
</File>
<File>
<FileName>lv_spinbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\spinbox\lv_spinbox.c</FilePath>
</File>
<File>
<FileName>lv_span.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\span\lv_span.c</FilePath>
</File>
<File>
<FileName>lv_spinner.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\spinner\lv_spinner.c</FilePath>
</File>
<File>
<FileName>lv_tabview.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\tabview\lv_tabview.c</FilePath>
</File>
<File>
<FileName>lv_tileview.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\tileview\lv_tileview.c</FilePath>
</File>
<File>
<FileName>lv_win.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\widgets\win\lv_win.c</FilePath>
</File>
<File>
<FileName>lv_extra.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\extra\lv_extra.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/font</GroupName>
<Files>
<File>
<FileName>lv_font.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font.c</FilePath>
</File>
<File>
<FileName>lv_font_dejavu_16_persian_hebrew.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_dejavu_16_persian_hebrew.c</FilePath>
</File>
<File>
<FileName>lv_font_fmt_txt.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_fmt_txt.c</FilePath>
</File>
<File>
<FileName>lv_font_loader.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_loader.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_8.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_8.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_10.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_10.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_12.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_12.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_12_subpx.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_12_subpx.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_14.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_14.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_16.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_16.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_18.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_18.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_20.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_20.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_22.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_22.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_24.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_24.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_26.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_26.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_28.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_28.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_28_compressed.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_28_compressed.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_30.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_30.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_32.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_32.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_34.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_34.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_36.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_36.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_38.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_38.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_40.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_40.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_42.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_42.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_44.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_44.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_46.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_46.c</FilePath>
</File>
<File>
<FileName>lv_font_montserrat_48.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_montserrat_48.c</FilePath>
</File>
<File>
<FileName>lv_font_simsun_16_cjk.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_simsun_16_cjk.c</FilePath>
</File>
<File>
<FileName>lv_font_unscii_8.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_unscii_8.c</FilePath>
</File>
<File>
<FileName>lv_font_unscii_16.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\font\lv_font_unscii_16.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/gpu</GroupName>
<Files>
<File>
<FileName>lv_gpu_stm32_dma2d.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\stm32_dma2d\lv_gpu_stm32_dma2d.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_arc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_arc.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_bg.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_bg.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_composite.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_composite.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_img.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_img.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_label.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_label.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_line.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_line.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_mask.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_mask.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_polygon.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_polygon.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_rect.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_rect.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_stack_blur.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_stack_blur.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_texture_cache.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_texture_cache.c</FilePath>
</File>
<File>
<FileName>lv_draw_sdl_utils.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\draw\sdl\lv_draw_sdl_utils.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/hal</GroupName>
<Files>
<File>
<FileName>lv_hal_disp.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\hal\lv_hal_disp.c</FilePath>
</File>
<File>
<FileName>lv_hal_indev.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\hal\lv_hal_indev.c</FilePath>
</File>
<File>
<FileName>lv_hal_tick.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\hal\lv_hal_tick.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/misc</GroupName>
<Files>
<File>
<FileName>lv_anim.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_anim.c</FilePath>
</File>
<File>
<FileName>lv_anim_timeline.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_anim_timeline.c</FilePath>
</File>
<File>
<FileName>lv_area.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_area.c</FilePath>
</File>
<File>
<FileName>lv_async.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_async.c</FilePath>
</File>
<File>
<FileName>lv_bidi.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_bidi.c</FilePath>
</File>
<File>
<FileName>lv_color.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_color.c</FilePath>
</File>
<File>
<FileName>lv_fs.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_fs.c</FilePath>
</File>
<File>
<FileName>lv_gc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_gc.c</FilePath>
</File>
<File>
<FileName>lv_ll.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_ll.c</FilePath>
</File>
<File>
<FileName>lv_log.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_log.c</FilePath>
</File>
<File>
<FileName>lv_lru.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_lru.c</FilePath>
</File>
<File>
<FileName>lv_math.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_math.c</FilePath>
</File>
<File>
<FileName>lv_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_mem.c</FilePath>
</File>
<File>
<FileName>lv_printf.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_printf.c</FilePath>
</File>
<File>
<FileName>lv_style.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_style.c</FilePath>
</File>
<File>
<FileName>lv_style_gen.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_style_gen.c</FilePath>
</File>
<File>
<FileName>lv_templ.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_templ.c</FilePath>
</File>
<File>
<FileName>lv_timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_timer.c</FilePath>
</File>
<File>
<FileName>lv_tlsf.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_tlsf.c</FilePath>
</File>
<File>
<FileName>lv_txt.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_txt.c</FilePath>
</File>
<File>
<FileName>lv_txt_ap.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_txt_ap.c</FilePath>
</File>
<File>
<FileName>lv_utils.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\misc\lv_utils.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/src/widgets</GroupName>
<Files>
<File>
<FileName>lv_arc.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_arc.c</FilePath>
</File>
<File>
<FileName>lv_bar.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_bar.c</FilePath>
</File>
<File>
<FileName>lv_btn.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_btn.c</FilePath>
</File>
<File>
<FileName>lv_btnmatrix.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_btnmatrix.c</FilePath>
</File>
<File>
<FileName>lv_canvas.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_canvas.c</FilePath>
</File>
<File>
<FileName>lv_checkbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_checkbox.c</FilePath>
</File>
<File>
<FileName>lv_dropdown.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_dropdown.c</FilePath>
</File>
<File>
<FileName>lv_img.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_img.c</FilePath>
</File>
<File>
<FileName>lv_label.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_label.c</FilePath>
</File>
<File>
<FileName>lv_line.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_line.c</FilePath>
</File>
<File>
<FileName>lv_objx_templ.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_objx_templ.c</FilePath>
</File>
<File>
<FileName>lv_roller.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_roller.c</FilePath>
</File>
<File>
<FileName>lv_slider.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_slider.c</FilePath>
</File>
<File>
<FileName>lv_switch.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_switch.c</FilePath>
</File>
<File>
<FileName>lv_table.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_table.c</FilePath>
</File>
<File>
<FileName>lv_textarea.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\src\widgets\lv_textarea.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Middlewares/lvgl/examples/porting</GroupName>
<Files>
<File>
<FileName>lv_port_disp_template.c</FileName>
<FileType>1</FileType>
<FilePath>..\Middlewares\LVGL\GUI\lvgl\examples\porting\lv_port_disp_template.c</FilePath>
</File>
</Files>
</Group>
2.2添加lvgl头文件路径
mdk添加方法
快捷添加方式方法
在<IncludePath>
和</IncludePath>
之间添加
;..\Middlewares\LVGL\GUI;..\Middlewares\LVGL\GUI\lvgl;..\Middlewares\LVGL\GUI\lvgl\src;..\Middlewares\LVGL\GUI\lvgl\examples\porting
3.编译
这是出现一大丢的错误
3.1使能C99
3.2消除警告
消除警告方法
--diag_suppress=188,546,68,111,1215,1362
4.添加时基
添加一个硬件定时器在定时器的中断函数内部调用lv_tick_inc(1);
lv_tick_inc(1);
5.修改驱动
- 原来中景园提供的填充函数只可以在指定的区域内填充一个固定颜色,这里修改原来的函数使它可以实现在指定的矩形区域内填充指定的颜色
- 填充函数的参数是一个闭区间,这点特别重要
5.1修改驱动
- 修改
lv_port_disp_template.h
-
修改
lv_port_disp_template.c
-
修改屏幕的宽度和高度
-
初始化屏幕驱动函数
-
添加一个矩形填充函数
- 填充函数内容:
方法1:使用spi 方式刷屏幕
-
这里注意填充区域,不然出现屏幕横条问题
方法2:使用spi +dma方式刷屏幕
dma传输完毕不延时cs拉高,产生为刷新点
6.修改栈空间
Lvgl要求
-
控制器的主频需要大于 16 MHz
-
所需要的 Flash 要大于 64K
-
对于 RAM 来讲,lvgl 所需要的 RAM 是 8KB,栈空间需要大于 2KB 的空间,推荐大于 8 KB,我们这里设置栈空间为 8KB
-
使用大于 16KB 的堆内存,因此这里配置的是 20KB,也就是将
LV_MEM_SIZE
设置为 20KB,也就是将LV_MEM_SIZE
的值设置为20U * 1024U
原文链接:https://blog.csdn.net/weixin_42616791/article/details/109509883
简单的移植显示一个文本程序的大小
lv_init(); /* lvgl 系统初始化 */
lv_port_disp_init(); /* lvgl 显示接口初始化,放在 lv_init()的后面 *///lv_port_indev_init(); /* lvgl 输入接口初始化,放在 lv_init()的后面 */
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label,"Hello Alientek!!!");
lv_obj_set_pos(label,10,10);
lv_obj_center(label);
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_make(0, 100, 100), 0);
void inti_timer(void);
inti_timer();
while (1)
{
lv_timer_handler(); /**/
}
7.栈空间太小的问题
问题:软件卡死,hard_fault函数内部找不到函数调用层级,栈回溯方法无法找到问题出现原因
分析:
0x800的栈
崩溃后的栈0x2000b4a0
0x800的栈