左右左左右学堂BOARD LAB / 电路板实验室

从看懂原理,到亲手验证 · LAB 01

电路,亲手试一试。

一块学习板,六个小实验。改变输入,观察引脚、波形与外设的每一次回应。

固件与教学版 v0.4基于 STM32F103C8T6 配套原理图
交互与固件 · 同一块板

手动操作和固件执行共用这块学习板。直接操作右侧实验,或在右侧加载 ELF / HEX / BIN;固件接管后,可通过下方按键、ADC 和串口输入与程序交互。

VIRTUAL BOARD

学习板平面图

实物平面图 · 俯视
配套学习板实物平面俯视图 LED1 · PA15熄灭 · 输出 1

LED1 随 PA15 实时亮灭 · 手动操作与固件执行共用反馈

PA15 输出电平1 HIGH
LED 状态熄灭
运行引擎教学模型 BEHAVIOR

选择仿真案例

教学实验

固件仿真

支持为这块 STM32 学习板编译的 ELF、HEX 和 BIN。选择解压后的 STM32F103C8 Cube 工程文件夹可在线编译。编译所需源码会发到本站,成品固件在浏览器中加载。

固件外设与寄存器

综合仿真工程 BoardLab_HAL 源码下载(包含多外设测试,与单集视频原工程分开。)

运行固件后,可操作按键、ADC 和串口输入;程序自行处理中断和外设读写。

按键与中断

固件需配置 GPIOC 上拉、EXTI13 和 NVIC。松开不会替代程序配置。

等待中断…

电位器 · ADC1_IN9

ADC 数据寄存器 / 转换次数

等待转换

定时器与 PWM

等待程序配置定时器…

TIM2/3/4 内部时钟、向上计数、更新/比较中断、PWM1。综合工程:TIM2 中断翻转 LED,TIM3_CH3 输出 1 kHz / 25%。

串口监视器

等待程序配置串口…

等待固件发送…
最近发送字节 / HEX

输入数据进入 USART 接收队列,由固件轮询或中断读取。综合示例接收后回显;并非网页自行回显。

CPU 与外设寄存器
程序写寄存器记录(最近 20 条)
    等待程序写入外设寄存器。

已验证完整 HAL 工程的启动、HAL_Init / HAL_Delay、HSE/PLL 72 MHz、SysTick、NVIC 优先级/屏蔽/中断嵌套、EXTI13、TIM2/3/4 更新/比较中断与 PWM1、ADC1 规则单通道轮询/中断、USART1/2/3 轮询/中断收发,以及外设/SRAM 位带。你课程的 30.1_ODR 与 29.1_My_printf 原始 ELF 已回归通过。
这是已验证外设范围内的完整工程运行,不代表支持所有 HAL 模块:DMA、USB、I²C、SPI、RTC、ADC 扫描/注入、定时器捕获/编码器与 FreeRTOS 上下文切换尚未支持,未支持的外设访问会明确停止。执行后端为 ARM M-class(默认 Cortex-M33),未逐指令限制 Cortex-M3 特性。每条指令推进 32 个虚拟 HCLK tick,不是实板周期或墙钟时序;不计算模拟噪声。标准 Cube 工程可在线编译,也可直接选择 ELF、HEX 或 BIN。开源许可与源码 ↗

LED1 灯位与电路说明

LED1 位置与接线已由嘉立创 PCB 工程核对:3.3 V → R10 → LED1 → PA15,低电平点亮。STEP 未显示其封装,图中按 PCB 坐标补绘 LED1 反馈标记;其余元件保持实物俯视图。

WATCH THE SIGNAL

电平观察窗

根据模型状态绘制

EVERY ACTION COUNTS

实验记录

    下一阶段 / FIRMWARE ENGINE

    从操作模型,走向运行程序。

    已接入中断、定时器、ADC 与串口,提供可下载的完整 HAL 综合工程。下一阶段继续扩展 DMA 和板载器件协议,并用相同固件对照实板。

    MODEL NOTES

    这块虚拟板,模拟了什么?

    连接依据:你提供的两页 STM32F103C8T6 原理图。平面俯视图来自你提供的 2025-12-17 STEP 文件,保留板形、器件位置和文件中的颜色;文件未含可用丝印纹理,因此未补绘丝印。模型中部分重复器件共用位号,尚未确认的 LED、KEY 实体位置不做模拟高亮;电气状态以实验读数为准。

    已实现

    PA15 低电平点灯、JTAG 引脚占用演示、PC13 输入上拉与边沿事件、PA0/PA1 正交周期、PB1 理想 12 位 ADC、PB0 理想 PWM、USART1 的 UTF-8 字节和 8N1 帧。

    当前边界

    固件模式已执行真实 ARM 指令,接入 RCC、GPIOA-D、AFIO、SysTick/NVIC/EXTI、TIM2/3/4、ADC1 与 USART1/2/3;支持范围详见固件面板。教学模式保留六项交互演示。固件模式不采用实板周期精确时序;不计算触点抖动、RC 暂态、电流、功耗、电机力矩或串口电气误差。未实现 AHT20、Flash、串口屏和电机模型。

    教学预设

    供电与 ADC 参考电压均为 3.3 V;默认关闭 JTAG、保留 SWD;按键启用内部上拉。编码器正向定义为 11 → 01 → 00 → 10 → 11,一周期计一个教学步数,实际机械方向和 TIM 编码器计数模式需另行配置。PWM 不推算舵机角度。电源开关仅暂停外设响应并保留设置;“重置实验”才恢复教学预设。

    技术依据:ST RM0008 参考手册 ↗

    A SEPARATE EXECUTION ENGINE

    真实程序运行计划

    1. 01 · 教学交互版 / 已完成

      校核引脚、操作反馈和可解释的波形,保存实验记录。

    2. 02 · 最小固件闭环 / 已实现

      已接入 Unicorn.js ARM M-class 引擎,支持 ELF/HEX/BIN 加载、复位向量、Flash/SRAM、RCC/AFIO/GPIOA 和 PA15 点灯。提供点亮、熄灭、循环闪烁的可下载示例。实板对照验收仍待进行。

    3. 03 · HAL 外设功能 / 已验证

      已完成 SysTick/NVIC/EXTI、TIM2/3/4、ADC1 和 USART1/2/3 的已列明功能,通过综合 HAL 工程与两份原始课程 ELF 测试。实板电气和时序对照仍待验收。

    4. 04 · 板级器件 / 待开发

      按确切器件型号扩展传感器、Flash、屏幕与电机模型。未支持的寄存器必须显式报告,不能静默忽略。

    在学习板下方运行固件示例或上传自己的固件。外设逐项扩展,未实现的寄存器会显式报错。