3、开发环境搭建:Keil MDK安装、STM32CubeMX配置、串口驱动安装与调试
好,咱们正式开始动手了。这一章我带你把开发环境搭起来。说实话,很多初学者一上来就急着写代码,结果编译报错、下载失败、串口没反应……折腾半天心态崩了。我当年也踩过这些坑,所以这一章咱们稳扎稳打,把地基打牢。
3.1 Keil MDK安装——别选错版本
Keil MDK,说白了就是ARM芯片的IDE。咱们用的STM32L0系列,必须装MDK-ARM版本,别下成C51了——那个是给8051用的,我见过有人搞混过。
安装步骤:
- 去Keil官网下载MDK-ARM最新版(目前是5.38)。
- 双击安装,一路Next。注意安装路径不要有中文。
- 安装完成后,打开Keil,点 File → License Management。
- 用注册机生成License,粘贴进去。嗯,这一步网上教程很多,我就不细说了。
注意: Keil 5 和 Keil 4 的工程文件不兼容。我建议统一用 Keil 5,因为 STM32CubeMX 生成的工程默认就是 Keil 5 格式。
装完之后,建议装一个 ARM Compiler 6。Keil默认带的是V5编译器,但V6编译速度更快,生成的代码也更小。我个人习惯用V6,尤其是LoRa这种对功耗敏感的项目,能省一点是一点。
3.2 STM32CubeMX配置——图形化点一点
STM32CubeMX是ST官方出的图形化配置工具。你想想看,以前配时钟、配GPIO、配串口,全得看数据手册翻寄存器,现在鼠标点几下就生成了初始化代码,省了多少事。
安装步骤:
- 去ST官网下载STM32CubeMX,安装时需要Java环境。如果没有JRE,它会提示你下载。
- 安装完成后,打开CubeMX,点击 Help → Manage embedded software packages。
- 找到 STM32L0 系列,下载对应的固件包。我建议下载最新版,但别太新——有时候最新版有bug。我一般用1.12.1,稳得很。
配置项目:
- 新建工程,选择芯片 STM32L071CBTx(咱们课程用的就是这个)。
- 配置时钟:HSE 选外部晶振,LSE 选32.768kHz(RTC用)。
- 配置串口:USART1,波特率115200,8N1。引脚默认是PA9(TX)和PA10(RX)。
- 配置GPIO:把LoRa模块的CS、RST、DIO0等引脚设为推挽输出或输入。
- 点击 Project → Generate Code,生成Keil工程。
小技巧: 生成代码时,记得勾选 Initialize all peripherals。不然有些外设的初始化代码会被省略,你后面调试时会莫名其妙。
3.3 串口驱动安装——别让设备管理器里出现黄色感叹号
串口驱动,说白了就是让电脑认识你的USB转串口模块。咱们用的是CH340G,便宜又好用。但Windows 10/11有时候会自动装驱动,有时候装不上——我遇到过好几次。
安装步骤:
- 去官网下载CH340驱动,或者用我提供的驱动包。
- 插上USB转串口模块,打开设备管理器。
- 如果看到 黄色感叹号,右键点击,选择 更新驱动程序,手动指定驱动路径。
- 安装成功后,设备管理器里会出现 COM端口,比如COM3、COM4。
注意: 有些山寨CH340模块,驱动装不上。我建议买正品模块,也就十几块钱,省心很多。我曾经被一个山寨模块坑了整整一个下午,最后发现是硬件问题。
3.4 串口调试——验证你的环境是否正常
环境搭好了,怎么知道能不能用?写个最简单的程序,让STM32通过串口发个"Hello World"出来。
代码示例:
#include "main.h"
#include "usart.h"
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_USART1_UART_Init();
uint8_t msg[] = "LoRa Temp Tracker Ready!\r\n";
while (1)
{
HAL_UART_Transmit(&huart1, msg, sizeof(msg)-1, 1000);
HAL_Delay(1000);
}
}
编译下载后,打开串口助手(比如SSCOM、Putty),设置波特率115200,数据位8,停止位1,无校验。如果看到 "LoRa Temp Tracker Ready!" 每秒打印一次,说明你的环境搭建成功了。
调试心得: 如果串口没反应,先检查三件事:
1. 波特率是否匹配?
2. TX/RX是否接反?
3. 共地了吗?
我遇到过最奇葩的一次,是USB转串口模块的TX引脚虚焊了……所以硬件连接也要仔细检查。
1. 波特率是否匹配?
2. TX/RX是否接反?
3. 共地了吗?
我遇到过最奇葩的一次,是USB转串口模块的TX引脚虚焊了……所以硬件连接也要仔细检查。
3.5 避坑指南——我踩过的那些坑
- Keil编译报错"Error: L6218E":多半是启动文件没加。检查工程里有没有
startup_stm32l071xx.s。 - CubeMX生成的代码编译不过:可能是固件包版本和Keil编译器不兼容。我建议CubeMX用1.12.1,Keil用V5或V6编译器。
- 串口乱码:检查时钟配置。如果HSE频率不对,串口波特率会偏。用示波器量一下TX引脚的波形,最直接。
- 下载失败:检查SWD接口的接线。我习惯用ST-Link,四根线:SWCLK、SWDIO、GND、3.3V。别接反了。
好了,环境搭建就到这里。下一章咱们开始写LoRa驱动,让模块真正收发数据。到时候你会发现,前面这些准备工作,都是值得的。