參考https://cloud.tencent.com/developer/news/48344html
https://www.cnblogs.com/lovechen/p/5801679.htmlpython
https://www.cnblogs.com/lovechen/p/5809709.htmgit
https://www.jianshu.com/p/e57aa664103fgithub
https://www.e-learn.cn/content/qita/1017591函數
是一種用於飛行器上的輕量級成熟通訊協議,與不少自定的協議相比,它的開發難度很是小,有現成的配置工具,可直接生成MSG代碼(簡單來講,就是生成對應的函數接口供你直接調用便可),直接調用幾個相應的函數接口便可,不須要本身封裝、解析等;突出的優勢在於配置和調用比較簡單工具
1.配置url
MAVLink經過xml文件,配置信息(MSG),這個MSG能夠理解成咱們須要接收或者發送的數據變量。好比:運動控制包含速度和距離,xml配置以下:spa
2.經過生成代碼 .net
從官網下載mavlink(git clone https://github.com/mavlink/mavlink.git)3d
mavlink官網(http://qgroundcontrol.org/mavlink/start),下拉到MAVLink Code and Generator以下圖,獲得mavlink源碼有多種途徑,這裏選取用python生成。即點擊MAVLink Generator (C/C++, Python)
git clone https://github.com/mavlink/mavlink mavlink-generator
或者用PYTHON進行安裝 pip install pymavlink,切換到mavlink-master目錄下而後運行python mavegenerate.py ,而後修改xml並生成C庫
3.調用代碼
代碼生成,只須要簡單調用兩個函數接口便可:
兩個函數便可:
mavlink_msg_motion_pack:封包函數接口;
mavlink_msg_to_send_buffer:轉換成發送的BUF
4編譯排錯:
keil工程裏面全局編譯一下,會發現好多的錯誤。這個錯誤跟編譯器有關。一種方式是直接修改每個錯誤,能夠自行百度「mavlink移植 」;固然還有一種方法,是在工程配置中加入以下配置:
--no_strict --gnu
目的是想讓MAVLink這段代碼採用gun的格式進行編譯,可是要注意其餘的代碼須要保證是使用的keil的默認編譯器__CC_ARM進行編譯。再次編譯會發現沒有錯誤。