![]() |
發布時間: 2020-11-27 14:51
正文摘要:怎么用有限狀態機定義以下指令:當發送“L1_ON"時,LED1點亮當發送“L2_ON"時,LED2點亮當發送“BEEP_ON"時,蜂鳴器響當發送“L1_OFF"時,LED1熄滅當發送“L2_OFF"時,LED2熄滅當發送“BEEP_OFF"時,蜂 ... |
你需要自己定義一個通訊協議。 別慌! 因為串口通訊只接收一個字節,它并不能理解什么時候開始什么時候結束,字符串長度等等。 那么我們得想辦法讓它理解。這就是協議。 例如 :以A為開頭,表示命令開始,D表示命令結束。指令4字節,共6字節命令。 AL1OND。這就是其中一個命令。程序中接收到A表示后面5位都是數據 需要存入數組,然后判斷接收到的數據與協議數據哪個相等,相等的執行對應操作,這個過程叫做解析。 當然你也可以通過時間狀態判斷,串口接收到的數據統統存入數組,假如某個字節與上一字節時間間隔超過10ms 則認為這是2條命令。即通過時間去判斷 開始與結束,解析收到的命令。這也是協議。 |
我試著改變了命令,把狀態改了一下,但主要問題是不懂怎么發字符串,這里只能一個一個字符發送。 |