+--------------------+
| Windows 主机 |
| (上位机显示/调试) |
+----------+---------+
^
| SPI通信
+------------------------+ +------------+-------------+
| 电机本体(PMSM) |<--PWM-----| TIM8 PWM |
| | | 通道1/2/3互补中心对齐 |
+-----------+------------+ +------------+-------------+
| |
| v
| +------------+-------------+
| | SVPWM + FOC控制 |
| | (电流PI、Park/Clarke等) |
| +------------+-------------+
| |
| v
+-----------v------------+ +-----------+------------+
| 电流/反电动势 |<----ADC----+ ADC1/2采样(多通道) |
|(三相电流+BEMF采样) | DMA | 触发源: TIM8 TRGO |
+------------------------+ +-----------+------------+
|
v
+-------------+-------------+
| DMA 控制器 |
| 自动搬运ADC数据至内存 |
+-------------+-------------+
+------------------------+ +---------------------------+
| 位置编码器 AS5600 |<--I2C2--->| I2C 接口 (I2C2) |
|(读取电机实际位置) | | PF0=SDA, PF1=SCL(硬件) |
+------------------------+ +---------------------------+
|
v
+-------------+-------------+
| OLED 显示屏 |
| (共享I2C总线) |
| 显示角度、电流、状态等 |
+---------------------------+
+------------------------+ +---------------------------+
| USART 串口 |<----------+ UART调试信息输出 |
| 打印/日志输出(可选)| +---------------------------+
+------------------------+ +---------------------------+
| TIM3 | | 毫秒级通用计时器 |
|(用于周期控制、延时等)| +---------------------------+
+------------------------+ +---------------------------+
| 系统时钟配置 | | 初始化主频、外设 |
+------------------------+ +---------------------------+
+------------------------+ +---------------------------+
| NVIC中断管理 | | 配置ADC/I2C/TIM中断等 |
+------------------------+ +---------------------------+
+------------------------+ +---------------------------+
| LED模块 |<----------+ 状态指示输出 GPIO |
+------------------------+ +---------------------------+
TIM8 (中心对齐PWM)
↓ TRGO = OCxREF 或 UPDATE
------------------------------
↓ ↓
输出PWM波 产生TRGO事件
↓
触发 ADC 规则转换
↓
ADC + DMA 自动搬运