/** * bldc_fsm.h — 状态机接口 * * 状态: STOP → ALIGN → ACCEL → RUN → FAULT */ #ifndef BLDC_FSM_H #define BLDC_FSM_H #include "bldc_hw.h" #include "bldc_comm.h" #include "bldc_bemf.h" #include "bldc_pid.h" /* ==================== 状态机调度函数 ==================== */ /* 初始化状态机 */ void FSM_Init(void); /* 主循环调度 (在 while(1) 中调用) */ /* 处理速度环 500Hz + 位置环 50Hz + 保护监测 */ void FSM_Loop(void); /* TIM1 更新中断处理 (20kHz) */ /* 处理 ADC 读取 + 过零检测 + 电流环 + 换相延迟 */ void FSM_PwmIsr(void); /* 启动/停止控制 */ void FSM_Start(void); void FSM_Stop(void); /* 设置速度参考值 (RPM) */ void FSM_SetSpeedRef(int16_t rpm); /* 获取当前状态字符串 (调试用) */ const char* FSM_StateStr(void); /* 故障清除 */ void FSM_ClearFault(void); /* 状态机步进 (内部调用, 状态切换) */ void FSM_StateStep(void); #endif /* BLDC_FSM_H */