STM32 GPIO 使用 · 沉浸式互动课件
一份面向高校 / 职校《嵌入式系统》课程的单文件网页课件。16 页幻灯片,含 6 个互动关卡、2 个实时电路演示台、5 题终极闯关与思政专题,开箱即用,无需联网、无需安装。
主讲:STM32F103(BluePill)· STM32CubeMX · HAL 库
目录
- 快速开始
- 快捷键
- 页面结构
- 互动功能
- 教学设计说明
- 自定义修改
- 技术实现
- 兼容性
- 文件说明
快速开始
- 双击打开
STM32GPIO使用-高大上版.html(推荐 Chrome / Edge) - 按
F11进入全屏 - 用
→←方向键翻页,即可开始讲课
无需服务器、无需构建、无需网络。拷到 U 盘即可在任意教室电脑上放映。
快捷键
| 按键 | 功能 |
|---|---|
→/空格/PageDown | 下一页 |
←/PageUp | 上一页 |
Home/End | 跳到首页 / 末页 |
M | 打开 / 关闭目录抽屉 |
Esc | 关闭目录抽屉 |
F11 | 浏览器全屏 |
| 屏幕右上角「⛶ 全屏」 | 全屏(等同 F11) |
| 屏幕右下角「◀ / ▶」 | 翻页 |
页面结构
| # | 页面 | 类型 |
|---|---|---|
| 01 | 封面 · STM32 GPIO 使用 | 开场 |
| 02 | 学习目标:会配置 / 会调用 / 会排错 | 目标 |
| 03 | 热身竞猜:微波炉里的 GPIO | 选择题 |
| 04 | 回顾:GPIO 的两张面孔 | 表格 + 选择题 |
| 05 | 关卡① 输入模式怎么选? | 表格 + 选择题 |
| 06 | 演示台①输入电路:悬空 / 上拉 / 按下 | 交互演示 |
| 07 | 关卡② 输出:推挽与开漏 | 卡片 + 选择题 |
| 08 | 演示台②输出电路:SET / RESET / Toggle | 交互演示 |
| 09 | 关卡③ CubeMX 配置四步 | 卡片 + 选择题 |
| 10 | 关卡④ HAL 四大函数 · 连连看 | 表格 + 三道题 |
| 11 | 关卡⑤ 代码拼装:按键控制 LED | 词库填空 |
| 12 | 关卡⑥ 排错侦探:灯为什么不亮? | 翻卡 |
| 13 | 课堂实验:按一下,翻转一次 | 代码 + 思考题 |
| 14 | 终极关卡:5 题闯关 | 计分测试 |
| 15 | 知行合一:获取与付出 | 思政翻卡 + 选择题 |
| 16 | 三句话带走这节课 | 小结 |
互动功能
演示台① · 输入电路
三个按钮切换引脚状态,电路图、读数、波形三方实时联动:
- 悬空—— 引脚下拉淡出、亮起红色天线告警,读数在 0/1 之间随机跳动,波形呈红色噪声
- 上拉输入—— 内部上拉电阻接入,稳定读到
1,波形为高电平直线 - 按下按键—— 触点闭合变绿,引脚接地读到
0,波形为低电平直线
演示台② · 输出电路
演示 PA5 经限流电阻驱动 LED:
- 拉高 · SET—— 输出 3.3 V,LED 点亮并发出柔和光晕与光束
- 拉低 · RESET—— 输出 0 V,LED 熄灭
- 翻转 · Toggle—— 演示一次调用完成状态切换(800 ms 后自动翻转)
按钮与下方代码块的高亮行一一对应,方便对照讲解。
其他题型
- 选择题—— 点选即时判分,答错会高亮正确答案并展开解析
- 翻卡—— 点击卡片翻面看答案,适合课堂"先押注再揭晓"
- 词库填空—— 从词库点选填入代码空格,填错可点空格清除重来
- 终极闯关—— 5 道题累计计分,结束后给出 5 级评语并支持重测
教学设计说明
- 难度梯度:热身 → 回顾 → 关卡①~⑥ → 课堂实验 → 终极闯关,由浅入深
- 即时反馈:所有互动当场判分并给出解析,答错不扣分
- 代码与硬件对照:每个概念都配电路图或代码块,避免"只讲概念"
- 思政落点(4 处,均以琥珀色「思政」标签标出):
- 规范意识—— 3.3 V 与 5 V 的差别,对参数的敬畏
- 国产自主—— 缺芯背景下的 GD32 / CH32 替代,HAL 开发方式的通用性
- 工匠精神—— 排错时对每个细节的较真
- 知行合一—— 以 GPIO 的输入 / 输出隐喻"获取与付出"的闭环
自定义修改
用任意文本编辑器打开 HTML 即可改,无需构建步骤。
改配色
所有颜色集中在文件顶部:root中:
:root{--teal:#2dd4bf;/* 主色 · 青绿 */--cyan:#22d3ee;/* 强调 · 天蓝 */--emerald:#34d399;/* 正确 / 高电平 */--rose:#fb7185;/* 错误 / 悬空告警 */--amber:#fbbf24;/* 思政标签 / 3.3V 电源 */--grad:linear-gradient(135deg,#14b8a6 0%,#06b6d4 50%,#22d3ee 100%);}改完这些变量,整份课件的配色会同步更新。
改内容
每页对应一个<section class="slide">,按 HTML 注释(<!-- 05 关卡① 输入模式 -->)定位即可。
- 改题目:改按钮文字,正确选项保留
data-ok="1" - 改解析:改
.exp中的文字 - 增删页面:增删
<section class="slide">块,并同步维护 JS 中的titles数组(用于目录),页码会自动更新
改终极闯关题库
在文件末尾 JS 中找到const QZ = [...],按格式增删:
{q:'题目文字',o:['选项A','选项B','选项C'],a:1,why:'解析文字'},// a 是正确选项的下标(从 0 开始)隐藏思政内容
删除对应的<span class="sz">思政</span>与.callout块即可。
技术实现
- 单文件:HTML + CSS + 原生 JavaScript,零依赖、零构建
- 字体:Google Fonts 的 Inter / JetBrains Mono / Noto Sans SC,断网时自动回退到系统字体
- 背景:Canvas 绘制的粒子网络(像电路板走线),随窗口自适应
- 电路图:手写 SVG,采用 IEC 标准原理图符号(矩形电阻、二极管 LED、触点开关、三线接地)
- 动画:CSS transition / animation,每页元素错峰入场
- 无障碍:
prefers-reduced-motion下自动关闭动效;按钮带aria-pressed状态
兼容性
| 浏览器 | 状态 |
|---|---|
| Chrome / Edge(新版) | ✅ 推荐 |
| Firefox / Safari | ✅ 支持 |
| 手机 / 平板 | ✅ 响应式,支持触摸 |
| IE | ❌ 不支持 |
建议投影分辨率 1920×1080 或更高;内容超屏时可上下滚动。
文件说明
| 文件 | 说明 |
|---|---|
| `STM32GPIO使用-html链接:https://download.csdn.net/download/shihui2003/93676684 |
下讲预告:《按键消抖与外部中断》—— 让 CPU 不再傻等,按键一按,硬件自己喊你。