2、开发环境搭建:Keil MDK安装与破解、STM32CubeMX配置、串口驱动安装、CH340/CP2102驱动调试、第一个LED闪烁程序

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

这一章,说白了就是「磨刀不误砍柴工」。环境搭不好,后面全是坑。我见过太多新手卡在驱动装不上、编译器报错、下载器连不上这些地方,一卡就是半天。所以这一章,咱们一步一个脚印,把工具链彻底捋顺。

2.1 Keil MDK 安装与破解

Keil MDK,这是ARM内核单片机开发最主流的IDE。我个人习惯用MDK 5.38版本,稳定,兼容性好。

安装步骤

  1. 去Keil官网下载MDK-ARM安装包。注意选对版本,别下成C51了。
  2. 双击安装,一路Next。安装路径我建议不要有中文和空格,比如 C:\Keil_v5
  3. 安装过程中会提示安装器件包(Pack),先跳过,后面用CubeMX统一管理。
注意: 安装路径不要带中文!我曾经见过有人装在「D:\开发工具\Keil」这种路径,结果编译某些库时报一些莫名其妙的路径错误,排查了半天才发现是中文惹的祸。

破解(注册)

Keil MDK是需要License的。这里咱们用注册机生成激活码。

  1. 以管理员身份运行Keil MDK。
  2. 点击 File → License Management
  3. 复制CID码。
  4. 以管理员身份运行注册机(keygen.exe)。
  5. 把CID粘贴进去,Target选ARM,点击Generate生成激活码。
  6. 把激活码复制回Keil的License Management窗口,点击Add LIC。
小技巧: 注册机容易被杀毒软件误删。我一般会在安装前先把杀毒软件暂时关掉,或者把注册机添加到白名单。另外,一定要「以管理员身份运行」,否则激活会失败。

2.2 STM32CubeMX 配置

STM32CubeMX是ST官方出的图形化配置工具。你想想看,以前配置时钟树、GPIO、外设,全得对着寄存器手册一行一行写代码,现在用CubeMX点几下鼠标就生成了,省了多少事。

安装与配置

  1. 去ST官网下载STM32CubeMX,安装过程很简单,一路Next。
  2. 安装完成后,打开CubeMX,它会提示你安装固件包(Firmware Package)。
  3. 选择你用的芯片型号,比如STM32F103C8T6,点击安装对应的固件包。
核心配置流程:
  • 选择芯片: 根据你的板子选型号,别选错了封装。
  • 配置时钟: 我一般直接用HSE(外部高速晶振),然后让CubeMX自动计算时钟树。新手别手动改PLL倍频系数,容易翻车。
  • 配置GPIO: 比如把PC13设置为推挽输出,用来接LED。
  • 生成代码: 选择MDK-ARM作为工具链,生成工程。

嗯,这里要注意:生成代码时,CubeMX会问你「初始化外设的方式」。我建议选「初始化所有外设」,这样生成的代码结构清晰,方便后面调试。

2.3 串口驱动安装

串口是单片机调试的「生命线」。printf打印、数据收发、固件升级,全得靠它。但串口驱动装不好,电脑根本认不出你的板子。

CH340 驱动

CH340是国产芯片,很多便宜的开发板都用它。驱动安装很简单:

  1. 去WCH官网下载CH340驱动。
  2. 双击安装,插上板子,电脑应该就能识别出COM口了。
避坑指南: 我曾经遇到过CH340驱动装不上,设备管理器里显示黄色感叹号。后来发现是驱动签名问题。Win10/Win11需要禁用驱动强制签名才能安装。具体操作:重启电脑 → 按F8进入高级启动 → 禁用驱动程序强制签名。

CP2102 驱动

CP2102是Silicon Labs的芯片,比CH340稳定一些,但驱动安装稍微麻烦点。

  1. 去Silicon Labs官网下载CP210x驱动程序。
  2. 安装后插上板子,如果还是识别不到,手动更新驱动:设备管理器 → 右键 → 更新驱动程序 → 浏览我的电脑 → 选择驱动文件夹。
小技巧: 如果你手头有多个USB转串口模块,建议在设备管理器里给每个COM口重命名,比如「STM32_Debug」、「GPS_Module」,这样以后调试时一眼就能认出哪个是哪个。

2.4 CH340/CP2102 驱动调试

驱动装好了,怎么确认它真的能用?我一般用串口助手发个数据测试一下。

测试步骤

  1. 打开设备管理器,确认COM口号。比如COM3。
  2. 打开串口助手(比如SSCOM、Putty),设置波特率115200、8位数据、1位停止位、无校验。
  3. 把板子的TX和RX短接(自收发测试)。
  4. 发送数据,如果能收到自己发的数据,说明驱动和硬件都没问题。
常见问题排查:
  • 设备管理器里没有COM口: 驱动没装好,或者USB线有问题。换根线试试。
  • 有COM口但收发不了数据: 检查波特率是否匹配,TX/RX是否接反了。
  • 数据乱码: 波特率不一致,或者板子上的晶振频率不对。

2.5 第一个LED闪烁程序

好了,环境搭好了,驱动也通了。咱们来写第一个程序——让LED闪烁。这是单片机界的「Hello World」。

硬件连接

假设你的板子上LED接在PC13引脚(比如STM32F103C8T6最小系统板),高电平点亮。

代码实现

用CubeMX生成工程后,在 main.cwhile(1) 循环里添加以下代码:

/* 用户代码开始 */
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(500);  // 延时500ms
/* 用户代码结束 */

就这么简单。编译、下载,你就能看到LED以1秒的频率闪烁了。

个人经验: 我第一次写LED闪烁程序时,下载后灯死活不亮。检查了半天,发现是CubeMX里把PC13配置成了开漏输出。改成推挽输出就好了。所以,配置GPIO时一定要确认模式对不对。

编译与下载

  1. 点击Keil的编译按钮(或者按F7),确保0错误0警告。
  2. 用ST-Link或者J-Link连接板子,点击下载按钮(或者按F8)。
  3. 下载成功后,复位板子,LED应该就开始闪烁了。
注意: 下载时如果提示「No Target Connected」,检查一下ST-Link的接线:SWDIO、SWCLK、GND、3.3V,这四根线必须接对。我见过有人把SWDIO和SWCLK接反了,折腾了半天才发现。

小结

这一章内容不少,但都是实打实的硬功夫。环境搭好了,后面写代码、调外设才会顺风顺水。下一章咱们开始讲GPIO的深入应用,包括按键输入、外部中断这些。

记住:工具是死的,人是活的。遇到问题别慌,先检查驱动、再检查接线、最后检查代码。按这个顺序排查,90%的问题都能解决。

本章核心要点:
  • Keil MDK安装时注意路径无中文,破解时以管理员身份运行。
  • CubeMX配置时钟树时,新手建议用自动计算。
  • CH340/CP2102驱动装不上时,检查驱动签名问题。
  • 第一个LED程序,核心就是GPIO翻转加延时。

好了,动手试试吧。有问题随时在群里问我。