首发,公众号【一起学嵌入式】
前言
偶然看到了吃灰多年的 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 开发板上跑起来啦。
公众号【一起学嵌入式】,获取更多精彩内容