ESP32 学习笔记
张婷婷 2019.09.22
目录
概述... 2
官方参考文档... 2
1 ESP32-WROOM-32D 学习心得... 3
1.1 vscode 下载... 3
1.2 生成阿里云新的.a文件... 3
1.3 编译链下载... 3
1.4 log日志等级修改... 3
2 ESP32_PICO_D4 学习心得... 4
3 ESP32_LyraT 学习心得... 5
3.1 环境搭建及编译... 5
3.2 ESP32_WROOM 32D 与ESP32_Lyart合并使用同一个idf 6
3.3 ESP32编译固件大于1M问题... 7
3.4 SD卡功能支持长文件名... 7
例程介绍: https://github.com/espressif/esp-adf/tree/master/examples/player/pipeline_sdcard_mp3_control
快速入门: https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/index.html
音频指南: https://docs.espressif.com/projects/esp-adf/en/latest/
vscode->File->open floder->选择对应程序文件夹
Ctrl+` 打开中终端 à (make clean) à make all à (make erase_flash) à make flash
编译链mingw32 ->cd 阿里云套件路径 ->make reconfig -> 1 ->耐心等待 ->make->耐心等待
编译链mingw32 -> cd 程序文件夹路径 -> (make clean) -> make -> make flash
ESP32_PICO_D4与ESP32_WROOM_32D 可共用idf及编译环境,这就代表着这两者程序可相互通用.
0)参考网址:
https://blog.csdn.net/qq_27158179/article/details/89646815 //小bug
https://www.cnblogs.com/54zorb/p/9784119.html //pintf
https://blog.csdn.net/qq_41630102/article/details/82998813 //顺利
1)克隆ESP32-adf 框架
编译链mingw32 -> cd 存放adf文件夹路径 -> git clone --recursive https://github.com/espressif/esp-adf.git -> 耐心等待,最好手机开热点给电脑使用,如果失败换个网络再尝试.
2)添加adf /idf 脚本路径
在编译链的脚本文件 esp32_toolchain.sh 中增加 adf /idf 脚本路径,这里的idf就使用adf中自带的idf,编译比较好通过.由于ESP32_PICO_D4与ESP32_WROOM_32D 使用的idf和这里ESP32_LyraT的不同,所以需要在脚本文件中切换idf文件路径.
3)编译例程播放一段音乐
在编译的时候发现一个error错误提示,提示TOUCH_PAD_NUM9未定义, 所以我们需要在board_pins_config.c文件中添加包含头文件:#include "driver/touch_pad.h".
我使用的编译链是esp32_win32_msys2_environment_and_toolchain-20181001 编译时提示需要更新python依赖包,也按照提示内容run更新一下.(忘记截图了,提示内容主要是下图所示)
接下来的编译过程有可能会出现让你选择SDKconfig的配置,直接按回车键选择默认值,至此编译应该就没问题了.编译通过后运行make menuconfig修改下载串口号,修改完保存退出,再运行make all,编译结束后就可以make flash下载了.
之前ESP32_WROOM 32D是使用esp-idf-v3.1.4开发的,后期ESP32_Lyart是用esp-adf里自带的idf开发的,这就造成了两类芯片模组工程需要来回切换脚本文件中的idf路径比较麻烦,所以研究了合并这两类工程的idf, 主要是使用esp-idf-v3.1.4开发的ESP32_WROOM 32D程序做以下3个地方修改:
统一idf路径为adf中自带的idf:
Idf里已经定义实现了int clock_gettime()函数,所以这里需要注释该函数的实现:
使用adf下的project.mk文件:
首先确定模组flash size大于2M并选择实际flash size,修改partition_table为Single factory app, no OTA (仅支持一个APP,无法再进行OTA空中升级):
修改core dump 转存地为None:
修改idf里分区表APP的大小为2M:
修改完这三个地方后,make clean下工程,清除完成后再重新编译一下就可以烧录运行大于1M的固件了。