码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ESP32 使用 LVGL 的简单介绍(ESP32 for Arduino)


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

    先对硬件做一简单介绍:采用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 库的链接

    自动添加库

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

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

    手动添加库

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

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

    1. https://github.com/espressif/arduino-esp32
    2. 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 更改为 #include "demos/lv_demos.h"

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

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

    暂时先这样吧!

    2022年9月5日:

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

  • 相关阅读:
    Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)
    初探JVM
    泰克Tektronix示波器软件TDS520|TDS1001|TDS1002上位机软件NS-Scope
    投影仪芯片0.33和0.47DMD哪个好?当贝F3 Air实测体验分享
    大学生开学需要准备哪些数码产品、五款大学生必买的电子产品
    解锁小鹏G9的隐藏功能
    前端面试之 vue 篇
    ThreadLocal、InheritableThreadLoal、TransmittableThreadLocal使用说明以及适用场景
    Redis 7.x 系列【14】数据类型之流(Stream)
    html+css制作3D七夕表白旋转相册特效
  • 原文地址:https://blog.csdn.net/qq_41650023/article/details/126676204
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号