2. 开发环境搭建:Keil/IAR/STM32CubeIDE安装配置、仿真器驱动与Git基础

说实话,做单片机开发这么多年,我见过太多人栽在环境搭建这一步。工具链没配好,后面调试起来简直要命。今天咱们就把这三样东西——IDE、仿真器驱动、版本控制——一次性理清楚。

2.1 三大IDE的选择与安装

先说说我个人的习惯。ARM Cortex-M系列我主要用Keil,IAR偶尔碰,STM32CubeIDE则是这两年项目里用得越来越多。你可能会问,到底选哪个?

特性 Keil MDK IAR EWARM STM32CubeIDE
编译器 ARMCC v6/v5 IAR C/C++ GCC (arm-none-eabi)
调试器支持 J-Link, ST-Link, ULINK J-Link, I-Jet, ST-Link ST-Link (原生), J-Link (插件)
代码大小优化 优秀 极优 良好
免费/收费 收费(有代码限制版) 收费(有代码限制版) 完全免费
生态成熟度 极高 高 中等(增长快)
我的建议:如果你刚入门,或者项目以STM32为主,直接用STM32CubeIDE。它免费、开箱即用,而且HAL库和CubeMX集成得最好。但如果你做的是量产产品,尤其是对代码尺寸有极致要求,Keil或IAR的编译器优化会让你少改很多Bug。

2.2 Keil MDK安装与配置

Keil的安装其实不复杂,但有几个坑。我踩过,你最好别踩。

  1. 下载安装包:去ARM官网或Keil官网下载MDK-Arm最新版。注意版本号,我建议用5.38或更新版本,对ARMCC v6支持更好。
  2. 安装路径:别用中文路径!别用空格!我见过有人把Keil装到“D:\程序\Keil_v5”里,结果编译时路径解析出问题,折腾半天。
  3. 激活License:如果你有正版License,在File → License Management里添加。没有的话,用代码限制版(32KB代码限制)也够学完这门课。
  4. 安装器件包:打开Pack Installer,找到你用的芯片型号(比如STM32F103C8),点击Install。这一步很多人忘,结果新建工程时找不到芯片。
注意:Keil的Pack Installer有时候会卡住。我曾经在客户现场演示时,等了10分钟还没加载完……解决办法:关掉代理,或者手动下载.pack文件离线安装。

2.3 IAR EWARM安装要点

IAR的安装逻辑和Keil不太一样。它按芯片架构分版本,比如ARM版、RISC-V版。别下错了。

  • 下载:去IAR官网,选“IAR Embedded Workbench for Arm”。
  • 安装:一路Next,但注意勾选“Add IAR to PATH”,这样命令行也能用iccarm。
  • License:IAR的License管理比较严格。如果你用试用版,记得在License Manager里激活30天试用。
  • 配置工程:IAR的工程文件是.ewp,和Keil的.uvprojx不通用。但你可以通过CMSIS-Pack导入部分配置。

个人经验:IAR的编译器优化确实强。有一次我把一个Keil编译后32KB的固件,用IAR重新编译,直接压到26KB。但代价是——IAR的调试界面我总觉得不如Keil顺手。嗯,这纯属个人习惯。

2.4 STM32CubeIDE——免费且强大

STM32CubeIDE是ST官方基于Eclipse打造的免费IDE。它集成了CubeMX的图形化配置功能,非常适合快速原型开发。

安装步骤很简单:

  1. 去ST官网下载安装包(Windows/Linux/macOS都有)。
  2. 解压后直接运行安装程序。注意:它需要Java运行环境,但安装包会自带。
  3. 第一次启动时,选择工作空间(Workspace)路径。同样,别用中文路径。
  4. 安装完成后,在Help → Install New Software里可以添加插件,比如J-Link支持。
小技巧:STM32CubeIDE默认的代码补全快捷键是Ctrl+Space,和Windows输入法切换冲突。我习惯改成Alt+/,在Window → Preferences → Keys里搜“Content Assist”就能改。

