乐鑫技术交流
直播中

胖子的逆袭

12年用户 1092经验值
私信 关注
[问答]

请问esp32在使用lvgl的时候要怎么配置使用外部ROM?

请问esp32 在使用lvgl的时候要怎么配置使用外部ROM?我现在用的是git上的的lv_port_esp32 https://github.com/lvgl/lvgl.git components/lvgl这个demo 刚刚可以把实例正常的跑起来 就是竖屏的时候不流畅 想把缓冲器区弄的大一点但是不知怎么配置 有大佬用过这个的吗 可以指点一下吗?

回帖(1)

刘芳

2024-6-20 17:16:29
要在ESP32上使用LVGL并配置外部ROM,您需要按照以下步骤操作:

1. 确保您的ESP32开发板已经连接到外部ROM。这通常是一个SPI Flash芯片。

2. 配置您的项目以使用外部ROM。在您的`sdkconfig`文件中,添加以下配置:

```
CONFIG_SPIRAM_SUPPORT=y
CONFIG_ESP32_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
```

这将启用对外部RAM的支持,并允许ESP32使用外部RAM作为堆栈。

3. 修改LVGL的配置文件。在`lv_conf.h`文件中,找到以下宏定义并修改它们:

```c
#define LV_MEM_BUF_MAX_NUM  10
#define LV_MEM_BUF_MAX_SIZE  (64 * 1024) // 64KB
```

这里,您可以根据需要调整缓冲区的数量和大小。增加缓冲区大小可以提高显示性能,但会占用更多的内存。

4. 修改LVGL的显示驱动。在`lv_port_esp32`文件夹中,找到`disp.c`文件。在该文件中,找到以下代码:

```c
void lv_disp_drv_init(void) {
    ...
    /* Register the display in LVGL */
    lv_disp_drv_t disp_drv;
    lv_disp_drv_init(&disp_drv);
    disp_drv.hor_res = 320;
    disp_drv ver_res = 240;
    disp_drv.flush_cb = my_disp_flush;
    lv_disp_drv_register(&disp_drv);
    ...
}
```

在这里,您可以根据需要调整显示分辨率。

5. 重新编译并上传您的项目到ESP32开发板。现在,LVGL应该可以使用外部ROM了。

6. 如果您发现竖屏显示不流畅,可以尝试调整LVGL的刷新率。在`lv_conf.h`文件中,找到以下宏定义并修改它:

```c
#define LV_REFR_PERIOD 50 // 刷新率调整为50Hz
```

这将增加刷新率,可能会提高显示性能。

请注意,这些步骤可能需要根据您的具体硬件和项目需求进行调整。如果您遇到问题,请查阅LVGL和ESP-IDF的文档以获取更多信息。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分