基础篇 · 5b
BSP ②:关掉 PWM 之后
跟着第 2 集那次报错走到底:0.5 牛·米负载超过电机最多能出的 0.325 牛·米,837 毫秒反转到 −7225 rpm,1 毫秒任务里的过速检查置位 0x0040。顺着调用链一行不跳:AppStatusScanSlow → set_app_Controlword(0) → motor_enable → 状态机 DISABLE、三相 0 伏 → motor_ctl_loop.c 第 237 行 bsp_set_pwm_state()。板子清 MOE,六个开关断开;SIL 只是 return,还把 0 伏交给虚拟电机,等于短路:U 相 52.6 安,多报一个过流位变成 0x4040,刹到 −618 rpm。板子那边按代码推演:线电压峰值 43.7 伏低于母线,没有电流,只报 0x0040。再看 Y01 上“PWM 就绪”永远为真,以及 SIL 里装出来的温度、报错、抱闸和计时。