MAVLink功能开发移植

本文介绍了MAVLink通信协议的基本概念及其在STM32上的移植过程,包括XML文件的选择、代码生成、环境配置、工程移植等步骤。通过在STM32上实现MAVLink协议,实现了与QGC上位机的通信,验证了移植的成功。
摘要由CSDN通过智能技术生成

MAVLink功能开发移植


-----------------本文由“智御电子”提供,同时提供视频移植教程,以便电子爱好者交流学习。----------------


1.MAVLink简介##

MAVLink是一种针对微型飞行器,推出的轻量化,仅由头文件信息编码而成的软件通信协议库。

MAVLink遵循一种混合发布和点对点设计模式:主要的信息可以作为主数据流向多个目标目标进行发送,而一些子协议如(mission protocol或者parameter protocol)可以采用点对点通信模式,利用重传机制进行可靠的数据传输。

MAVLink的信息包(各种数据包类型的组合如姿态信息包、GPS信息包)都是定义在XML格式的原始文件中。利用这个XML文件可以生成如下支持语言的MAVLink源代码。针对不同的的应用场合,XML文件也被定义了多种。比如针对绝大多数的地面站系统和自动驾驶系统,这样一些系统所需要的信息包类型就被定义一种取名为“common.xml”文件中。

MAVLink最早是在2009年由Lorenz Meier发布的第一版本,并且有有一群贡献者参与其中。

因为MAVLink不需要额外的设计框架要求,所以它非常适合在一些通信带宽有限的程序中使用。比如用XML文件生产的C语言源代码非常适合用在RAM或者flash受限制的嵌入式系统中。目前MAVLink已经在许多的产品中被用来作为不同设备制造商之间通信的接口而得到应用和验证。

支持生成的语言

MAVLink2 可以生成如下语言

  • C
  • C++11
  • Python

MAVLink1可以生成如下语言

  • C
  • C#
  • Objective C
  • Java
  • JavaScript
  • Lua
  • Swift
  • Python

XML文件种类:

  • common.xml
  • ardupilotmega.xml
  • ASLUAV.xml
  • autoquad.xml
  • icarous.xml
  • matrixpilot.xml
  • minimal.xml
  • paparazzi.xml
  • python_array_test.xml
  • slugs.xml
  • standard.xml
  • test.xml
  • ualberta.xml
  • uAvionix.xml
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值