3. 开发环境搭建:Keil MDK与STM32CubeIDE安装、STM32CubeMX配置工程、串口驱动安装与调试、逻辑分析仪基础使用
好,咱们正式开始动手了。这一章我带你把吃饭的家伙事儿都装好、调通。说白了,搞单片机电力数据采集,开发环境就是你的工作台。台子搭不稳,后面写再多代码也是白搭。
我个人习惯把环境搭建分成四块:IDE(集成开发环境)、配置工具(CubeMX)、串口驱动、以及调试用的逻辑分析仪。咱们一块一块来啃。
3.1 Keil MDK 安装——老牌工具,稳如老狗
Keil MDK 是 ARM 单片机开发的老牌 IDE。我最早接触它是在 2010 年左右,那时候还在用 Keil C51。这么多年下来,它最大的优点就是稳定、编译效率高。
安装步骤:
- 去 ARM 官网下载 MDK-ARM 安装包(目前最新是 V5.38 或 V5.39)。
- 双击安装,一路 Next。注意安装路径不要有中文。
- 安装完成后,需要注册。如果你有正版 License,直接输入;如果没有,可以用评估版(代码限制 32KB)。
- 安装对应芯片的 Pack 包。比如咱们用 STM32F103,就去 Keil 官网下载 STM32F1xx_DFP 包。
安装完成后,打开 Keil,点 Project → New μVision Project,选择你的芯片型号。如果能正常弹出芯片选择界面,说明安装成功了。
3.2 STM32CubeIDE——免费且强大,我推荐新手用这个
STM32CubeIDE 是 ST 官方推出的免费 IDE,基于 Eclipse 内核。说实话,我刚开始用的时候觉得它有点慢,但后来发现它的调试功能确实比 Keil 强,而且免费、不限代码大小。
安装要点:
- 去 ST 官网下载 STM32CubeIDE 安装包(Windows/Linux/Mac 都有)。
- 安装时注意勾选“安装 ST-Link 驱动”。
- 安装路径同样不要有中文。
我个人习惯是:Keil 和 CubeIDE 都装。Keil 用来做最终产品的编译(因为它的编译优化更好),CubeIDE 用来做调试和原型验证。你想想看,两个工具互补,多好。
3.3 STM32CubeMX——配置工程的灵魂
STM32CubeMX 是一个图形化配置工具。说白了,你点点鼠标,它就能帮你生成初始化代码。对于电力数据采集这种需要配置 ADC、定时器、串口的项目,它简直是神器。
配置流程:
- 打开 CubeMX,点击
New Project,选择芯片型号(比如 STM32F103C8T6)。 - 在
Pinout & Configuration界面,配置外设:- RCC: 选择 HSE(外部晶振),一般用 8MHz。
- SYS: Debug 选择 Serial Wire(如果你用 ST-Link)。
- USART1: 模式选 Asynchronous,波特率设 115200。
- ADC1: 配置为连续转换模式,分辨率 12 位。
- 在
Clock Configuration界面,把系统时钟配到 72MHz(F103 的最高主频)。 - 点击
Project Manager,设置工程名、路径,IDE 选 MDK-ARM 或 STM32CubeIDE。 - 点击
GENERATE CODE,生成代码。
/* USER CODE BEGIN */ 和 /* USER CODE END */ 之间的部分)。否则下次重新生成时,你的修改会被覆盖。我刚开始就吃过这个亏,改了半天,一重新生成全没了。
3.4 串口驱动安装与调试——数据采集的“嘴巴”
电力数据采集,最终要把数据发到上位机。串口就是最常用的通信方式。但串口驱动装不好,数据就发不出去。
驱动安装:
- 如果你用的是 USB 转 TTL 模块(比如 CH340、CP2102),需要安装对应的驱动。
- CH340 驱动:去官网下载,或者用驱动精灵自动安装。
- CP2102 驱动:Silicon Labs 官网有。
调试方法:
- 插上 USB 转 TTL 模块,打开设备管理器,看端口号(比如 COM3)。
- 打开串口助手(比如 SSCOM、Putty),设置波特率 115200、数据位 8、停止位 1、无校验。
- 用杜邦线把模块的 TX 接板子的 RX,RX 接板子的 TX,GND 接 GND。
- 板子通电,如果串口助手能收到数据,说明驱动和硬件都正常。
3.5 逻辑分析仪基础使用——看时序的“眼睛”
逻辑分析仪,说白了就是看信号波形的。在电力数据采集中,你要看 ADC 的采样时序、串口的数据波形、SPI 的时钟和数据线。没有它,你就像瞎子摸象。
基础操作:
- 买一个便宜的 8 通道逻辑分析仪(比如 Saleae 的仿品,几十块钱)。
- 下载对应的上位机软件(比如 PulseView 或 Saleae Logic)。
- 用杜邦线把逻辑分析仪的通道 0 接到板子的 TX 引脚,GND 接 GND。
- 设置采样率(一般 24MHz 够用),点击开始采样。
- 板子发送一串数据,逻辑分析仪上就能看到高低电平的波形。
- 串口协议是异步的,起始位是低电平,数据位从低位到高位,停止位是高电平。
- 在逻辑分析仪软件里,添加一个 UART 协议解析器,设置波特率 115200。
- 软件会自动把波形解析成十六进制数据。比如你发 0x55,波形应该是 01010101(起始位 0 + 数据位 10101010 + 停止位 1)。
- 用 CubeMX 新建工程,配置一个 GPIO(比如 PA0)为推挽输出。
- 生成代码后,在 main 函数里写:
- 编译、下载到板子。如果 LED 以 1Hz 的频率闪烁,说明环境搭建成功。
怎么看串口波形?
3.6 环境验证——跑一个点灯程序
所有工具装好后,咱们跑一个最简单的程序来验证环境是否正常。
步骤:
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // 点亮 LED
HAL_Delay(500); // 延时 500ms
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // 熄灭 LED
HAL_Delay(500); // 延时 500ms
嗯,到这里,你的开发环境就搭好了。下一章咱们开始真正写电力数据采集的代码。记住:环境搭得越稳,后面写代码越顺。别嫌麻烦,一步到位。