你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

KEIL&Stm32 LVGL显示移植配置

[复制链接]
STMCU小助手 发布时间:2022-8-27 18:56
1.显示部分移植准备
将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl文件夹下面的lv_conf_template.h、lvgl.h复制到KEIL_LVGL\USER\LVGL文件夹下面,并将lv_conf_template.h改名为lv_conf.h并在LVGL文件夹下面新建Porting文件夹

HRQG5RGEL9_E{G0{VG@A`}L.png

        将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl\examples\porting下面所有文件复制到上一步新建的KEIL_LVGL\USER\LVGL\Porting文件夹下面去除去掉文件名中的template。

BY2PL`WUBF6)9[NF)_PCQDL.png

2.KEIL配置
    2.1 keil中添加头文件路径
        KEIL_LVGL\Simulator\LVGL.Simulator\lvgl

        KEIL_LVGL\USER\LVGL

Q)O%`AVPFA[YX4EQ2)H0Y$W.png
    2.2 新建分组LVGL、LVGL_PORT

O}]EUAB1$J44YRIB}J2FQ{C.png

    2.3. 在LVG分组添加文件
            将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl\src文件下面所有的.c文件添加到分组LVGL中,文件较长无法显示。

            将KEIL_LVGL\USER\LVGL\Porting下面的.c文件添加到LVGL_PORT分组下面。

QJ02Q_MMQZ9IA}6K6QWPV3A.png


3. 显示驱动移植 lv_conf配置
打开lv_conf.h文件并使能。

修改v_conf.h

#define LV_COLOR_DEPTH 16 // 颜色深度

#define LV_USE_PERF_MONITOR 0 // 关闭FPS显示

#define LV_USE_MEM_MONITOR 0 // 关闭内存显示

5KFK492H[_{1[}U)H6Z`HJ8.png

        编译一下如果有以下报错

..\..\Simulator\LVGL.Simulator\lvgl\src\extra\libs\fsdrv\lv_fs_win32.c(13): error:  #5: cannot open source input file "windows.h": No such file or directory

        直接将LVGL分组下的lv_fs_win32.c文件移除掉就行

..\..\Simulator\LVGL.Simulator\lvgl\src\hal\lv_hal_tick.c(13): error:  #5: cannot open source input file "Windows.h": No such file or directory

        我们在报错的位置Go to Definition Of "LV_TICK_CUSTOM"之后发现进入的lv_config.h文件不是我们修改的文件。

解决办法:

        打开lv_conf_internal.h文件找到31行#ifndef LV_CONF_SKIP

        注释: #include "../../lv_conf.h"  

        改为#include "lv_conf.h"

3Q066M7}4~${@RW2GSFTMSI.png

8MJJZJFQSQ~9}OV${TS~YL5.png

4 屏幕显示驱动移植
            上面修改的文件编译无错误时,打开lv_port_disp.c、lv_port_disp.h,#if 0改为#if 1 使能文件。并更改包含的头文件名,加入显示屏驱动头文件。

修改lv_port_disp_init(void)函数。这个函数根据自己的硬件情况进行配置。我这个开发板比较简单,这里就简单的进行配置一下。

9Z8Z]%[PZ)``9X4OAL[DM~7.png

5.触摸屏驱动配置
            打开lv_port_inde.c、lv_port_inde.h,并使能。打开lv_port_inde.c文件进行修改。

            加入触摸屏触摸驱动程序头文件,修改void lv_port_indev_int()、static void touchpad_read。其他的外设函数可以根据自己的需要进行配置。

F`6{}MXM@2[1HPTHPIAZN.png

6.测试移植
在初始化外设时顺便初始化一下两个函数,一定要先初始化lv_init()函数。

E9A7_G)[J]0LEO(%9~4KJZL.png

            在定时器中断中添加lv_tick_inc函数,用于处理LVGL事务。这个函数可以在通用定时器中断中,也可以在滴答定时器中断中,具体看需要进行配置。

YAF1{R3Y4Q@{4[0QU6}KPP3.png

            在main函数中添加一个按钮、按钮动画、标签、按键事件函数。可以复制到模拟器的main函数运行一下。

X`J622QXNNICCL(Y30%X(7V.png

        模拟器显示,点击按钮、按钮上面的数字依次增加。

L%VIL5DP8J2(2V%V%Y7G(QJ.png


开发板显示效果。

S5GUU{99QOTZ31W]NHQ51~7.png

作者:鹰头猫咪喵喵鱼


AM9IQKPJD%Q%5$V4(ATIOA6.png
收藏 评论0 发布时间:2022-8-27 18:56

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版