2、开发环境搭建:Keil MDK安装与破解、STM32CubeMX配置、串口驱动安装、CH340/CP2102驱动调试、第一个LED闪烁程序
好,咱们正式开始动手了。
这一章,说白了就是「磨刀不误砍柴工」。环境搭不好,后面全是坑。我见过太多新手卡在驱动装不上、编译器报错、下载器连不上这些地方,一卡就是半天。所以这一章,咱们一步一个脚印,把工具链彻底捋顺。
2.1 Keil MDK 安装与破解
Keil MDK,这是ARM内核单片机开发最主流的IDE。我个人习惯用MDK 5.38版本,稳定,兼容性好。
安装步骤
- 去Keil官网下载MDK-ARM安装包。注意选对版本,别下成C51了。
- 双击安装,一路Next。安装路径我建议不要有中文和空格,比如
C:\Keil_v5。 - 安装过程中会提示安装器件包(Pack),先跳过,后面用CubeMX统一管理。
破解(注册)
Keil MDK是需要License的。这里咱们用注册机生成激活码。
- 以管理员身份运行Keil MDK。
- 点击
File → License Management。 - 复制CID码。
- 以管理员身份运行注册机(keygen.exe)。
- 把CID粘贴进去,Target选ARM,点击Generate生成激活码。
- 把激活码复制回Keil的License Management窗口,点击Add LIC。
2.2 STM32CubeMX 配置
STM32CubeMX是ST官方出的图形化配置工具。你想想看,以前配置时钟树、GPIO、外设,全得对着寄存器手册一行一行写代码,现在用CubeMX点几下鼠标就生成了,省了多少事。
安装与配置
- 去ST官网下载STM32CubeMX,安装过程很简单,一路Next。
- 安装完成后,打开CubeMX,它会提示你安装固件包(Firmware Package)。
- 选择你用的芯片型号,比如STM32F103C8T6,点击安装对应的固件包。
- 选择芯片: 根据你的板子选型号,别选错了封装。
- 配置时钟: 我一般直接用HSE(外部高速晶振),然后让CubeMX自动计算时钟树。新手别手动改PLL倍频系数,容易翻车。
- 配置GPIO: 比如把PC13设置为推挽输出,用来接LED。
- 生成代码: 选择MDK-ARM作为工具链,生成工程。
嗯,这里要注意:生成代码时,CubeMX会问你「初始化外设的方式」。我建议选「初始化所有外设」,这样生成的代码结构清晰,方便后面调试。
2.3 串口驱动安装
串口是单片机调试的「生命线」。printf打印、数据收发、固件升级,全得靠它。但串口驱动装不好,电脑根本认不出你的板子。
CH340 驱动
CH340是国产芯片,很多便宜的开发板都用它。驱动安装很简单:
- 去WCH官网下载CH340驱动。
- 双击安装,插上板子,电脑应该就能识别出COM口了。
CP2102 驱动
CP2102是Silicon Labs的芯片,比CH340稳定一些,但驱动安装稍微麻烦点。
- 去Silicon Labs官网下载CP210x驱动程序。
- 安装后插上板子,如果还是识别不到,手动更新驱动:设备管理器 → 右键 → 更新驱动程序 → 浏览我的电脑 → 选择驱动文件夹。
2.4 CH340/CP2102 驱动调试
驱动装好了,怎么确认它真的能用?我一般用串口助手发个数据测试一下。
测试步骤
- 打开设备管理器,确认COM口号。比如COM3。
- 打开串口助手(比如SSCOM、Putty),设置波特率115200、8位数据、1位停止位、无校验。
- 把板子的TX和RX短接(自收发测试)。
- 发送数据,如果能收到自己发的数据,说明驱动和硬件都没问题。
- 设备管理器里没有COM口: 驱动没装好,或者USB线有问题。换根线试试。
- 有COM口但收发不了数据: 检查波特率是否匹配,TX/RX是否接反了。
- 数据乱码: 波特率不一致,或者板子上的晶振频率不对。
2.5 第一个LED闪烁程序
好了,环境搭好了,驱动也通了。咱们来写第一个程序——让LED闪烁。这是单片机界的「Hello World」。
硬件连接
假设你的板子上LED接在PC13引脚(比如STM32F103C8T6最小系统板),高电平点亮。
代码实现
用CubeMX生成工程后,在 main.c 的 while(1) 循环里添加以下代码:
/* 用户代码开始 */
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(500); // 延时500ms
/* 用户代码结束 */
就这么简单。编译、下载,你就能看到LED以1秒的频率闪烁了。
编译与下载
- 点击Keil的编译按钮(或者按F7),确保0错误0警告。
- 用ST-Link或者J-Link连接板子,点击下载按钮(或者按F8)。
- 下载成功后,复位板子,LED应该就开始闪烁了。
小结
这一章内容不少,但都是实打实的硬功夫。环境搭好了,后面写代码、调外设才会顺风顺水。下一章咱们开始讲GPIO的深入应用,包括按键输入、外部中断这些。
记住:工具是死的,人是活的。遇到问题别慌,先检查驱动、再检查接线、最后检查代码。按这个顺序排查,90%的问题都能解决。
- Keil MDK安装时注意路径无中文,破解时以管理员身份运行。
- CubeMX配置时钟树时,新手建议用自动计算。
- CH340/CP2102驱动装不上时,检查驱动签名问题。
- 第一个LED程序,核心就是GPIO翻转加延时。
好了,动手试试吧。有问题随时在群里问我。