0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MAVLink学习之路05_ MAVLink应用编程接口分析

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-07 16:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MAVLink应用编程主要内容

2.1 发送和接收说明

利用MAVLink通信协议进行编程,主要实现的功能就是:

1.发送端

将需要发送的数据(如:SysState, BatVol),添加MAVLink通信协议,通过硬件(如:UARTCAN)发送出去。

2.接收端

硬件(如:UART、CAN)接收到的数据,通过MAVLink协议解析,得到一帧完整的MAVLink数据包,提取发送端发送的数据(如:SysState, BatVol),将得到的数据应用到我们程序中。

主要流程:数据 -> MAVLink封装 -> 发送 -> 接收 -> MAVLink解析 ->数据

2.2 发送和接收流程图

该流程图是结合我上一篇文章提供的源代码例程画出来,包含的只是主要内容,更多细节没有在流程图中呈现。

提示:

我提供例程是针对初学者提供比较单一发送和接收例程(MDK-ARM和EWARM包含各自的发送和接收工程)。

而实际项目可能会:

1.发送和接收在一个工程;

2.包含操作系统

3.发送、接收数据FIFO(队列)处理;

所以,实际项目,请按需修改我提供的源码。

3

MAVLink函数接口详细说明

这一章节讲述发送和接收主要用到的函数接口,请参考我提供的源代码例程理解。

为方便初学者理解,我将其分为发送和接收两个部分来讲述。

3.1 发送主要函数接口

上面是我提供例程的代码,主要讲4个接口

1.MAVLink_SendTest

这个接口是根据自己情况进行封装函数,用于应用程序调用,这里不多说。

2.mavlink_msg_sys_info_pack

这个函数接口主要目的:将变量信息(SysID、CompID、SysState、BatVol)打包,最终得到MAVLink_Msg这个消息包。

3.mavlink_msg_to_send_buffer

将上一步得到的MAVLink_Msg转换成我们要发送的数据BUF缓存。

4.MAV_USART_SendNByte

这个函数接口也是我自己根据硬件(UART)封装的,如果你是其它硬件通信,只需要封装一个类似的接口(参数具有BUF,LEN)即可。

发送数据的流程:从应用代码 -> 底层硬件(发送出去)。

如果要深入了解,可以先熟悉软件流程,再结合源代码工程,同时参看接口函数具体实现。相信你很快就明白了。

3.2 接收主要函数接口

上面是我提供例程的代码(方便截图,去掉了部分),主要讲以上4点内容。

1.MAV_USART_GetByte

该函数接口也是硬件底层通信接口,请根据自己情况修改,只需要传递数据(流)进来即可。

2.mavlink_parse_char

MAVLink解析是按照一个一个字符进行解析,我们接收到一个字符,就对其进行解析,直到解析完(根据返回标志判断)一帧数据为止。

3.if(MAVLINK_MSG_ID_SYS_INFO == MAVLinkMsg.msgid)

这里就是对解析好的一包完整消息进行分类判断吧。其实,我是想说,这个地方还有两个ID需要进行判断,SysID系统ID和CompID部件ID。

我提供例程为方便初学者快速理解,未提供SysID和CompID判断,在后续应用编程中会用到。

接收数据的流程:从应用代码 -> 底层硬件(发送出去)。

