欢迎关注 youcans@xidian【嵌入式软件AI编程】专栏
【STM32C5教程】01. STM32CubeMX2 安装与STM32C5闪灯
1. 引言
STM32CubeMX2 是 ST 推出的新一代图形化配置工具。与旧版 CubeMX 相比,它最显著的变化是原生支持 CMake 工程和 VS Code 工作流,生成速度也更快,对习惯用开源工具链的开发者更友好。
NUCLEO-C542RC 是 ST 基于 STM32C542RCT6 推出的 Nucleo-64 开发板。这颗 MCU 采用 Arm Cortex-M33 内核,拥有 256KB Flash 和 64KB RAM,板载 STLINK-V3EC 调试器/编程器,支持 USB 重枚举,可提供大容量存储、虚拟串口和调试端口三种功能。根据 UM3615 用户手册,板载用户 LED(LD1)连接在 PA5 引脚上,这使它成为验证工具链是否打通的理想目标。
本文的目标是从零开始,完整走一遍 CubeMX2 安装 → 工程创建 → 引脚配置 → 代码编写 → 编译烧录 → LED 闪烁 的流程。文中也会记录实际遇到的驱动和 USB 线问题,供后来者参考。
2. 环境准备
开发板:NUCLEO-C542RC(搭载 STM32C542RCT6)
USB 线:USB Type-A 或 Type-C 转 Type-C,必须支持数据传输
PC:Windows 10 或 11,64 位
3. STM32CubeMX2 安装
从 ST 官网的 STM32CubeMX 页面获取安装程序。
注意:
1、路径规范:
安装路径和后续的工程路径不要包含中文、空格或特殊字符。
2、网络与权限:
首次运行 CubeMX2 时会自动同步 Pack 包,需要保持网络畅通。
3、 安装完成后启动软件,如果能看到首页的 Board / MCU 选择界面,说明安装成功。
4. 创建 STM32 项目
STM32CubeMX2 提供两种项目创建入口:Board(开发板) 和 MCU(芯片型号)。前者适合手头已有官方开发板、希望快速开始的情况;后者适合使用自定义硬件或需要精确指定芯片型号的场景。
4.1 基于开发板创建
进入 Board 选择界面
启动 STM32CubeMX2,在首页点击 “Board”,进入开发板选择列表。搜索并选中开发板
在搜索框中输入 NUCLEO-C542RC,从列表中找到该开发板并选中它,双击或回车进入下一步。
- 填写项目信息
在弹出的项目详情窗口中,输入项目名称(例如 GPIO_IOToggle),并选择项目创建路径。路径建议使用纯英文、不含空格和特殊字符的目录。
- 创建项目
点击 “Automatically Download, Install & Create Project”。STM32CubeMX2 会自动联网下载 STM32C5 系列的固件包(首次使用需要一定时间),然后创建工程。
- 等待完成并启动
完成后界面显示 “Project Successfully Created”,点击 Launch Project 进入工程配置界面。
- 进入配置页面
软件自动进入 Pinout 视图,此时可以开始配置 PA5 等引脚功能。
4.2 基于 MCU 创建
- 进入 MCU 选择界面
启动 STM32CubeMX2,在首页点击 “MCU”,进入芯片型号选择列表。
- 搜索并选中芯片
在 MCU name 输入框中输入 STM32C542RC(或完整型号 STM32C542RCT6),从筛选出的列表中选择对应型号。
- 填写项目信息
输入项目名称和项目保存路径。项目名称避免使用特殊字符,路径同样建议使用纯英文目录。
- 创建项目
点击 “Automatically Download, Install & Create Project”。工具会自动下载该芯片对应的固件包并创建工程。
- 等待完成并启动
等待进度条完成,界面提示 “Project Successfully Created” 后,点击 Launch Project 进入配置界面。
- 进入配置页面
软件自动进入 Pinout 视图,后续可继续配置时钟、外设和引脚功能。
5. 点灯工程配置
5.1 进入 Pinout 视图
项目创建完成后,软件自动进入Pinout配置页面。
### 5.2 为 PA5 分配 GPIO 信号 (1)在芯片引脚图中找到 **PA5**。NUCLEO-C542RC 板载用户 LED(LD1)连接在 PA5 上,通过焊桥 SB8 与 LED 相连,默认 SB8 ON。根据 UM3615 手册,向 PA5 写入高逻辑电平(“1”)即可点亮 LD1。 (2)右键点击 **PA5** 引脚,在弹出菜单中选择 **Assign signal**,然后选择 **GPIO**。这一步是把引脚的功能分配给 GPIO 模块。 (3)再次右键点击 **PA5**,选择 **Configure GPIO**(或 Go to configuration GPIO),进入引脚功能详细设置界面。
5.3 设置 PA5 为输出模式
在 GPIO 配置界面中找到 PA5,将其模式(Mode)从默认的保留状态改为Output。此时 PA5 被配置为推挽输出,可用于驱动 LED。
5.4 设置别名 LD1
在 PA5 的配置项中找到 User Label(用户标签)输入框,填入 LD1。
设置别名后,CubeMX2 生成的代码中会自动创建对应的宏定义,例如 LD1_GPIO_Port 和 LD1_Pin,后续在 main.c 中可以直接使用这两个宏来操作 LED,无需再手动记忆 GPIOA 和 GPIO_PIN_5。
5.5 生成工程
(1)在 CubeMX2 顶部标签栏或左侧导航中点击 Project Settings(项目设置),进入工程输出配置页面。
(2)在 IDE Format(或 Toolchain/IDE)下拉选项中,选择 CMake。这一步决定生成的是标准 CMake 工程,而非旧版的 MDK-ARM 或 STM32CubeIDE 专用工程格式。
(3)在 CMake Toolchain(工具链)下拉选项中,选择 GCC。这一步指定使用 GCC 编译器生成对应的 CMake 配置文件,生成的工程可直接用 VS Code + STM32Cube 插件打开、编译和烧录。
确认 IDE Format 为 CMake、CMake Toolchain 为 GCC 后,即可点击 “Generate IDE project” 继续执行生成代码操作。
5.6 生成结果说明
生成完成后,项目路径下会出现标准 CMake 工程结构,包含:
- Core/:main.c、main.h 等用户代码
- Drivers/:HAL 库和 CMSIS
- CMakeLists.txt:CMake 构建脚本
- cmake/:工具链和编译选项配置
与旧版 CubeMX 生成的.uvprojx或.ioc文件不同,CubeMX2 输出的是可直接用 VS Code 或 STM32CubeIDE 打开的标准 CMake 工程。
6. 生成代码、编译与烧录
6.1 生成代码
在 CubeMX2 界面中点击Generate Code。软件会先执行一次配置检查,如果没有错误,则开始在指定路径下生成 CMake 工程文件。
生成完成后,项目路径下会出现标准 CMake 工程结构,包含Core/(main.c、main.h等用户代码)、Drivers/(HAL 库和 CMSIS)、CMakeLists.txt(CMake 构建脚本)、cmake/(工具链和编译选项配置)。
6.2 在 VS Code 中打开工程
在 VS Code 中安装STM32Cube插件(STM32CubeIDE for Visual Studio Code)。
用 VS Code 打开 CubeMX2 生成的工程目录,例如:
GPIO_IOToggle/GPIO_IOToggle_cmake插件会自动识别CMakeLists.txt,并加载编译配置。如果状态栏出现 STM32 相关图标或构建按钮,说明工程已被正确识别。
6.3 编写点灯代码
在Core/Src/main.c中找到while(1)循环,加入:
while(1){// 每 500ms 翻转一次 PA5HAL_GPIO_TogglePin(LD1_GPIO_Port,LD1_Pin);HAL_Delay(500);}由于第 3 步已设置别名为LD1,CubeMX2 会生成LD1_GPIO_Port和LD1_Pin两个宏,分别对应 GPIOA 和 GPIO_PIN_5,可直接使用。保存main.c,VS Code 的 CMake 插件会自动触发重新配置。
6.4 编译与烧录
点击 VS Code 底部状态栏的Build按钮,或使用命令面板执行 CMake 构建。编译完成后,终端应输出Build finished with exit code 0或类似信息,无 error。
用支持数据传输的 USB Type-C 线连接 NUCLEO-C542RC 的 ST-LINK USB 口(CN1)。打开设备管理器,在“端口 (COM 和 LPT)”下应能看到STLink COMx。如果显示“未知设备”带黄色叹号,说明 USB 线只供电不传数据,需更换。
在 VS Code 中点击Flash(烧录)按钮,或通过 STM32Cube 插件选择 ST-LINK 烧录。
6.5 验证与参数修改
烧录成功后,开发板上的 LD1(绿色用户 LED)以 500ms 间隔翻转,闪烁周期约为 1 秒。
将HAL_Delay(500)改为HAL_Delay(100),再次 Build 并 Flash,观察 LD1 闪烁周期变为约 200ms。LED 按修改后的节奏闪烁,说明编译、烧录、运行全链路正常。
7. 总结
本文从零开始,完整走了一遍 STM32CubeMX2 的安装、NUCLEO-C542RC 的工程创建、PA5 引脚配置、点灯代码编写、编译烧录到 LED 闪烁的全过程。
回顾整个流程,核心步骤可以概括为:
- 安装 CubeMX2:注意路径不含中文和空格,保持网络畅通,首次运行会自动同步 Pack 包。
- 创建工程:可以基于 Board(NUCLEO-C542RC)快速开始,也可以基于 MCU(STM32C542RC)精确指定芯片型号。
- 配置 PA5:右键分配 GPIO 信号,设置模式为 Output,并设置别名为 LD1,生成 LD1_GPIO_Port 和 LD1_Pin 两个宏。
- 生成工程:Project Settings 中选择 IDE Format 为 CMake、CMake Toolchain 为 GCC,生成标准 CMake 工程。
- 编写代码:在 while(1) 中调用 HAL_GPIO_TogglePin 和 HAL_Delay,实现 LED 闪烁。
- 编译烧录:在 VS Code 中打开工程,Build 后 Flash,观察 LD1 按设定频率闪烁。
STM32CubeMX2 原生支持 CMake 工程,配合 VS Code 的 STM32Cube 插件,整个开发流程比旧版工具链更轻量、更贴近现代嵌入式开发习惯。希望本文的记录对正在使用 NUCLEO-C542RC 或初次接触 CubeMX2 的读者有所帮助。
版权声明:
欢迎关注 youcans@xidian【嵌入式软件AI编程】专栏
转发必须注明原文链接:
【STM32C5教程】01. STM32CubeMX2 安装与STM32C5闪灯
Copyright by ai4mcu@qq.com 2026
Crated:2026-10