walker2048 发表于 2024-6-6 00:40

【FireBeetle 2 ESP32 C6开发板】4、适配lvgl 9.1-- lv_esp32_drivers 仓库适配

<div class='showpostmsg'>#### 前言
lvgl已经出到9.x版本了,github上的lv_port_esp32还是7.x版本,由于我自己有Linux和esp32两种设备的开发需求,esp32的RAM和Flash也不算小,
我打算直接使用9.1版本的lvgl,然后使用lvgl_esp32_drivers仓库,仓库地址是https://github.com/lvgl/lvgl_esp32_drivers.git

#### 适配lvgl9.1的代码
其实屏幕和触摸代码里,修改成适配lvgl 9.1代码并不复杂,主要是 **lv_disp_drv_t** 类型更名成了 **lv_display_t**,如下图。
需要修改的文件有点多,直接用VSCode批量替换就行了。



除了屏幕设备类型外,还需要调整输入设备类型(触摸屏之类的), **lv_indev_drv_t** 类型修改成 **lv_indev_t** ,如下图。



#### 适配idf 5.1版本代码
原始仓库适配的是idf 4.x版本的代码,5.1版本代码API有一些调整,大致有以下的一些内容。

例如gpio引脚初始化、延迟毫秒转换宏定义之类的一些内容。





修改完这些内容之后,就可以顺利编译了。

使用lvgl_esp32_drivers仓库,主要是懒得自己去写相关的代码,例如spi传输之类的。</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【FireBeetle 2 ESP32 C6开发板】4、适配lvgl 9.1-- lv_esp32_drivers 仓库适配