又一次移植最新lvgl8到esp32的踩坑记录

本文记录了将LVGL8最新版移植到ESP32过程中遇到的问题及解决方法,包括创建工程、添加仓库代码、创建配置文件、修改main.c,以及在移植过程中遇到的SPI主机未定义、显示缓冲区大小错误等编译问题的解决步骤。


上一次移植了lvgl8到esp32后,发现用别人的仓库里面的lvgl并不是最新的版本,没有集成gif组件,为了使用gif播放,同时也自己尝试走一遍从0开始的移植过程。 之前移植的记录看这里

一、创建工程

1、在vscode新建esp32工程

在vscode中,按ctrl+shift+p键打开命令面板,输入搜索“show examples projects”,点击ESP-IDF:展示示例项目,选择你所用的esp-idf版本后,将打开esp-idf的例程创建界面。我这里esp-idf的版本是4.3.2。然后随便选个最简单的hello_world作为创建模板就可以了

2、添加lvgl最新版本的相关仓库代码

打开上一步创建的hello_world目录,新建一个“components”目录
然后将lvgl和lvgl_esp32_drivers两个仓库的最新代码clone到components目录内
https://github.com/lvgl/lvgl
https://github.com/lvgl/lvgl_esp32_drivers
现在的工程目录结构应该是这样的
在这里插入图片描述

3、创建lv_conf.h

在lvgl的目录下,有一个lv_conf_template.h的模板头文件,将其复制到同目录内,重命名为lv_conf.h。然后将里面最开始的“#if 0”改为“#if 1”使其生效,其它的都不用动了。在后面的menucofig后,相关的配置会作用里面的各种宏定义。

4、修改main.c

这里直接贴代码

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"

#include "esp_log.h"
#include "esp_system.h"
#include "esp_freertos_hooks.h"

#include "../components/lvgl/lvgl.h"
#include "lvgl_helpers.h"

/*-----------------函数声明-----------------------------------*/
void lvgl_test(void);
/*-----------------------------------------------------------*/

/* LVGL 移植部分 */
static void lv_tick_task(void *arg)
{
   
   
    (void)arg;
    lv_tick_inc(portTICK_PERIOD_MS);
}
SemaphoreHandle_t xGuiSemaphore;

/* UI 任务 */
static void gui_task(void *arg)
{
   
   
    xGuiSemaphore = xSemaphoreCreateMutex();
    lv_init();          //lvgl内核初始化
    lvgl_driver_init(); //lvgl显示接口初始化

 	static lv_disp_
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值