买了个小屏幕的开发板,资料等等各种东西都不是很全,最近翻出来计划玩一下。
先对硬件做一简单介绍:采用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.h 到 Arduino \ 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 声明就没有报错。暂时未解决。