这是一篇摘录。官方这里有更详细的步骤和说明。
我的使用环境为Ubuntu。
-
准备工作
-
建个目录克隆项目 git clone –recursive https://github.com/espressif/esp-idf.git
-
进入目录安装 ./install.sh (我并没有自定义安装目录)
-
设置环境变量,让它随处可用: . $HOME/esp/esp-idf/export.sh
-
创建工程:把目录下examples/get-started/hello_world复制到你的目录作试用
-
设置我的目标板: idf.py set-target esp32
-
设备配置: idf.py menuconfig 这里有介绍各项功能
-
编译工程: idf.py build
-
烧录: idf.py -p PORT [-b BAUD] flash
-
看监控: idf.py -p PORT monitor (注意使用Ctrl+]退出)
也可以烧录后开始监控 idf.py -p PORT flash monitor
idf.py -p /dev/ttyUSB0 flash 我没有添加波特率也可以,看起来是按默认460800连接。
idf.py size 可以查看应用程序相关大小
idf.py app - 仅构建应用程序。
idf.py app-flash - 仅烧写应用程序。
idf.py app-flash 会自动判断是否有源文件发生了改变而后重新构建应用程序。
idf.py erase_flash 擦除 Flash
看HelloWorld也不复杂。
#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)
{
printf("Hello world!\n");
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU cores, 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());
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();
}