4、开发环境搭建:Keil/IAR/ESP-IDF/Arduino IDE安装、工具链配置、第一个点灯程序。

好,咱们正式开始动手了。

这一章,说白了就是“磨刀”。刀磨得快,砍柴才不费劲。我见过太多初学者,代码写得挺好,结果卡在环境配置上,一卡就是半天。嗯,咱们今天就把这事儿彻底搞定。

我会带你装四个最常用的开发环境:Keil、IAR、ESP-IDF 和 Arduino IDE。你可能会问:“有必要装这么多吗?” 我的回答是:看项目。不同的芯片、不同的场景,用的工具不一样。咱们做物联网的,手里家伙事儿得全。

4.1 Keil MDK 安装与配置

Keil 是 ARM 内核 MCU 开发的老牌工具。我个人习惯用它做 STM32 系列的项目,稳定,生态好。

4.1.1 下载与安装

  1. 去 Keil 官网下载 MDK-Arm 版本。注意,别下成 C51 了,那是给 51 单片机用的。
  2. 双击安装包,一路 Next。路径我建议别带中文,也别有空格。比如 D:\Keil_v5
  3. 安装完成后,桌面会有个 uVision 图标。双击打开,嗯,界面有点复古,但用习惯了你会觉得它很稳。
注意: 安装路径不要有中文!我曾经有个同事,路径写了个“项目”,结果编译死活报错,查了半天才发现是路径问题。

4.1.2 工具链配置

Keil 自带 Arm Compiler,一般不用额外配置。但如果你要用 GCC 工具链,需要手动指定路径。

具体操作:

  • 点击菜单栏 Project -> Manage -> Project Components
  • Folders/Extensions 标签页里,可以设置编译器路径。

我个人建议新手直接用默认的 Arm Compiler 6,兼容性好,踩坑少。

4.1.3 第一个点灯程序

咱们用 STM32F103C8T6 来演示。新建工程,选择芯片型号,然后写个最简单的点灯代码:

#include "stm32f10x.h"

void delay(void) {
    for (uint32_t i = 0; i < 500000; i++);
}

int main(void) {
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    while (1) {
        GPIO_SetBits(GPIOC, GPIO_Pin_13);
        delay();
        GPIO_ResetBits(GPIOC, GPIO_Pin_13);
        delay();
    }
}

编译、下载。如果看到板子上的 LED 一闪一闪,恭喜你,Keil 环境搞定了。

4.2 IAR Embedded Workbench 安装

IAR 的编译器优化做得很好,代码密度高。我在做低功耗项目时,特别喜欢用 IAR。

4.2.1 安装步骤

  1. 从 IAR 官网下载对应版本。注意,IAR 分 ARM、MSP430、RISC-V 等不同版本,别下错了。
  2. 安装过程比 Keil 稍微复杂一点,需要输入 License。如果是试用版,可以申请 30 天评估 License。
  3. 安装完成后,打开 IAR Embedded Workbench IDE。界面比 Keil 现代一些,但快捷键需要适应。
小技巧: IAR 的工程文件后缀是 .ewp,工作空间文件是 .eww。我习惯一个项目建一个工作空间,方便管理。

4.2.2 工具链配置

IAR 的工具链是自带的,不需要额外配置。但要注意,不同芯片的器件支持包需要单独安装。

比如你要用 STM32G0 系列,需要去 ST 官网下载 IAR 的器件支持包,然后导入。

4.2.3 点灯程序移植

把刚才 Keil 的代码复制到 IAR 工程里,注意头文件路径要重新设置。IAR 的库函数和 Keil 略有不同,但核心逻辑一样。

编译通过后,下载到板子。嗯,灯亮了。这说明工具链没问题。

4.3 ESP-IDF 环境搭建

ESP-IDF 是乐鑫官方为 ESP32 系列芯片提供的开发框架。说实话,第一次装的时候我也觉得有点繁琐,但用熟了会发现它真的很强大。

4.3.1 安装方式

有两种方式:

  • 离线安装器: 去乐鑫官网下载 ESP-IDF 离线安装包。一键安装,省心。
  • 命令行安装: 用 git 克隆仓库,然后运行安装脚本。适合喜欢折腾的开发者。

我个人推荐新手用离线安装器。为什么呢?因为命令行安装需要下载很多依赖,网络不好的话,你会等到怀疑人生。

4.3.2 工具链配置

安装完成后,打开 ESP-IDF 的命令行工具(ESP-IDF CMD)。输入 idf.py --version,如果显示版本号,说明安装成功。

这里有个坑:Windows 系统下,路径不能太长,否则编译会报错。我建议把工程放在盘符根目录下,比如 D:\esp_projects

4.3.3 第一个点灯程序

ESP32 的点灯程序和 STM32 不太一样。它用的是 FreeRTOS 框架,代码结构更复杂一些。

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define BLINK_GPIO GPIO_NUM_2

void app_main(void) {
    gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
    while (1) {
        gpio_set_level(BLINK_GPIO, 0);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        gpio_set_level(BLINK_GPIO, 1);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

idf.py build 编译,idf.py flash 下载。看到 ESP32 板子上的 LED 闪烁,嗯,成了。

4.4 Arduino IDE 安装与配置

Arduino IDE 是入门最简单的工具。你想想看,连小学生都能用它做项目,咱们用起来肯定没问题。

4.4.1 安装步骤

  1. 去 Arduino 官网下载 IDE。有 Windows、macOS、Linux 版本。
  2. 安装过程很简单,一路 Next 就行。
  3. 打开 IDE,界面很简洁。菜单栏只有几个选项。

4.4.2 添加开发板支持

Arduino IDE 默认只支持 Arduino 自家的板子。要支持 ESP32,需要手动添加开发板管理器 URL。

  • 点击 文件 -> 首选项,在“附加开发板管理器网址”里填入乐鑫的 JSON 链接。
  • 然后点击 工具 -> 开发板 -> 开发板管理器,搜索 ESP32,安装。
重要: 安装 ESP32 支持包时,需要下载很多文件。如果网络慢,可以尝试用手机热点,或者换个时间段再试。

4.4.3 第一个点灯程序

Arduino 的代码风格非常简洁。点灯程序只需要几行:

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  delay(1000);
}

选择好开发板和端口,点击上传。几秒钟后,灯就开始闪了。是不是很简单?

4.5 避坑指南与个人经验

好,四个环境都搭完了。我来分享几个我踩过的坑:

  • 驱动问题: 有些开发板需要安装 USB 转串口驱动。比如 CH340 芯片的板子,Windows 10 可能自动识别,但 Windows 7 需要手动装驱动。我曾经在一个客户现场,折腾了半小时才发现是驱动没装。
  • 路径问题: 再次强调,所有工具的安装路径和工程路径都不要有中文和空格。这是很多新手容易忽略的。
  • 版本兼容: Keil 和 IAR 的不同版本之间,工程文件可能不兼容。我建议团队内部统一版本,避免互相打不开工程。
我的建议: 如果你是初学者,先从 Arduino IDE 开始,快速体验点灯的成就感。然后逐步过渡到 Keil 或 IAR,深入学习底层原理。ESP-IDF 适合有一定基础后,做复杂物联网项目时使用。

好了,环境搭好了,工具链也配好了。下一章,咱们开始真正写代码,做通信。你准备好了吗?