LVGL适配
环境
STM32 H7
大体步骤
1.lvgl软件包添加
把对应的文件,复制到app里面
编译会报错,原因是需要添加几个文件,需要把头文件指向这里
再编译,就没问题了
2.cubemx配置ltdc,rcc,clock,mpu
这块比较简单,按照keil里面的配置来设置。最后吧生成的代码和keil的代码对比一下。
MPU_Config():
SCB_EnableICache(); SCB_EnableDCache():
使用以下来替换
SystemClock_Config
对比发现,keil里面多了LTDC的初始化,这个难不倒我们,ltdc通过cubemx配置后,就有对应的初始化操作。按常规流程,把初始化内容放到borad.c中即可。
至此,保证,rcc,clock,mpu,ltdc的初始化能在rtt初始化内完成,即可。
3.移植内容
lv_port_disp.c
lv_conf.h
配置好。这块网上比较多,对着操作就行。
最后需要注意,背光要打开。
app里面的main,lv的demo最好放到线程里面
完成屏幕显示方面的移植,后续进行触摸方向移植。
触摸比较简单,这块屏幕是iic接口
lv_port_indev.h中的if 0打开
lv_port_indev.c中的除了touchpad开放,其他关闭
touchpad_init,touchpad_read,touchpad_is_pressed,touchpad_get_xy适配
最终效果
总结
花了一段时间把 stm32 h7 + cubemx + lvgl + 触摸搞定
主要有keil代码加持,移植起来比较方便,梳理通流程后,移植起来有思路,知道查资料方向
完成内容
内部flash有一个简单boot,跳转到外部flash上
时钟,mpu,dma2d这块通过cubemx配置
ltdc这块通过cubemx配置
触摸,gpio模拟iic,cubemx把gpio占住,统一到cubemx能看到