根据MM32F5260的LVGL运用教程

时间:2025-05-28 23:08:52 来源:锐评时讯

MM32。F5260 简介。

MM32F5260 是一款搭载了根据。 Arm。v8-M 架构 32 位 Star-MC1 内核(兼容 Cortex-M33)的。 MCU。产品。,其作业频率可达 120MHz,装备浮点运算单元(Floating Point Unit, FPU)、。数字信号。处理单元(Digital Signal Processing,DSP。)、。信号。间互联矩阵 MindSwitch、可装备逻辑单元 CLU、三角函数加快单元 CORDIC 等。算法。加快单元,并集成了丰厚的外设模块和足够的 I/O。 端口。

图1 MM32F5260示意图。

LVGL。介绍。

LVGL(Light and Versatile Graphics Library)是一个专为。嵌入式体系。规划的开源图形用户界面(GUI)库。它运用。C言语。编写,具有轻量级、可移植、灵敏和易于运用的特色。LVGL供给了丰厚的图形界面元素和灵敏的布局方法,使。开发者。能够轻松为。嵌入式。设备创立交互式用户界面。

LVGL软。硬件。需求。

根本上,每个能够驱动显现器的现代。操控器。都合适运转LVGL。最低要求是:

16, 32。 or。64 bit。 微操控器。或。处理器。

引荐。16 MHz。 时钟。速度。

Flash/。ROM。: >根本要求:64 kB (>引荐:180 kB )。

RAM。:。

静态RAM运用率:~2 kB,详细取决于运用的功用和目标类型。

St。ac。k: >2kB (>8 kB is。 recom。mended)。

Dynamic data (heap): >4 KB (>32 kB is recommended if using several objects)。

C99 或更新的编译器。

源码获取。

获取MM32的LibSamples和LVGL的源代码:

从灵动官网获取LibSamples_MM32F5260样例工程, https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_pe。rf。ormance/mm32f5260/挑选翻开页面中的东西和软件。标签。栏,点击。下载。MM32F5260 库函数与例程。

图2 LVGL协议栈源码。

获取LVGL源代码,这儿咱们运用到的是v8.1.0版别的协议栈:

https://github.com/lvgl/lvgl/archive/refs/tags/v8.1.0.zip。

lvgl-v8.1.0 协议栈如下图2所示:

图3 LVGL协议栈源码。

移植简介。

复制 LVGL 源码到工程目录。

根据LibSamples_MM32F5260样例工程,在其根目录文件夹下创立~3rdPartySoftwarePor。ti。ngLVGL 途径及文件夹,将 lvgl-v8.1.0 软件包解压后直接复制到该途径下,并在该途径下创立 Demos文件夹。接下来,咱们将在 Demos 文件夹下创立示例工程。

在 Demos 文件夹下中新建LVGL_B。asic。样例工程目录。将 lv_conf_。te。mplate.h 复制到 LVGL_Basic 工程目录下,并将其重命名为 lv_conf.h。

将软件包中 examples/porting 下的 lv_port_disp_template.c&.h 文件,复制到 LVGL_Basic 工程目录下,并进行重命名去掉 __template。

FSMC 及LCD初始化装备。

在 platform.c &.h 文件中进行进行FSMC相关初始化装备,包含时钟、引脚、初始化。

新建 lcd.c/.h 文件,完成 LCD 驱动初始化和根本的运转。参数。序列装备以及根本的的绘图操作,如铲除窗口操作、填充窗口操作和画像素点操作函数。

新建 lcd_port.c 文件,完成根据 FSMC 的 LCD 驱动装备。接口。,并完成对 LCD 的写指令和写数据的操作接口。

LVGL_Basic样例工程完好目录如下图4所示:

图4 LVGL_Basic样例工程。

增加到。 Keil。工程中。

增加lvgl到工程的文件。索引。途径中,如下图5所示:

图5 装备lvgl索引途径。

如图6所示,将 lvgl_v8 文件夹下的 src 目录下的一切 .c 格式文件增加到工程中。

图6 增加lvgl源文件。

代码适配。

增加移植接口相关文件到工程中:

