ESP32 學習筆記 - 記錄貼

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/

1 ESP32-WROOM-32D 學習心得

1.1 vscode 下載

vscode->File->open floder->選擇對應程序文件夾

Ctrl+` 打開中終端  à (make clean) à make all à (make erase_flash) à make flash

1.2 生成阿里雲新的.a文件

編譯鏈mingw32 ->cd 阿里雲套件路徑 ->make reconfig -> 1 ->耐心等待 ->make->耐心等待

1.3 編譯鏈下載

編譯鏈mingw32 -> cd 程序文件夾路徑 -> (make clean) -> make -> make flash

1.4 log日誌等級修改

2 ESP32_PICO_D4 學習心得

ESP32_PICO_D4與ESP32_WROOM_32D 可共用idf及編譯環境,這就代表着這兩者程序可相互通用.

 

 

3 ESP32_LyraT 學習心得

3.1 環境搭建及編譯

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下載了.

3.2 ESP32_WROOM 32D 與ESP32_Lyart合併使用同一個idf

之前ESP32_WROOM 32D是使用esp-idf-v3.1.4開發的,後期ESP32_Lyart是用esp-adf裏自帶的idf開發的,這就造成了兩類芯片模組工程需要來回切換腳本文件中的idf路徑比較麻煩,所以研究了合併這兩類工程的idf, 主要是使用esp-idf-v3.1.4開發的ESP32_WROOM 32D程序做以下3個地方修改:

  1. 修改編譯鏈腳本中idf路徑

統一idf路徑爲adf中自帶的idf:

 

  1. 修改阿里雲套件裏的HAL_OS_espressif.c

Idf裏已經定義實現了int clock_gettime()函數,所以這裏需要註釋該函數的實現:

 

  1. 修改每個工程下的Makefile中的mk文件路徑

使用adf下的project.mk文件:

    

3.3 ESP32編譯固件大於1M問題

    首先確定模組flash size大於2M並選擇實際flash size,修改partition_table爲Single factory app, no OTA (僅支持一個APP,無法再進行OTA空中升級):

       

修改core dump 轉存地爲None:

修改idf裏分區表APP的大小爲2M:

   

  修改完這三個地方後,make clean下工程,清除完成後再重新編譯一下就可以燒錄運行大於1M的固件了。

3.4 SD卡功能支持長文件名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章