← STM32 学习本地学习资料 · 不上传代码
给第一次使用 Keil 的同学

把练习代码导出成个人 Keil 工程

你可以先在网页里选择 GPIO 或 PWM 练习,再把当前草稿原样带进一个可打开的 Keil 工程。导出只是学习代码的封装:它不会替你改错、不会替你下载程序,也不会证明真实硬件已经工作。

先从哪一节练习开始

深链接会直接打开对应课程和场景;你也可以从练习页选择。

网页里的“编译并运行”是教学行为模型,不是 ARM 编译。先保存或记住你希望导出的当前草稿。

三个东西不要混淆

名称里面有什么用途
学习包exercise.c、教学头文件/profile、网页 evidence在浏览器学习和观察
Keil 包个人工程 ZIP,含固定模板、CMSIS/SPL、启动与时钟等支撑文件解压后用本机 Keil 编译
参考工程下载页与当前课程同步的完整 Keil5 项目打开 Project.uvprojx;01_Minimal 为最小实验,02_Course 为整机;main 解释见 README

六节基础课与其余知识点采用相同工程分组。打开 User/main.c,顶部是你的完整练习代码,下方 main() 调用 exercise() 一次后空循环。其他库文件保持原样。

固定硬件合同:先读完,再决定是否接线

本轮没有实物验证。不要因为网页显示 pass 或 Keil Build 通过就给板子上电。断电检查接线;不接电机、ESC、继电器或大功率 LED,不使用 5V GPIO,不在本页操作真实硬件。

参考板与时钟

目标是常见 STM32F103C8T6 / Blue Pill 参考板,不代表任意 F103 板。芯片容量为 64 KiB Flash、20 KiB RAM;8 MHz 外部晶振 → 72 MHz SYSCLK/HCLK;APB1 为 36 MHz,但定时器倍频后 TIM2 输入时钟为 72 MHz;APB2 为 72 MHz。

GPIO:PB12 外接红色 LED 与 1 kΩ

PB12 是本课外接 LED 的教学引脚,不是 Blue Pill 的 PC13 板载 LED。请不要把 PC13 板载灯的经验套到本课。

场景接线(LED 阳极 A、阴极 K)点亮电平
core / fault(低有效)3.3V → 1kΩ → LED A → LED K → PB12PB12 = 0
variant(高有效)PB12 → 1kΩ → LED A → LED K → GNDPB12 = 1

PWM:PA0 / TIM2_CH1 外接 LED

PA0/TIM2_CH1 → 1kΩ → LED A → LED K → GND。core/fault 目标为 1 kHz、25%;variant 目标为 2 kHz、25%。上面两种 GPIO 回路的极性不能混用。

六步导出与打开

  1. 选择课程和场景在练习页选择 GPIO/PWM,并在代码区编辑当前草稿。
  2. 先在网页运行点击“编译并运行”查看教学行为;这一步不调用 ARM 工具链。
  3. 导出点击代码区主按钮“导出 Keil5 练习工程”。ZIP 已含 Project.uvprojx、启动文件、库和你的当前代码;下方“备份网页源码(非 Keil 工程)”仅供备份。
  4. 解压到短英文目录例如 D:\STM32Practice\gpio-core。不要直接在 ZIP 压缩包内打开。
  5. 打开工程双击解压目录中的 Project.uvprojx,确认工程文件和 User 文件均来自同一目录。
  6. 构建在 Keil 使用 Build(F7)或 Rebuild。不要点击 Download;本指南不执行烧录。

Keil 环境与常见报错

本工程固定针对 ARM Compiler 5。当前本机已检测到 MDK 5.24、ARM Compiler 5.06 update 5(build 528)、Keil STM32F1xx_DFP 2.2.0;检测到版本不等于本次工程已构建通过。

  1. 如果工具链不对,打开 Options for Target → Target → ARM Compiler,选择 5。
  2. 如果本机没有 ARM Compiler 5,请从 Keil 官方主页或 Arm 官方途径安装合法工具。
  3. 不承诺 AC6 或其他版本兼容;工程不捆绑编译器、许可证,不介绍盗版或破解。
出现错误时,先看 Build 输出中的 User/main.c 行号,再修改自己的练习代码。Keil 中的修改不会自动回写网站;网站草稿也不会因导出而清空。

怎样理解结果

结果能说明什么不能说明什么
浏览器 pass当前教学模型观察符合场景目标不是 Keil 编译 pass,也不是实物通过
Keil Build 通过本机 ARM 工具链完成了工程构建不代表行为正确或 LED 实物会亮
实物验证在正确板型、断电检查和安全接线后得到的独立结果本轮没有这项证据

exercise.json 保存当前草稿、场景和网页检查记录;HARDWARE.md 说明本题接线。build-status.json 默认为 not-run,执行 Build 不会自动回写这个 JSON;构建后以 Keil 日志和新生成的 .axf / .hex 为准。六节基础课均附完整标准库;网页运行仍只支持课程声明的教学 API。