ESP32 使用 LVGL 的简单介绍(ESP32 for Arduino)

本文详细讲述了如何在Arduino IDE中修改库目录,添加ESP32开发板,配置LVGL库以适应小屏幕开发板,并解决了xtensa-esp32-elf-g++未找到的问题。涵盖了硬件配置、库链接、LVGL使用和常见错误处理。
摘要由CSDN通过智能技术生成

买了个小屏幕的开发板,资料等等各种东西都不是很全,最近翻出来计划玩一下。

先对硬件做一简单介绍:采用2.8寸SPI屏幕作为显示;主控为ESP32-WROOM-32。


首先要注意到的是LVGL的库是可以直接在Arduino上面应用的。就是有一点不太好,Arduino的编译器没有代码联想,编程太复杂了。


摘要

本文介绍了修改Arduino开发板库的目录更改方法;在ArduinoIDE手动添加库的方法;配置LVGL以供Arduino使用的步骤;简单说明了xtensa-esp32-elf-g++未找到报错的几种解决办法;Arduino首次添加ESP32开发板所需要配置的文件支持;LVGL运行Demo的配置过程等。


Arduino 中开发板的存储位置的更改

Arduino中,默认的开发板库文件及其他首选项文件都会存在下面目录中:

C:\Users\管理员文件夹\AppData\Local\Arduino15

我想更改到安装目录下,以方便管理和减少对C盘的占用。

更改方法:

直接剪贴 Arduino15 这个文件夹,放在 Arduino 的安装目录下,更改名字为 portable 。我的 ArduinoIDE 的安装文件夹命名为 Arduino ,所以更改完成的目录为:

F:\Arduino\portable

此时打开 Arduino 的首选项,会发现下面情况:

说明 Arduino 的开发板库文件目录更改成功。现在添加 ESP32 的开发板,会发现开发板库文件压缩包下载地址为:

F:\Arduino\portable\staging\packages

证明一切设置无误!


ESP32 & ESP8266 库的链接

自动添加库

自动添加库很简单,只列出首选项里需要添加的外部开发板链接。

https://www.arduino.cn/package_esp32_index.json
http://arduino.esp8266.com/stable/package_esp8266com_index.json

手动添加库

自动添加库下载很慢,不如github直接下载。

直接GitHub下载还会快一点,实际上自动下载也是访问的这个链接。

https://github.com/espressif/arduino-esp32
https://github.com/esp8266/Arduino

下载后添加目录

F:\Arduino\hardware

一定要放在hardware的下级文件夹内,例如下载解压完的esp32开发板库的名称为esp32,其目录应该为:

F:\Arduino\hardware\任意命名\esp32

再次打开ArduinoIDE,查看开发板文件,就有了想要添加的开发板!

如果没有,可尝试重启或者检查目录是否有问题!


LVGL库下载

还是采用在GitHub下载再导入Arduino的方法。

https://github.com/lvgl/lvgl

下载解压后将文件夹放在

F:\Arduino\libraries

 此时重启ArduinoIDE就能在 文件→示例 中找到LVGL的示例了,在 项目→加载库 中也能看到。


LVGL库配置

只是下载下来还不够,要应用在Arduino上还需要做一些配置!

可根据 Arduino — LVGL documentation (官方手册)来进行配置。

简单说明一下,复制 lv_conf_template.hArduino \ libraries 目录下。改名为 lv_conf.h

lv_conf.h 内的第一个 #if 0 改成 #if 1 。设置 LV_TICK_CUSTOM 为 1 。


在编译的时候出现了错误!主要是因为ESP32的一些支持文件没有。


xtensa-esp32-elf-g++未找到

好久没有用 Arduino 居然出现了错误

exec: "F:\\Arduino\\hardware\\esp32\\esp32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++": file does not exist

本质原因就是缺少了支持文件!如果刚添加 ESP32 到 Arduino ,可能不单单缺少这一个文件,只是恰好这个文件报错了!

xtensa-esp32-elf-g++未找到解决方法1:

此错误解决办法:可在SDK - ESP32 - Xtensa architecture toolchain 下载工具链并放入 tools 文件夹中。

具体解决介绍可见帖子:xtensa-esp32-elf-g++": file does not exist error; can't compile, please help - Page 2 - ESP32 ForumEspressif ESP32 Official Forumhttps://www.esp32.com/viewtopic.php?t=4091&start=10

因为把Arduino卸载了,又安上后esp32一堆报错。啊啊啊啊啊!!烦死了!!!解决不完了!!

xtensa-esp32-elf-g++未找到解决方法2:

在esp32开发板库文件夹下找到 tools→get.exe ,双击运行。

此过程网速较慢,可能失败,最好 science up internet

最后 tools 文件夹下的文件夹目录应为:

xtensa-esp32-elf-g++未找到解决方法3:

点击 get.exe 下载的速度太慢,还有可能导致失败,可以自行下载所需要文件然后补充到文件夹中。

只给出了链接,请斟酌需要下载的支持包。

下载 riscv32-esp32-elf、xtensa-esp32-elf、xtensa-esp32s2-elf、xtensa-esp32s3-elf

可在此链接寻找所需包,建议找 gcc8_4_0 版本的。直接解压到 tools 文件夹即可。

Releases · espressif/crosstool-NG · GitHubcrosstool-NG with support for Xtensa. Contribute to espressif/crosstool-NG development by creating an account on GitHub.https://github.com//espressif/crosstool-NG/releases

下载esptool

Releases · espressif/arduino-esp32 · GitHubArduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.https://hub.nuaa.cf/espressif/arduino-esp32/releases

下载mkspiffs

https://github.com/igrr/mkspiffs/releaseshttps://github.com/igrr/mkspiffs/releases

下载mklittlefs

https://github.com/earlephilhower/esp-quick-toolchain/releaseshttps://github.com/earlephilhower/esp-quick-toolchain/releases全部下载完成后,解压放入 tools 文件夹下即可。


跑Demo

根据 lvgl/demos at master · lvgl/lvgl · GitHub 所说。

  • 需要在 lv_conf.h 中配置需要运行的 demo。
  • 需要复制 demos文件夹 和 examples文件夹 到 src文件夹 中。
  • 在程序中将 #include <lv_demo.h> 更改为 #include "demos/lv_demos.h"

出现了解决不了的报错信息,暂时更新在这里。

擦,改了几个地方重新编译报错直接闪瞎眼了!有没有人知道这个问题怎么解决?

暂时先这样吧!

2022年9月5日:

今天复现了这个报错,先记录一下。原因是在 .h 文件中定义了 const char *String ,编译时产生了报错。但是在 .c 文件中定义此类变量,从 .h 文件中进行 extern 声明就没有报错。暂时未解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值