2、开发环境搭建:Arduino IDE / ESP-IDF / STM32CubeIDE 安装与配置、串口驱动安装、第一个点灯程序
好,咱们正式开始动手了。
做嵌入式开发,第一道坎就是搭环境。说实话,我见过太多新手卡在这一步,工具链没配好,连个灯都点不亮,信心直接被打没了。今天咱们就把三个主流环境——Arduino IDE、ESP-IDF、STM32CubeIDE——全部捋一遍。串口驱动怎么装?第一个点灯程序怎么写?我一步步带你走。
2.1 为什么需要三个环境?
你可能会问:一个IDE不够用吗?
嗯,这个问题我当年也纠结过。后来做项目多了才明白:不同的芯片,有不同的生态。
- Arduino IDE:上手最快,适合快速验证想法。我经常用它做原型测试,写个传感器读取、控制个继电器,几分钟搞定。
- ESP-IDF:乐鑫官方的框架,功能全,适合做WiFi、蓝牙、OTA升级这类复杂应用。咱们这个灌溉控制器要用到OTA,所以它必须配好。
- STM32CubeIDE:ST意法半导体的官方IDE,适合做工业级产品。如果你以后要做更复杂的控制逻辑,它会是主力。
说白了,这三个工具各司其职。咱们的课程以ESP-IDF为主,但另外两个我也会带你配好,方便你以后扩展。
2.2 Arduino IDE 安装与配置
先来个最简单的。
Arduino IDE 的安装没什么技术含量,但有几个细节要注意。
- 下载:去 arduino.cc 官网,下载对应你操作系统的版本。Windows选.exe,macOS选.dmg,Linux选AppImage。
- 安装:一路默认就行。但我建议你不要装到C盘,尤其是Windows用户。我之前有个项目,C盘满了导致编译报错,查了半天才发现是磁盘空间不够。
- 配置ESP32支持:Arduino默认不支持ESP32,需要手动添加开发板管理器URL。打开 文件 -> 首选项,在“附加开发板管理器网址”里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json。然后去 工具 -> 开发板 -> 开发板管理器,搜索“ESP32”并安装。
2.3 ESP-IDF 安装与配置
这个稍微复杂点,但别怕,我踩过的坑都帮你填平了。
ESP-IDF 是乐鑫的官方开发框架,功能比Arduino强大得多。咱们的OTA升级功能,就是基于它实现的。
- 安装方式:我推荐用离线安装器。去乐鑫官网下载ESP-IDF的离线安装包(Windows下是.exe文件)。它会自动帮你装好Python、Git、交叉编译工具链等依赖。
- 设置环境变量:安装完成后,打开命令提示符,输入
idf.py --version,如果能显示版本号,说明安装成功。如果提示“不是内部或外部命令”,那就要检查环境变量了。我记得有一次帮同事排查,发现他安装时勾选了“添加到PATH”,但实际没生效。手动加一下就行:把C:\esp-idf\esp-idf\tools和C:\esp-idf\esp-idf\python_env\idf4.4_py3.8_env\Scripts加到系统PATH里。 - 创建第一个工程:打开终端,运行
idf.py create-project my_ota_project。这会生成一个模板工程,里面有main文件夹和CMakeLists.txt。
2.4 STM32CubeIDE 安装与配置
这个IDE是基于Eclipse的,功能很全,但第一次用可能会觉得有点重。
- 下载:去ST官网搜索“STM32CubeIDE”,注册账号后下载。注意选择对应操作系统的版本。
- 安装:解压后直接运行安装程序。它会自动检测你电脑上有没有Java环境,如果没有,它会帮你装一个。
- 配置调试器:如果你用的是ST-Link调试器,插上USB后,Windows会自动安装驱动。如果没装成功,去ST官网下载“ST-Link驱动”手动安装。macOS和Linux一般免驱。
- 创建工程:打开IDE,选择 File -> New -> STM32 Project,然后选择你的芯片型号(比如STM32F103C8T6)。它会生成一个带HAL库的模板工程。
2.5 串口驱动安装
串口是嵌入式开发者的“眼睛”。没有它,你连芯片在干什么都不知道。
咱们用的开发板,不管是ESP32还是STM32,通常都集成了USB转串口芯片。常见的有CH340、CP2102、FT232等。
- CH340:国产芯片,性价比高。Windows 10/11通常能自动识别,如果不行,去官网下载驱动。
- CP2102:Silicon Labs的芯片,稳定可靠。驱动可以去Silicon Labs官网下载。
- FT232:FTDI的芯片,老牌厂商。驱动一般系统自带。
怎么确认驱动装好了?插上开发板,打开设备管理器(Windows),看“端口(COM和LPT)”下面有没有出现新的COM口。如果出现一个带黄色感叹号的设备,那就是驱动没装好。
2.6 第一个点灯程序
好了,环境都搭好了,咱们来点个灯吧。这是嵌入式界的“Hello World”。
我以ESP32为例,用ESP-IDF框架来写。代码很简单,但背后的原理你得懂。
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define LED_GPIO GPIO_NUM_2 // ESP32开发板上的LED通常接在GPIO2
void app_main(void)
{
// 配置GPIO为输出模式
gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);
while (1) {
// 点亮LED
gpio_set_level(LED_GPIO, 1);
printf("LED ON\n");
vTaskDelay(1000 / portTICK_PERIOD_MS); // 延时1秒
// 熄灭LED
gpio_set_level(LED_GPIO, 0);
printf("LED OFF\n");
vTaskDelay(1000 / portTICK_PERIOD_MS); // 延时1秒
}
}
这段代码做了三件事:
- 配置GPIO2为输出模式。
- 循环里,先拉高电平(点亮),延时1秒。
- 再拉低电平(熄灭),延时1秒。
编译和烧录的命令也很简单:
idf.py build # 编译
idf.py -p COM3 flash # 烧录,COM3换成你实际的串口号
idf.py monitor # 打开串口监视器,看打印信息
pinMode(2, OUTPUT);,在loop()里写 digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000);。但咱们课程要用ESP-IDF,所以你得习惯这种更“底层”的写法。
第一次看到LED闪烁的时候,说实话,我还是有点小激动的。这意味着你的开发环境完全通了,可以开始做更复杂的事情了。
2.7 本章小结
咱们这一章把三个开发环境都搭好了,串口驱动也装了,第一个点灯程序也跑起来了。你可能会觉得步骤有点多,但相信我,这些基础打牢了,后面写OTA升级代码的时候会顺畅很多。
下一章,咱们开始讲WiFi配网和MQTT通信——这才是灌溉控制器的核心。