(有限)狀态機是系統狀态變化的流程圖,詳細看見百度,這裡隻講解如何設計程式設計
設計狀态機的步驟:
1.确定系統所有狀态,最好畫出圖形,如下圖
2.每個狀态觸發/切換的條件
3.軟體編寫驗證
BLDC常用狀态機切換流程圖:

bldc常用的6個狀态,切換條件這裡隻是示意,實際的觸發條件比這個要複雜;
代碼編寫,這裡采用switch-case格式
switch (state)
{
case idle:function;break;
.......
case run:function;break;
default:break;
}
編寫狀态機程式時可以先在VC++6.0或visual studio中程式設計調試效果,效率更高
case 的條件事先宏定義,這裡也可以采用if -else if -else格式,不過太分散;
一般電機控制的狀态比較少,少于10個,是以用switch-case比較合适
但是如果要切換的狀态達到幾十甚至上百個時,這種結構就不太合适了,太費時了,那時就要使用函數指針數組的形式了,見下一篇文章