3、开发环境搭建:Keil/IAR/ESP-IDF环境配置、调试器(J-Link/ST-Link)驱动安装、串口工具使用

好,咱们直接进入正题。做嵌入式气象站,第一步不是焊板子,也不是写代码,而是把吃饭的家伙——开发环境——给伺候好了。我见过太多新手,代码写得挺溜,结果卡在环境配置上,一卡就是半天。说白了,工具链不顺手,后面全是坑。

3.1 Keil MDK 环境配置

Keil 这东西,做 ARM 开发的老工程师基本都用过。我个人习惯用它来调试 STM32 系列,因为它的调试器集成度确实高。

安装步骤其实不复杂:

  • 去官网下个 MDK-ARM 最新版,注意选对版本,别下成 C51 了。
  • 安装路径不要带中文,不要有空格。我吃过这个亏,项目路径带了个“项目”俩字,编译报错找了半天。
  • 装完后,记得装对应芯片的 Pack 包。比如咱们气象站用 STM32F103,就去 Keil 的 Pack Installer 里搜 STM32F1xx_DFP。
⚠ 避坑指南: 我曾经在 Win10 上装 Keil 5,死活识别不了调试器。后来发现是杀毒软件把驱动给拦截了。装驱动时,建议暂时关掉杀毒软件。

配置工程时,有几点要注意:

  • 晶振频率要设对。气象站常用 8MHz 外部晶振,别默认用内部 RC 振荡器,那玩意儿温漂大,影响 RTC 精度。
  • Debug 选项卡里,选 ST-Link 或 J-Link,然后点 Settings,确认 SWD 模式能识别到设备 ID。
  • Flash Download 里,记得勾选 Reset and Run。不然每次下载完程序,还得手动按复位键。

3.2 IAR Embedded Workbench 配置

IAR 的编译器优化做得确实好,代码密度比 Keil 能小 10%-15%。如果你做气象站的低功耗版本,我建议试试 IAR。

配置要点:

  • 安装时选对架构,ARM 就选 ARM 版本,别选 AVR 或 MSP430 的。
  • 新建工程时,选芯片型号。IAR 的芯片支持包是自动更新的,但网络不好的话,建议手动下载离线包。
  • Options -> C/C++ Compiler -> Optimizations,我一般选 High,Balanced。选 Size 优化有时会出奇怪的问题。
💡 个人经验: IAR 的调试器驱动有时会和 Keil 冲突。我遇到过插上 J-Link,Keil 能识别,IAR 却报错。解决办法是重装 J-Link 驱动,并且确保两个 IDE 用的是同一版本的 DLL 文件。

嗯,这里要注意:IAR 的工程文件是 .ewp 和 .eww,别和 Keil 的 .uvprojx 搞混了。我刚开始用 IAR 时,老想着双击 .uvprojx 打开,结果发现根本打不开。

3.3 ESP-IDF 环境搭建

如果你用乐鑫的 ESP32 做气象站的无线传输模块,那 ESP-IDF 是绕不开的。这东西比 Arduino 复杂,但灵活性和性能强太多了。

安装流程:

  • 建议用 v4.4 或 v5.0 的 LTS 版本。别追新,新版本有时会有兼容性问题。
  • Windows 下用 ESP-IDF 的离线安装包,一键装完。Linux 下就 git clone 然后跑 install.sh。
  • 装完后,打开 ESP-IDF Command Prompt,运行 idf.py set-target esp32。

🔧 核心命令速查:

idf.py set-target esp32        # 设置目标芯片
idf.py menuconfig              # 配置项目参数
idf.py build                   # 编译
idf.py -p COM3 flash           # 烧录
idf.py -p COM3 monitor         # 串口监视

为什么推荐用命令行?因为图形化的 Eclipse 插件我试过,经常卡死。命令行虽然看着原始,但稳定。你想想看,气象站要连续运行几个月,开发环境不稳定怎么行?

3.4 调试器驱动安装:J-Link 与 ST-Link

调试器是嵌入式开发的“听诊器”。没有它,代码跑飞了你都不知道。

J-Link 驱动安装:

  • 去 Segger 官网下载 J-Link Software and Documentation Pack。
  • 安装时选“Install USB Driver”,这个步骤不能省。
  • 装完后,插上 J-Link,设备管理器里应该能看到“J-Link”设备。
  • 如果显示黄色感叹号,手动更新驱动,路径选安装目录下的 USBDriver 文件夹。

ST-Link 驱动安装:

  • ST-Link 的驱动集成在 STM32CubeProgrammer 里。我建议直接装这个工具,顺便还能用它的烧录功能。
  • 装完后,插上 ST-Link V2,系统会自动识别。如果没反应,去设备管理器里手动装一下。
  • 注意:ST-Link 有 V2 和 V3 版本,驱动不通用。V3 需要单独装。
⚠ 我曾经踩过的坑: 有一次调试气象站的 I2C 传感器,J-Link 死活连不上目标板。折腾了两小时,最后发现是调试器的排线松了。嗯,先检查物理连接,再怀疑驱动问题。

3.5 串口工具使用

气象站的数据最终要通过串口打印出来。串口工具就是你的“眼睛”。

常用工具对比:

工具名称 优点 缺点 推荐场景
PuTTY 轻量、稳定 界面简陋 快速调试
SecureCRT 支持脚本、日志 收费 长时间数据记录
SSCOM 国产、免费、功能全 偶尔报毒 日常开发
MobaXterm 多标签、支持串口+SSH 启动慢 综合开发

串口配置要点:

  • 波特率:气象站常用 115200 或 9600。注意,ESP32 的默认波特率是 115200,STM32 的 HAL 库例程常用 115200。
  • 数据位:8 位,无校验,1 位停止位。这是标准配置,别乱改。
  • 流控:关掉 RTS/CTS。气象站一般不用硬件流控。
💡 实用技巧: 我习惯在串口工具里开启时间戳功能。这样看气象站的数据时,能清楚知道每个数据点是什么时候采集的。SSCOM 和 SecureCRT 都支持这个功能。

最后说一句:串口线也有讲究。有些便宜的 USB 转串口线,用的 CH340 芯片,在 Win10 下需要手动装驱动。CP2102 的兼容性就好很多。我个人推荐用 FT232 芯片的线,虽然贵点,但从来没出过问题。

好了,环境搭好了,调试器能连上了,串口也能打印了。下一章咱们就开始写气象站的底层驱动。记住,工欲善其事,必先利其器。环境搞不定,后面全是白费功夫。