2.5 仿真器驱动安装:J-Link与ST-Link

仿真器是连接电脑和开发板的桥梁。驱动装不好,你连下载程序都做不到。我当年第一次用J-Link时,插上电脑没反应,还以为仿真器坏了……结果是驱动没装。

J-Link驱动

  • 下载:去SEGGER官网下载“J-Link Software and Documentation Pack”。
  • 安装:运行安装程序,它会自动安装驱动和J-Link Commander工具。
  • 验证:插上J-Link,打开设备管理器,应该能看到“J-Link”设备。或者在命令行输入JLinkExe,如果能进入SEGGER命令行界面,说明驱动正常。
避坑指南:我曾经遇到J-Link在Win10上被识别为“未知设备”。原因是Windows自动更新装了一个不兼容的驱动。解决办法:在设备管理器里手动更新驱动,选择“从计算机查找驱动”,路径指向SEGGER安装目录下的Driver文件夹。

ST-Link驱动

  • 内置驱动:ST-Link的驱动通常随STM32CubeIDE或Keil一起安装。如果你单独需要,可以去ST官网下载“ST-Link/V2-1 USB driver”。
  • 验证:插上ST-Link(比如Nucleo板自带的),设备管理器里应该出现“STMicroelectronics STLink dongle”。
  • 固件升级:ST-Link的固件偶尔需要更新。用STM32CubeProgrammer的“Firmware update”功能,或者ST-Link Utility都能做。

2.6 版本控制基础:Git

你可能觉得,一个人做单片机项目,用Git是不是小题大做?我告诉你,不是。有一次我改了一个驱动文件,改完发现程序跑不起来了,但我不记得改了哪里。如果没有Git,我只能重写。有了Git,一个git diff就解决了。

Git安装与配置

  1. 下载:去git-scm.com下载对应系统的安装包。
  2. 安装:一路默认,但注意在“Choosing the default editor”这一步,我建议选“Use Visual Studio Code as Git's default editor”。
  3. 配置用户名和邮箱:打开Git Bash,输入:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

基本操作流程

说白了,Git就三板斧:

  • git init:在项目文件夹里初始化仓库。
  • git add .:把修改的文件加入暂存区。
  • git commit -m "描述信息":提交一个版本。

我的习惯:每次提交前,先写一个.gitignore文件,把编译生成的中间文件(比如.obj、.hex、.bin、Debug文件夹)排除掉。不然Git会把这些二进制文件也跟踪起来,仓库会变得很臃肿。

与IDE集成

Keil和STM32CubeIDE都支持Git插件。我个人更推荐在命令行或VS Code里操作Git,IDE里的Git功能有时候会漏掉文件。

2.7 知识体系总览

下面这张图,把本章的核心内容串起来了。你搭建环境时,可以对照着检查每一步。

开发环境搭建知识体系 选择IDE Keil MDK IAR EWARM STM32CubeIDE 仿真器驱动安装 J-Link (SEGGER) ST-Link (ST) Git版本控制 git init / add / commit .gitignore 配置

2.8 环境验证清单

环境搭完,别急着写代码。先跑一个简单的“点灯”程序,验证整个链路通不通。我列个清单,你照着检查:

步骤 检查项 预期结果
1 IDE能新建工程 选择芯片型号后,工程模板生成成功
2 编译无错误 输出0 Error, 0 Warning
3 仿真器连接 IDE的调试器设置里能识别到仿真器
4 下载程序 进度条走完,开发板复位后程序运行
5 Git初始化 git status显示工作区干净
最后说一句:环境搭建这件事,一次配好,后面几年都不用动。所以别嫌麻烦,每一步都确认清楚。我见过太多人因为驱动版本不对、路径有中文、Pack没装,浪费一整天。嗯,你肯定不想这样。