简介
本文基于VScode上安装platform插件(简称PIO)来开发ESP32,屏幕显示使用LVGL+gui_guider。
关于VScode上使用platfrom也是一把辛酸泪。很多朋友会安装不成功,主要就是“网络原因”。这个得自己百度解决。
LVGL是一款轻量化的屏幕驱动,原本写gui界面需要代码一个个去画点描绘,使用LVGL可以简化界面绘制的工作量,可以使用它带的图形和按键事件定义,来绘制一个界面,具体可以看LVGL的官网。总结来说就是用LVGL可以简化你开发的难度,但是界面绘制只能你一遍一遍的下载程序去看,或者跑模拟器,太繁琐,于是。。
gui_guider诞生
这个是NXP公司出的一个可以gui界面绘制,仿真,代码生成的软件,可以大大简化界面开发的流程。
结合
1、首先要在PIO环境下,安装TFT_eSPI库,具体方法就是在PIO的主页上选择libraries中搜索TFT_eSPI,并Add到你相应的工程中。
可以参考
添加TFT_eSPI
测试运行通过后,开始下一步
2、运行LVGL
添加LVGL,也是在在Platform主页的libraries中搜索LVGL,添加到工程中。
驱动的方式可以参考下文连接,但是不用做1,2条,因为可以直接添加LGVL到工程中,我已经尝试成功。
添加LVGL
测试运行可以显示你定义的界面后,开始下一步
3、结合gui_guider
首先是下载gui_guider,然后创建工程,生成代码。这个教程网上很多。
生成代码后,会在工程目录下有custom,和generated。这个是我们需要移植的文件,此外还需要lv_font.h,这个文件在第2步添加的lvgl/src/front文件夹下。
移植的过程就是添加这些文件到 PIO工程下,但是需要主要这个添加是有点不同的,
我是参考下面的链接来做的,具体就是首先在pio工程目录下找到lib文件,在lib文件夹下建立一个文件,我这边取名为BLTGUI,然后复制custom,和generated这两个文件夹到BLTGUI文件夹下,然后在BLTGUI文件下建立一个library.json文件,这个文件就是用来让PIO找到你添加的文件,然后添加到工程中进行编译。代码如下
{
"name": "BLTGUI",
"keywords": "bltgui",
"description": "bltgui des",
"version": "1.0",
"authors": {
"name": "lb"
},
"licence": "MIT",
"frameworks": "arduino",
"platforms": "espressif32",
"build" : {
"unflags": "-std=gnu++11",
"flags": [
"-std=c99",
"-I ../../.pio/libdeps/esp32doit-devkit-v1/lvgl/src/font",
"-I custom",
"-I generated",
"-I generated/guider_customer_fonts",
"-I generated/guider_fonts",
"-I generated/images"
],
"srcFilter": [
"+<*.c>",
"+<custom/*.c>",
"+<generated/*.c>",
"+<generated/guider_customer_fonts/*.c>",
"+<generated/guider_fonts/*.c>",
"+<generated/images/*.c>"
]
}
}
需要注意,上面我们提到还需要lv_font.h文件,在上面的json文件中有这么一句,“-I …/…/.pio/libdeps/esp32doit-devkit-v1/lvgl/src/font”, 这句就是添加lv_font.h文件,具体的路径名称可能有所不同,根据实际情况进行修改。
gui guider生成的代码无人工修改移植esp32 实现拖曳式傻瓜生成嵌入式图形界面 及platform include 路径踩坑记
编译
第一次编译会产生错误,比如fatal error: lvgl/lvgl.h: No such file or directory,提示找不到LVGL的路径。这个是由于我的LVGL的库的lvgl.h的路径和程序中的不一致,所以需要修改。
把 #include “lvgl/lvgl.h” 改成#include “lvgl.h” 需要注意是有好几处。
修改后应该会编译通过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)