walker2048 发表于 2024-6-6 18:13

【FireBeetle 2 ESP32 C6开发板】7、适配lvgl 9.1-- 添加默认板型配置,运行程序

<div class='showpostmsg'>### 前言
lvgl已经出到9.x版本了,github上的lv_port_esp32还是7.x版本,由于我自己有Linux和esp32两种设备的开发需求,esp32的RAM和Flash也不算小,
我手上的板子也不少,干脆修改一下默认板型的屏幕配置吧。


#### 修改Kconfig配置
添加两个板型的屏幕默认配置,LV_PREDEFINED_DISPLAY_WAVESHARE_169 和 LV_PREDEFINED_DISPLAY_BOARD_169
添加这些配置之后,就可以直接在菜单里选择对应的板型,然后就可以直接切换板子配置,编译运行了。
以下就是修改后生成的patch文件
```c
--- a/lvgl_tft/Kconfig
+++ b/lvgl_tft/Kconfig
@@ -76,6 +76,16 @@ menu "LVGL TFT Display controller"
             bool "Wireless Tag WT32-SC01"
             select LV_TFT_DISPLAY_CONTROLLER_ST7796S
             select LV_TFT_DISPLAY_PROTOCOL_SPI
+      config LV_PREDEFINED_DISPLAY_BOARD_169
+            bool "Board 1.69 st7789"
+            select LV_TFT_DISPLAY_PROTOCOL_SPI
+            select LV_TFT_DISPLAY_CONTROLLER_ST7789
+            select LV_TFT_DISPLAY_OFFSETS
+      config LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            bool "Waveshare touch 1.69"
+            select LV_TFT_DISPLAY_PROTOCOL_SPI
+            select LV_TFT_DISPLAY_CONTROLLER_ST7789
+            select LV_TFT_DISPLAY_OFFSETS
   endchoice

   # START of helper symbols.
@@ -757,6 +767,8 @@ menu "LVGL TFT Display controller"
             default 19 if LV_PREDEFINED_DISPLAY_TTGO
             default 19 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
             default 13 if LV_PREDEFINED_DISPLAY_WT32_SC01
+            default 7if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            default 22 if LV_PREDEFINED_DISPLAY_BOARD_169
             default 13
             help
               Configure the display MOSI pin here.
@@ -816,6 +828,8 @@ menu "LVGL TFT Display controller"
             default 18 if LV_PREDEFINED_DISPLAY_TTGO
             default 21 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
             default 14 if LV_PREDEFINED_DISPLAY_WT32_SC01
+            default 6if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            default 23 if LV_PREDEFINED_DISPLAY_BOARD_169
             default 14

             help
@@ -842,6 +856,8 @@ menu "LVGL TFT Display controller"
             default 5 if LV_PREDEFINED_DISPLAY_TTGO
             default 12 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
             default 15 if LV_PREDEFINED_DISPLAY_WT32_SC01
+            default 5if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            default 19 if LV_PREDEFINED_DISPLAY_BOARD_169
             default 15

             help
@@ -869,6 +885,8 @@ menu "LVGL TFT Display controller"
             default 17 if LV_PREDEFINED_DISPLAY_ATAG
             default 16 if LV_PREDEFINED_DISPLAY_TTGO
             default 15 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
+            default 4if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            default 20 if LV_PREDEFINED_DISPLAY_BOARD_169
             default 2

             help
@@ -901,6 +919,8 @@ menu "LVGL TFT Display controller"
             default 23 if LV_PREDEFINED_DISPLAY_TTGO
             default 33 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
             default 22 if LV_PREDEFINED_DISPLAY_WT32_SC01
+            default 8if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+            default 21 if LV_PREDEFINED_DISPLAY_BOARD_169
             default 4

             help
@@ -973,6 +993,8 @@ menu "LVGL TFT Display controller"
         default y if LV_PREDEFINED_DISPLAY_TTGO
         default y if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
         default y if LV_PREDEFINED_DISPLAY_WT32_SC01
+      default y if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+      default y if LV_PREDEFINED_DISPLAY_BOARD_169
         help
             Some backlights are turned on with a high signal, others held low.
             If enabled, a value of 1 will be sent to the display to enable the backlight,
@@ -993,6 +1015,8 @@ menu "LVGL TFT Display controller"
         default 4 if LV_PREDEFINED_DISPLAY_TTGO
         default 2 if LV_PREDEFINED_DISPLAY_TTGO_CAMERA_PLUS
         default 23 if LV_PREDEFINED_DISPLAY_WT32_SC01
+      default 15 if LV_PREDEFINED_DISPLAY_WAVESHARE_169
+      default 18if LV_PREDEFINED_DISPLAY_BOARD_169
         default -1
```

#### 菜单展示
修改完以后,可以看到菜单里增加了对应板型的配置。也可以看到选择了对应板型之后,配置文件也正确选择了屏幕spi的引脚。




制作完毕后编译,烧录到开发板上,可以看到lvgl测试程序已经顺利跑起来了。



源码已经开源在 https://gitee.com/walker2048/lv_esp32 仓库里,子仓库的修改内容,放在附件里了。

<br/><br/>
</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开发板】7、适配lvgl 9.1-- 添加默认板型配置,运行程序