
其實還有另外的方式,可以采取在每接收一個字節(jié)就對其解析,解析完判斷轉到下一個狀態(tài),并將其中的有用數(shù)據(jù)存儲在相應的數(shù)據(jù)結構中去,可以采取狀態(tài)機實現(xiàn)。將狀態(tài)機設計為兩個控制狀態(tài),一是串口狀態(tài)——uart_state,一是命令類型狀態(tài)——CMD_state。狀態(tài)機開始狀態(tài):串口狀態(tài)為CMD_NO接受到STX_CMD,狀態(tài)變?yōu)镃MD_START.接下來將自動進入接受命令幀的狀態(tài),再開啟命令狀態(tài)的狀態(tài)機,對發(fā)送來的有用數(shù)據(jù)進行解析,保存,校驗等。