SquareLine_Studio V1.3.2移植代码到ESP-IDF
【前言:在1.3.2版本生成的代码结构与之前大不相同,但生成的代码文件在ESP-IDF中使用还需要一点操作的。】
我的UI界面
先提前说明我放置UI文件夹的结构是这样的
【下面进行实操】
第一步:生成代码
第二步:将对应的文件复制到IDF工程的组件lv_app_main文件夹里面
需要复制如下的文件
复制过去后的文件夹是这样的
第三步:编写cMake文件[ 这是编译成功的关键哈]
看一下UI文件的结构
cmake里面需要写lv_app_main文件夹根目录下的.c文件 和 各个文件里面的.c文件以及.h文件
参考如下:
代码片段:
file(GLOB_RECURSE SRC_SOURCES components/*.c fonts/*.c images/*.c screens/*.c) idf_component_register(SRCS "lv_app_main.c" "ui_helpers.c" "ui.c" ${SRC_SOURCES} INCLUDE_DIRS "include" "components" REQUIRES "lvgl" "lv_lib_100ask" "i80 lvgl_port" "cpu_temperature_sensor" "sntp" "wifi_init" "http_post" "mutex")
简单解释一下:
file(GLOB_RECURSE SRC_SOURCES components/*.c fonts/*.c images/*.c screens/*.c)是把lv_app_main根目录里面的几个文件夹的.c文件夹都捕获在SRC_SOURCES里,
idf_component_register就是进行组件的注册SRCS是源文件(.c),INCLUDE_DIRS是头文件,REQUIRES是需要的文件依赖包,这里只是显示UI只需要"lvgl"和"i80 lvgl_port"。
这几个部分理论上写完就可以编译成功了,不过UI应该会有些报错,比如我的这个:
这个COLOR_16_SWAP报错是常有的,注释掉就行了,下面的那个_cb函数未声明的报错原因是我这个lvgl的版本没有这个函数造成的,其实注释掉也能用。
以上的步骤都做完之后编译结果如下:
这样就编译成功了。
[END]
烧录打印结果如下:
实物图如下:
【吐槽一下】
为啥版本一更新结构都变了,之前的我觉得还不错捏,感觉一个版本换一种结构每次都要重新写一下,好麻烦。而且发现建立的工程模板如果是对应的板子所生成的工程文件里面居然是IDF对应板子组件才能一键cv使用。麻了。。。
生成的ui.h文件还有这样的lv_i8n.h的头文件,这并不是错误,官方文档说的是启用了多语言支持而导出的文件,如果用不到就注释掉就好了。
作者:LetitiaRon Z
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。