STM32系列文章(3):LVGL移植,打造美观的GUI界面

一直以来都觉得要使用STM32开发多么多么漂亮的界面是非常繁琐困难的,自己设计控件外观代码实现,况且对自己的审美并没有什么信心,我TM又不是做美工的,直到我发现了这个——LVGL,来我房里有些好康的,快来康康,本文简单记录一下我在移植LVGL到STM32上的过程。

硬件环境介绍,4.3寸800X480的电容屏,FSMC驱动,主控STM32F103ZET6(144Pin,Flash:128K,RAM:64K,72MHz主频),实际上64K的RAM有点吃力,基本占用95%左右,本文只是记录移植过程,下面开始吧!

Step1:当然是先把屏幕驱动跑起来啦

我的屏幕是FSMC驱动的,这是我的屏幕原理图,可以看到是通过FSMC的NE4控制,数据线16bit,RS接到A10,下面T_开头的网络标签是屏幕触控相关的,暂且不管,下面直接通过STM32CubeIDE来配置底层,开始的SYS里面SerialWireDebug选项打开和RCC里面的外部晶振配置就不细说了,直接开始FSMC的配置。

至此屏幕相关的FSMC配置完毕,下面把屏幕背光的IO单独配置,我这里的硬件是PB0推挽输出,高电平点亮屏幕,具体和自己的硬件匹配就好。

OK生成代码就可以了,下面开始配置LCD屏幕驱动

我使用的正点原子的开发板和屏幕,所以使用的正点原子的屏幕驱动,做了稍微的修改,去除了对delay.h、sys.h、usart.h的依赖。

把以上三个文件添加到工程内。

至此屏幕驱动配置完成,在main.c中#include“lcd.h”,在main函数里wile(1)之前调用LCD_Init();进行屏幕初始化,while(1)里调用LCD_ShowString(20, 20, 600, 30, 24, (uint8_t*)"This is a test");测试屏幕驱动是否正常。

可以看到屏幕驱动正常,下面就可以开始移植LVGL了。

Step2:开始移植LVGL

先到LVGL在Github上的官方代码仓库把LVGL源码克隆下来,我是克隆的stm32f429不影响,我们只用他的库。

未完待续……….

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注