修正 lv_conf.h 文件,使能装备文件内容,敞开帧率显现和内存占用状况显现。

修正 lv_port_disp.c 文件,使能LVGL装备。

修正 lv_port_disp_init() 函数,挑选界说图画缓存的方法,并设置屏幕像素尺度。

修正 disp_init() 函数,适配屏幕初始化,调用屏幕初始化函数。

修正 disp_flush() 函数,适配屏幕填充函数接口。

编写 lvgl_bas。ic。.c 文件,包含头文件,调用 lvgl 初始化函数,完成Systick中止服务函数为lvgl供给时刻基准,并在 main.c 文件中调用 LVGL_Basic_Sample() 函数。

#include "platform.h"#include "main.h"#include "lvgl.h"#include "lv_port_disp.h"static const char * btnm_map[] = {"0", "1", "2", "3", "4", "","5", "6", "7", "8", "9", "","Action1", "Action2",""};void lv_example(void);void LVGL_Basic_Sample(void){    lv_init();    lv_port_disp_init();    lv_example();    while (1)    {        lv_task_handler();    }}void lv_example(void){    /* create a label. */    lv_obj_t * label = lv_label_create(lv_scr_act());    lv_label_set_long_mode(label, LV_LABEL_LONG_SCROLL_CIRCULAR);    lv_obj_set_width(label, 150);    lv_obj_set_pos(label, 10, 10);    lv_label_set_text(label, "MindMotion MindMotion");    /* create a btn matrix. */    lv_obj_t * btnm1 = lv_btnmatrix_create(lv_scr_act());    lv_btnmatrix_set_map(btnm1, btnm_map);    lv_btnmatrix_set_btn_width(btnm1, 10, 2);        /*Make "Action1" twice as wide as "Action2"*/    lv_obj_align(btnm1, LV_ALIGN_CENTER, 0, 0);}。

LVGL_Basic 样例展现。

这个样例展现了最根本的GUI元素,如按钮、标签和文本框。它演示了如安在屏幕上创立和操作这些根本元素。

图7 LVGL_Basic示意图。

参阅样例展现。

LVGL_Benchmark。

这个样例用于测验和评价MM32F5260的功能。它经过快速创立和删去很多的目标来展现开发板的烘托才能。

图8 LVGL_Benchmark示意图。

LVGL_Stress。

这个样例经过一起运用多种不同的GUI元素和杂乱的布局来对体系进行压力测验,保证在高负载状况下体系的稳定性。

图9 LVGL_Stress 示意图。

LVGL_Widgets。

这个样例展现了LVGL支撑的一切小部件(Widgets),包含但不限于图表、滑块、复选框和下拉列表。它协助开发者了解怎么运用这些小部件来构建杂乱的用户界面。

总结。

本文简略介绍了MM32F5260及LVGL的运用,开发者能够经过运用LibSamples在MM32F5260上快速开端LVGL的学习和开发作业。

关于灵动。

上海。灵动微电子。股份有限。公司。成立于 2011 年,是我国本乡抢先的通用 32 位 MCU 产品及解决计划供货商。灵动微电子的 MCU 产品以 MM32 为标识,根据 Arm Cortex-M 系列内核,自主研制软硬件和生态体系。现在已量产近 300 款类型,在本乡通用 32 位 MCU 公司中位居前列。

客户包括。消费电子。、。电机。与。电源。、家电、轿车、计算机与。通讯。、。工业操控。等应用领域。灵动是我国为数不多的且一起获得了 Arm-KEIL、IAR、SEGGER 官方支撑的本乡 MCU 公司,并建立了独立、完好的通用 MCU 生态体系。灵动一直秉承着“诚信、许诺、立异、协作”的精力,为客户供给从硬件。芯片。到软件算法、从参阅计划到体系规划的全方位支撑。

内容来源:https://fastrans.nhobethoi.com/app-1/vtv6 nguồn cực nét,http://chatbotjud-teste.saude.mg.gov.br/app-1/vivo-dados-patrocinados

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面发生异常错误,系统设置开启调试模式后,刷新本页查看具体错误!