首發,公眾號【一起學嵌入式】
前言
偶然看到了吃灰多年的 esp32 開發板。先把板子上的灰吹吹,然后找了一根 USB 線,接上電腦。燈亮了,嗯,還能用。
這塊板子是 2018 年買的,三年多沒玩這塊板子了,樂鑫官網的開發軟件包不知道更新多少個版本了。
上官網查資料,嘗試在 Windows 下搭建最新的 ESP-IDF 開發環境,准備玩玩這款高性能的開發板。
當然,第一個測試程序,怎么能少得了 Hello world。
OK,開始吧。
環境搭建准備
1. 安裝必備的工具
首先,需要在 PC 上安裝 pthon,python 版本一定是 3.0 以上,否則會出錯。如果已經安裝過 python 則跳過這一步。
在 python 官網上,即可下載 python 安裝包,網址如下(復制到瀏覽器打開):
https://www.python.org/downloads/windows/
我的電腦是 64 位 Windows10,因此下載 64 位版本的 python 安裝包。
其次,安裝 git。下載 git 安裝包,下載網址如下(復制到瀏覽器打開):
https://git-scm.com/download/win
根據 Windows 版本,選擇下載對應的安裝包。
2. 下載 idf 開發軟件包
打開官方網站,找到 ESP-IDF 開發包下載位置,點擊下載
下載完成后,解壓,將其放在沒有空格的路徑下。
配置開發環境
除了 ESP-IDF 本身,還需要安裝 ESP-IDF 使用的各種工具,比如編譯器、調試器、Python 包等。
可以通過命令腳本,手動安裝這些工具。
打開 cmd 命令終端,進入到 idf 目錄下,然后執行如下指令,開始自動安裝軟件包需要的工具:
install.bat
開始自動下載並安裝工具:
此過程比較耗時,耐心等待。
安裝完成之后,提示如下
接着,按照提示,運行如下腳本。設置環境變量。
exoprt.bat
注意,每次打開命令終端,都需要運行一下這個腳本文件,使得 IDF 的工具添加到 PATH 環境變量中。
這樣,才可以在當前的命令終端窗口中,使用 IDF 提供的腳本工具。
測試 IDF 環境
idf 開發包中的示例代碼 <esp-idf-v4.3.1\examples\get-started\hello_world>
,復制 hello_world
目錄到 esp-idf-v4.3.1
目錄所在的文件夾下:
示例程序代碼如下:
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
void app_main(void)
{
/* 打印 Hello world */
printf("Hello world!\n");
/* 打印芯片信息 */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
CONFIG_IDF_TARGET, chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
/* 打印芯片版本 */
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
/* 倒計時 10 秒后,重啟 */
for (int i = 10; i >= 0; i--)
{
printf("Restarting in %d seconds...\n", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}
該示例代碼的功能為:
- 首先打印
Hello world!
- 然后打印芯片信息
- 接着,倒計時 10 秒鍾后,重啟
命令終端進入 hello world
目錄下。
首先配置目標芯片(本文用到的開發板為 esp32):
idf.py set-target esp32
接着運行如下命令,編譯工程:
idf.py build
開始編譯工程代碼
編譯完成如下所示:
下載程序的時候,將 GPIO0 引腳拉低,按下復位按鍵,使模塊進入串口 boot 狀態,等待上位機連接,下載程序。
然后輸入如下命令 開始下載程序,其中 PORT
為 PC 端串口號(例如,COM2):
idf.py -p PORT flash
下載成功后,提示信息如下圖:
程序下載成功后,GPIO0 拉高(或者斷開接地連接),復位開發板,查看運行情況。
1. IDF 監視器查看運行信息
在命令終端輸入下面的命令,其中 PORT
為 PC 端的串口號
idf.py -p PORT monitor
監視 “hello_world” 工程的運行情況
2. 串口助手查看運行信息
打開 PC 端串口調試助手,按下復位按鍵。
OK,程序下載成功,在 ESP32 開發板上跑起來啦。
公眾號【一起學嵌入式】,獲取更多精彩內容