4、开发环境搭建:Keil/IAR/ESP-IDF/Arduino IDE安装、工具链配置、第一个点灯程序。
好,咱们正式开始动手了。
这一章,说白了就是“磨刀”。刀磨得快,砍柴才不费劲。我见过太多初学者,代码写得挺好,结果卡在环境配置上,一卡就是半天。嗯,咱们今天就把这事儿彻底搞定。
我会带你装四个最常用的开发环境:Keil、IAR、ESP-IDF 和 Arduino IDE。你可能会问:“有必要装这么多吗?” 我的回答是:看项目。不同的芯片、不同的场景,用的工具不一样。咱们做物联网的,手里家伙事儿得全。
4.1 Keil MDK 安装与配置
Keil 是 ARM 内核 MCU 开发的老牌工具。我个人习惯用它做 STM32 系列的项目,稳定,生态好。
4.1.1 下载与安装
- 去 Keil 官网下载 MDK-Arm 版本。注意,别下成 C51 了,那是给 51 单片机用的。
- 双击安装包,一路 Next。路径我建议别带中文,也别有空格。比如
D:\Keil_v5。 - 安装完成后,桌面会有个 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 安装步骤
- 从 IAR 官网下载对应版本。注意,IAR 分 ARM、MSP430、RISC-V 等不同版本,别下错了。
- 安装过程比 Keil 稍微复杂一点,需要输入 License。如果是试用版,可以申请 30 天评估 License。
- 安装完成后,打开 IAR Embedded Workbench IDE。界面比 Keil 现代一些,但快捷键需要适应。
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 安装步骤
- 去 Arduino 官网下载 IDE。有 Windows、macOS、Linux 版本。
- 安装过程很简单,一路 Next 就行。
- 打开 IDE,界面很简洁。菜单栏只有几个选项。
4.4.2 添加开发板支持
Arduino IDE 默认只支持 Arduino 自家的板子。要支持 ESP32,需要手动添加开发板管理器 URL。
- 点击
文件 -> 首选项,在“附加开发板管理器网址”里填入乐鑫的 JSON 链接。 - 然后点击
工具 -> 开发板 -> 开发板管理器,搜索 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 的不同版本之间,工程文件可能不兼容。我建议团队内部统一版本,避免互相打不开工程。
好了,环境搭好了,工具链也配好了。下一章,咱们开始真正写代码,做通信。你准备好了吗?