相关软件使用

Tutorial: 电子电路 Category: 嵌入式 Published: 2026-10-08 01:26:37 Views: 1 Likes: 0 Comments: 0

087.0.3相关软件使用

一、相关软件使用

课程采用两条 STM32 开发链路:STM32CubeMX + Keil MDK,或者单独使用 STM32CubeIDE。两条链路都能完成芯片选择、引脚与时钟配置、初始化代码生成、编译和烧录;前者把配置与编译分给两个软件,后者把它们集成在同一 IDE 中。

flowchart LR
    M[STM32CubeMX] --> I[.ioc 配置]
    I --> H[HAL 初始化代码]
    H --> K[Keil MDK 编译/调试]
    I --> C[STM32CubeIDE]
    C --> G[GNU 工具链编译/调试]

标题下的代码块包含本节生成并查看的 Keil temp 空工程应用层 .c/.h 文件。CubeIDE 生成的工程采用同类 HAL 框架,但工程文件、编译器和部分模板内容可能不同。USER CODE BEGIN/END 是代码生成器保留用户内容的标记;重新生成代码时,应把自编逻辑写在这些区域内。

1.1 QQ软件使用

本节所说的软件实际是 STM32CubeMX。它是芯片图形化配置和初始化代码生成工具,不是即时通信软件。典型操作顺序是:选 MCU→配 SYS/RCC→配时钟树→选工具链→生成工程。

1.1.1 功能讲解

启动 STM32CubeMX 后选择 Start My project from MCU,按芯片型号新建工程。登录账号并不是创建本地工程的基本条件;需要在线下载固件包或使用在线服务时,再按软件提示登录。

CubeMX 生成的是工程骨架和外设初始化,不会自动完成项目业务。开发者仍需理解 GPIO 电平、外设参数、回调函数和错误处理。

1.1.2 新建工程

在 Part Number 中输入 STM32F103ZET6。筛选结果可能同时出现相近温度等级或封装后缀,必须核对完整订货型号:Z 表示 144 引脚,E 表示 512 KB Flash,T 表示 LQFP,6 表示 -40~85 ℃ 温度等级。

选择芯片并点击 Start Project 后,Pinout 视图应显示 144 引脚。常用器件可以收藏,但每次仍应检查型号,避免把 C8T6、VET6、ZET6 等不同容量和引脚数的器件混用。

1.1.3 系统配置

空工程先完成两项基础设置:

  1. System Core→SYS→Debug 选择 Serial Wire,保留 PA13/SWDIO 和 PA14/SWCLK 供 ST-Link 下载调试。
  2. System Core→RCC→High Speed Clock (HSE) 选择 Crystal/Ceramic Resonator,对应开发板上的 8 MHz 外部晶体。

若把 SWD 引脚配置成普通 GPIO,后续可能无法常规连接 ST-Link;若板上没有外部晶体却选择 HSE Crystal,系统会等待一个不存在的时钟。配置必须与原理图一致。

1.1.4 时钟配置

进入 Clock Configuration,选择 HSE 经 PLL 作为系统时钟,将 PLL 倍频设为 ×9:

$8\text{ MHz}\times9=72\text{ MHz}$

同时确认 AHB 为 72 MHz、APB1 不超过 36 MHz、APB2 为 72 MHz。不能只在某个输入框里填 72;应顺着蓝色时钟路径检查输入源、PLL、分频器和每条总线是否都合法。CubeMX 出现红色冲突或时钟超限时不要强行生成。

1.1.5 项目设置

在 Project Manager 中填写项目名和英文保存路径。生成 Keil 工程时,Toolchain/IDE 选择与本机工具链匹配的 MDK-ARM。在 Code Generator 中启用“为每个外设生成独立的 .c/.h 文件”,可得到 gpio.c/gpio.h 等模块化结构。

生成后打开 .uvprojx,先编译空工程。0 Error(s), 0 Warning(s) 表示基本配置正常;若要给独立烧录工具使用 HEX,在 Options for Target→Output 勾选 Create HEX File,重新构建后从实际输出目录寻找 .hex,不要假定它必然位于名为 temp 的目录。

1.2 IDE软件使用

这里的 IDE 是 STM32CubeIDE。它包含设备配置编辑器、C/C++ 编辑器、GNU Arm 编译器、调试器和 ST-Link 下载功能,适合在一个工作区内完成整个流程。

1.2.1 功能讲解

首次启动时选择工作区目录。工作区保存 IDE 元数据,可以包含多个工程;它不等于单个工程目录。建议按课程或项目建立稳定的英文工作区,不要在每次启动时随意更换路径。

1.2.2 新建工程

通过 File→New→STM32 Project,按完整型号选择 MCU,然后填写工程名。课程演示中使用过 STM32F103 系列的不同封装,实际给哪块板编程就选哪颗芯片;C8T6 与 ZET6 的引脚数、Flash、外设数量和链接脚本均不同。

新建后同样配置 SYS→Serial Wire、RCC→HSE Crystal/Ceramic Resonator 和 72 MHz 时钟树。若弹出固件包版本选择,复现实验优先选课程工程版本,新项目可选已验证的受支持版本。

1.2.3 项目设置

配置完成后按 Ctrl+S 触发代码生成。工程树中的重要文件包括:

路径作用
Core/Src/main.c初始化调用和主循环入口
Core/Src/gpio.cGPIO 时钟、模式和默认电平
Core/Src/stm32f1xx_it.cCortex 异常与外设中断服务函数
Core/Inc/main.h用户引脚宏和公共声明
.iocCubeMX 图形化配置的源数据
STM32F103...FLASH.ldFlash/RAM 分区和链接布局

点击锤子构建工程,先解决所有 error。warning 也应逐条理解,不能把“能生成 HEX/ELF”当作功能正确。烧录前还要检查 ST-Link、目标电压、SWD 接线和 Debug 配置。

1.3 内容小结

CubeMX + Keil MDK 与 STM32CubeIDE 在芯片配置和 HAL 初始化代码上高度相似,但并非所有方面完全相同:它们使用的编译器、工程文件、链接配置、调试界面和某些默认选项不同。因此同一份业务 C 代码通常可以迁移,构建结果和警告却可能不同。

初学阶段选择其中一条链路坚持使用即可。无论选择哪条,都应保留 .ioc、自编代码和工程配置,使用版本控制,并在重新生成代码前确认所有自编内容位于保留区。