以上就是发送和接收的主要函数接口,如果你只是简单的进行通信,这几个接口就够你使用了。当然,更高级的编程应用还需要你进一步掌握其中的内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    1077

    浏览量

    41885
  • CAN
    CAN
    +关注

    关注

    58

    文章

    3017

    浏览量

    471651
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106155
  • mavlink
    +关注

    关注

    0

    文章

    9

    浏览量

    2759
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    即刻启程,踏上W55MH32高性能以太网单片机学习之路

    即刻启程,踏上W55MH32高性能以太网单片机学习之路!即刻开启W55MH32学习之旅!本教系列程配套官方手册与W55MH32L开发板,从外设功能框图解析到代码实操,助你掌握高性能以太网单片机的架构和核心原理,轻松驾驭多
    的头像 发表于 05-07 18:51 857次阅读
    即刻启程,踏上W55MH32高性能以太网单片机<b class='flag-5'>学习</b><b class='flag-5'>之路</b>!

    如何使用UCANS32K146读取MAVLINK

    /user-guides/autopilot/the-cube-module-overview 我想要UCANS32K146读取飞控的所有诊断信息,并被告知此信息是使用 MAVLINK 接口从飞控发送的。 是否有任何驱动程序或示例代码可以执行此作(我没有
    发表于 03-26 06:36

    PRSCAN-05HSA PRSCAN-05HSA

    电子发烧友网为你提供AIPULNION(AIPULNION)PRSCAN-05HSA相关产品参数、数据手册,更有PRSCAN-05HSA的引脚图、接线图、封装手册、中文资料、英文资料,PRSCAN-05HSA真值表,PRSCAN
    发表于 03-25 18:37
    PRSCAN-<b class='flag-5'>05</b>HSA PRSCAN-<b class='flag-5'>05</b>HSA

    RS485-05HSAVC RS485-05HSAVC

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05HSAVC相关产品参数、数据手册,更有RS485-05HSAVC的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05HSAVC真值表,RS4
    发表于 03-25 18:37
    RS485-<b class='flag-5'>05</b>HSAVC RS485-<b class='flag-5'>05</b>HSAVC

    RS485-05HSA RS485-05HSA

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05HSA相关产品参数、数据手册,更有RS485-05HSA的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05HSA真值表,RS485-
    发表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>HSA RS485-<b class='flag-5'>05</b>HSA

    RS485-05HSSV RS485-05HSSV

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05HSSV相关产品参数、数据手册,更有RS485-05HSSV的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05HSSV真值表,RS485-
    发表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>HSSV RS485-<b class='flag-5'>05</b>HSSV

    RS485-05LSAV RS485-05LSAV

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05LSAV相关产品参数、数据手册,更有RS485-05LSAV的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05LSAV真值表,RS485-
    发表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>LSAV RS485-<b class='flag-5'>05</b>LSAV

    RS485-05LSA RS485-05LSA

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05LSA相关产品参数、数据手册,更有RS485-05LSA的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05LSA真值表,RS485-
    发表于 03-25 18:34
    RS485-<b class='flag-5'>05</b>LSA RS485-<b class='flag-5'>05</b>LSA

    RS485-05LSSV RS485-05LSSV

    电子发烧友网为你提供AIPULNION(AIPULNION)RS485-05LSSV相关产品参数、数据手册,更有RS485-05LSSV的引脚图、接线图、封装手册、中文资料、英文资料,RS485-05LSSV真值表,RS485-
    发表于 03-25 18:33
    RS485-<b class='flag-5'>05</b>LSSV RS485-<b class='flag-5'>05</b>LSSV

    NW2-05D05DR3 NW2-05D05DR3

    电子发烧友网为你提供AIPULNION(AIPULNION)NW2-05D05DR3相关产品参数、数据手册,更有NW2-05D05DR3的引脚图、接线图、封装手册、中文资料、英文资料,NW2-05D05DR3真值表,NW2-
    发表于 03-20 18:30
    NW2-<b class='flag-5'>05D05</b>DR3 NW2-<b class='flag-5'>05D05</b>DR3

    FN1-05S05RNT FN1-05S05RNT

    电子发烧友网为你提供AIPULNION(AIPULNION)FN1-05S05RNT相关产品参数、数据手册,更有FN1-05S05RNT的引脚图、接线图、封装手册、中文资料、英文资料,FN1-05S05RNT真值表,FN1-
    发表于 03-19 18:39
    FN1-<b class='flag-5'>05S05</b>RNT FN1-<b class='flag-5'>05S05</b>RNT

    NNV25-05S05A3NT NNV25-05S05A3NT

    电子发烧友网为你提供AIPULNION(AIPULNION)NNV25-05S05A3NT相关产品参数、数据手册,更有NNV25-05S05A3NT的引脚图、接线图、封装手册、中文资料、英文资料,NNV25-05S05A3NT真
    发表于 03-19 18:36
    NNV25-<b class='flag-5'>05S05</b>A3NT NNV25-<b class='flag-5'>05S05</b>A3NT

    NNV25-05S05ANT NNV25-05S05ANT

    电子发烧友网为你提供AIPULNION(AIPULNION)NNV25-05S05ANT相关产品参数、数据手册,更有NNV25-05S05ANT的引脚图、接线图、封装手册、中文资料、英文资料,NNV25-05S05ANT真值表,
    发表于 03-19 18:36
    NNV25-<b class='flag-5'>05S05</b>ANT NNV25-<b class='flag-5'>05S05</b>ANT

    DS28E05 1-Wire EEPROM技术手册

    (ROM ID ),这是工厂编程写入芯片的。DS28E05通过MaximIntegrated的单触点单线接口以超速方式与ROM ID通信,ROM ID在多器件单线网络中充当节点地址。
    的头像 发表于 02-26 11:50 1497次阅读
    DS28E<b class='flag-5'>05</b> 1-Wire EEPROM技术手册

    BQ78412应用程序编程接口

    电子发烧友网站提供《BQ78412应用程序编程接口.pdf》资料免费下载
    发表于 12-18 14:46 0次下载
    BQ78412应用程序<b class='flag-5'>编程</b><b class='flag-5'>接口</b>