zsky · 2022年01月21日

esp32学习-手把手搭建Windows 下 esp-idf 开发环境

公众号【一起学嵌入式】,分享 RTOS、Linux、C

前言

偶然看到了吃灰多年的 esp32 开发板。先把板子上的灰吹吹,然后找了一根 USB 线,接上电脑。灯亮了,嗯,还能用。

image-20220117215807523.jpg

这块板子是 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 安装包。

image-20220117224527452.png

其次,安装 git。下载 git 安装包,下载网址如下(复制到浏览器打开):

https://git-scm.com/download/win

根据 Windows 版本,选择下载对应的安装包。

image-20220117225236253.png

2. 下载 idf 开发软件包

打开官方网站,找到 ESP-IDF 开发包下载位置,点击下载

image-20220117225348637.png

下载完成后,解压,将其放在没有空格的路径下。

image-20220117225452078.png

配置开发环境

除了 ESP-IDF 本身,还需要安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

可以通过命令脚本,手动安装这些工具。

打开 cmd 命令终端,进入到 idf 目录下,然后执行如下指令,开始自动安装软件包需要的工具:

install.bat

开始自动下载并安装工具:

image-20220118223930306.png

此过程比较耗时,耐心等待。

安装完成之后,提示如下

image-20220118224017191.png

接着,按照提示,运行如下脚本。设置环境变量。

exoprt.bat

注意,每次打开命令终端,都需要运行一下这个脚本文件,使得 IDF 的工具添加到 PATH 环境变量中。

这样,才可以在当前的命令终端窗口中,使用 IDF 提供的脚本工具。

image-20220118224622194.png

测试 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

image-20220118232504892.png

接着运行如下命令,编译工程:

idf.py build

开始编译工程代码

image-20220118232838188.png

编译完成如下所示:

image-20220118233211529.png

下载程序的时候,将 GPIO0 引脚拉低,按下复位按键,使模块进入串口 boot 状态,等待上位机连接,下载程序。

然后输入如下命令 开始下载程序,其中 PORT 为 PC 端串口号(例如,COM2):

idf.py -p PORT flash

下载成功后,提示信息如下图:

image-20220119002523591.png

程序下载成功后,GPIO0 拉高(或者断开接地连接),复位开发板,查看运行情况。

1. IDF 监视器查看运行信息

在命令终端输入下面的命令,其中 PORT 为 PC 端的串口号

idf.py -p PORT monitor

监视 “hello_world” 工程的运行情况

image-20220119005612170.png

2. 串口助手查看运行信息

打开 PC 端串口调试助手,按下复位按键。

image-20220119005752327.png

OK,程序下载成功,在 ESP32 开发板上跑起来啦。

公众号【一起学嵌入式】,号内回复 "esp32-idf",获取 idf 环境安装包。
推荐阅读
关注数
2392
内容数
31
公众号【一起学嵌入式】专注嵌入式软件技术分享,RTOS、Linux、C/C++,一起学习,一起进步。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息