V丶AzzZ · 1月5日

【Mini-F5265-OB开发板试用测评】基于ST7735STFT屏幕的LVGL9移植

最近,我很幸运受邀参加MM32F5260开发板的测评活动。一直以来我对于图形化界面包有很高的热忱,LVGL是一款优秀的开源嵌入式图像界面库,它拥有丰富的组件和样式。但是由于涉及到图像的渲染,需要消耗大量的RAM空间。
image.png
MM32F5260是一款搭载了基于 Arm v8-M 架构 32 位 Star-MC1 内核(兼容 Cortex-M33)的 MCU 产品,其工作频率可达 120MHz,同时拥有256KB Flash和128KB RAM,达到了LVGL官方的推荐配置,所以本次测评活动决定移植LVGL9到MM32F5260平台上。
image.png
本次移植参考了很多网络的文章,此处仅列出几个较为重要的
1.LVGL 移植到 STM32 通法 ( 例:LVGL 9.2.2 到 STM32F429 )
https://www.cnblogs.com/Huae/...
2.LVGL官方手册的移植部分
https://docs.lvgl.io/9.2/porting

本次的移植工作主要分为4步

1、获取最新的LVGL代码并进行裁剪
2、在Keil工程中添加对应的.c和.h文件
3、实现st7735s的驱动
4、修改LVGL的display_flush函数中的画点函数修改为st7735s的画点函数

1、获取最新的LVGL代码并进行裁剪

我们从github中可以拉取最新的代码
在gitbash中执行git clone https://github.com/lvgl/lvgl.git
图片1.png
只保留如下的文件
图片2.png

2、在Keil工程中添加对应的.c和.h文件

本次移植选择的是”MM32F5260库函数与例程”中的GPIO_LED_Toogle工程作为模板
图片3.png
在GPIO_LED_Toggle文件夹中创建两个新的文件夹(lvgls、User)用于存储LVGL代码与用户代码
图片4.png
lvgls的目录结构如下
图片5.png
lvgls/lvgl的目录结构如下
图片6.png
lvgls/lvgl_app为空(后续用来存储自己的ui文件)
User用来存储自己写的代码(spi配置代码,st7735s驱动代码)
图片7.png

在keil中按照src中的文件夹创建Group,并导入该文件夹下的所有.c文件
图片8.png
在keil中添加Include路径
图片9.png

3、实现st7735s的驱动

主要实现以下几个函数
void SPI2_Init(void); //配置SPI2并初始化
void TFT_Init(void); //初始化LCD
void lcd_write_command(uint8_t cmd); //使用SPI2发送指令
void lcd_write_data(uint8_t data); //使用SPI2发送8位数据
void lcd_write_data_u16(uint16_t data); //使用SPI2发送16位数据
void lcd_write_address(uint8_t x_start,uint8_t y_start,uint8_t x_end,uint8_t y_end); 设置颜色数据写入地址

4、修改LVGL的lv_port_disp_init函数与disp_flush中的画点函数

lv_port_disp_init函数中,注释掉Example 2与Example 3部分

disp_flush函数中,将原有的示例画点函数替换为自己的
图片10.png

5、最后在main函数中初始化LVGL并测试一些基础组件是否正常渲染

图片11.png
0a375a30fc813f75894326be3fd387af_720.png
e38969f0c6ee7ab41ce119abae0f9345_720.png
重点!
在例程LibSamples_MM32F5260_V0.11.3\Device\MM32F5260\Source目录下MM32F5260.sct文件中修改heap与stack的大小为0x2000,LVGL的某些组件才能正常渲染!!
图片12.png
总结:
本次的移植工作暂时告一段落了,在debug的过程中,我学习了解了mcu的编译、连接与启动的过程,这应该才是嵌入式软件开发的魅力之处吧!
事物的发展总是螺旋式上升的,最后感谢灵动微电子和极术社区提供的平台与硬件开发板,祝国产mcu越做越好!

推荐阅读
关注数
0
文章数
1
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息