基于stm32f103rc+lvgl8.2移植

资料准备

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.修改驱动

  1. 原来中景园提供的填充函数只可以在指定的区域内填充一个固定颜色,这里修改原来的函数使它可以实现在指定的矩形区域内填充指定的颜色
  2. 填充函数的参数是一个闭区间,这点特别重要

5.1修改驱动

  1. 修改lv_port_disp_template.h

在这里插入图片描述

  1. 修改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的栈

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 移植LVGLSTM32F103主要可以分为三步:编译LVGL,配置STM32F103,编写相关代码。 第一步:编译LVGL。可以从官方网站上下载LVGL8.2的源代码,然后根据官方提供的编译说明,在本地使用GCC编译器生成编译后的库文件。 第二步:配置STM32F103。首先,需要在STM32F103开发板上安装相应的编程环境,可以选择使用STM32CubeMX进行配置,也可以手动配置。其次,需要将编译后的LVGL库文件和头文件加入工程中。然后,配置相应的GPIO、SPI、DMA等外设,使其与LCD屏幕和LVGL库能正常通信。 第三步:编写相关代码。在STM32F103上运行LVGL需要编写相关代码,包括初始化LVGL库、配置用户界面、绘制图形控件、处理用户输入事件等。 需要注意的是,STM32F103有限的存储资源可能会影响LVGL的使用,需要对LVGL库进行裁剪和优化,以减少内存占用。同时,为了使系统稳定性更高,在编写代码时还需要遵循LVGL的开发规范。 ### 回答2: 移植LVGL8.2到STM32F103需要以下步骤: 1. 安装LVGL库。可以从LVGL官网上下载最新版本。解压后复制到工程目录下。 2. 根据STM32F103的硬件资源配置LVGL的显示驱动,通常可以使用SPI或I2C接口来驱动图形屏幕。需要使用到SPI或I2C的GPIO口,配置好这些GPIO口的寄存器。 3. 在项目中加入lvgl.h头文件,并且在main函数中初始化LVGL的相关参数。主要有屏幕大小、像素点分辨率和刷新频率等参数需要配置。 4. 配置LVGL的回调函数。LVGL需要将图形显示在屏幕上,需要特定实现屏幕的驱动函数。这些函数需要应用特定的LVGL API。 移植LVGL8.2到STM32F103比较复杂,需要深度理解STM32F103的硬件资源和LVGL库的使用方法。还需要对C语言、图形显示的相关知识有深入理解,需要仔细处理。但是一旦移植完成,就可以快速开发基于STM32F103的图形界面应用程序。 ### 回答3: 要将LVGL 8.2移植STM32F103上,需要做以下几个步骤: 1.选择合适的开发环境,例如IAR EWARM或Keil MDK,并为其配置适当的MCU和项目参数。 2.下载LVGL 8.2库并将其包含在项目中。可以从LVGL的官方网站或GitHub上下载最新版本的库。 3.根据MCU和开发环境的需要,配置LVGL的驱动程序。这些驱动程序包括显示屏驱动程序和输入设备驱动程序。 4.在项目中创建LVGL的主函数,并初始化LVGL库和所选的驱动程序。 5.使用LVGL的图形框架和控件库来创建应用程序,并将其呈现在显示屏上。 6.使用输入设备驱动程序来捕获和处理用户输入事件,例如触摸屏、鼠标或键盘。 总的来说,移植LVGL 8.2到STM32F103需要一定的开发经验,并且需要对图形框架和硬件驱动程序有一定的了解。但是一旦完成了这个过程,就可以使用LVGL的先进图形界面库来创建功能强大和高度可定制的嵌入式应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Car12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值