RTT lvgl在STM32H7上移植的步骤

2024-04-15  

LVGL适配

环境


STM32 H7

大体步骤

1.lvgl软件包添加

1.jpg

把对应的文件,复制到app里面

1.jpg

编译会报错,原因是需要添加几个文件,需要把头文件指向这里

1.jpg

再编译,就没问题了

2.cubemx配置ltdc,rcc,clock,mpu

这块比较简单,按照keil里面的配置来设置。最后吧生成的代码和keil的代码对比一下。

MPU_Config():

1.jpg

SCB_EnableICache(); SCB_EnableDCache():

1.jpg

使用以下来替换

1.jpg

SystemClock_Config
对比发现,keil里面多了LTDC的初始化,这个难不倒我们,ltdc通过cubemx配置后,就有对应的初始化操作。按常规流程,把初始化内容放到borad.c中即可。

1.jpg
1.jpg

至此,保证,rcc,clock,mpu,ltdc的初始化能在rtt初始化内完成,即可。

3.移植内容

lv_port_disp.c
lv_conf.h

配置好。这块网上比较多,对着操作就行。

最后需要注意,背光要打开。

app里面的main,lv的demo最好放到线程里面

1.jpg

完成屏幕显示方面的移植,后续进行触摸方向移植。

触摸比较简单,这块屏幕是iic接口

lv_port_indev.h中的if 0打开
lv_port_indev.c中的除了touchpad开放,其他关闭
touchpad_init,touchpad_read,touchpad_is_pressed,touchpad_get_xy适配

最终效果

1.jpg

总结

花了一段时间把 stm32 h7 + cubemx + lvgl + 触摸搞定
主要有keil代码加持,移植起来比较方便,梳理通流程后,移植起来有思路,知道查资料方向

完成内容

内部flash有一个简单boot,跳转到外部flash上
时钟,mpu,dma2d这块通过cubemx配置
ltdc这块通过cubemx配置
触摸,gpio模拟iic,cubemx把gpio占住,统一到cubemx能看到


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。