【藍橋杯單片機10】串行接口的進階與實戰應用

【藍橋杯單片機10】串行接口的進階與實戰應用編程

廣東職業技術學院 歐浩源數組

      串行接口做爲51單片機的重要外設,編程操做並不複雜,但在實際的項目應用中,因爲數據結構和通訊規約的不一樣,其程序邏輯也有各類變化,不會像「【藍橋杯單片機09】串行接口的基本原理與應用」中說的那麼簡易。
      通常狀況下,上位機的命令可能不是一個字節,而是多個字節組成的命令幀,有的長度固定,有的長度變化;並且要求返回的數據可能也不是一個字節,多是一個數組,也有多是一個字符串等。在藍橋杯的比賽中,也不可能讓你只是收發一個字節而已,所以,在串口這一個單元中,必須多加一個強化環境,掌握多字節的數據幀收發應用。
      具體的實現有不一樣的思路,主要仍是經過實戰案例來理解和強化。數據結構

一、單元實訓題目框架

二、程序設計思路與框架
      首先要認真閱讀通訊規約,在閱讀的過程當中,頭腦中就應該逐漸將文字信息抽象成爲數據結構,該定義多少變量,須要多大的數組,程序大體要安排那幾個函數,怎麼把它們搭建成程序框架...在動手敲代碼以前都應該有一個大概而清晰的輪廓。
     就本題來說,通訊規約中明確指導命令幀的長度爲4個字節,並且有固定的幀頭和幀尾,一個用於接收數據的4字節數組是確定須要的。
     何時纔是命令幀接收完成呢,這就須要一個全局的標誌來通知主函數了。
     固然你還須要,串口初始化函數、字符串發送函數、串口數據接收函數、和命名解析執行函數。
     所以,你能夠獲得下面的程序框架結構:函數

      

三、關鍵代碼的實現
      教程到了這個階段,若是你細心觀察的話,你就會發現不少代碼塊是能夠重用的,直接拷貝來,一個字母都不用該就能用。例如,串口初始化函數Init_Uart()和單字節發送函數SendByte()就不須要修改,拷過來就能用。
      其餘的代碼實現起來也不難,幾個關鍵的代碼實現,你們能夠參考:
      <1> 字符串發送函數spa

      

      <2> 串口數據接收函數設計

      

      <3> 命令幀解析執行函數3d

      

*************藍橋杯單片機視頻教程(永久免費)*************視頻

************************************************** blog

相關文章
相關標籤/搜索