java mavlink_MAVLink功能开发,移植教程。

本文详细介绍了如何将MAVLink功能移植到STM32F4的KEIL工程中,通过配置串口、解决编译错误、实现发送和接收数据的底层函数,最终成功实现与QGC上位机的通信。关键步骤包括设置MAVLINK_USE_CONVENIENCE_FUNCTIONS宏,自定义_mavlink_send_uart_bytes函数,并在main函数中进行测试数据发送。
摘要由CSDN通过智能技术生成

KEIL工程移植

本文利用STM32F4的控制板的PX4控制板,并且利用cubeMX进行工程配置来实现MAVLink的移植。最终实现PX4控制板与QGC上位机的通信,以此来验证MAVLink是否成功移植。

1.因为转换的C语言代码都是以.h的文件夹实现的,所以把上图的文件包含到工程路径中,并且包含如下的头文件即可包含全部实现的

#include

接着利用cubeMx进行串口的配置,我们使用中断DMA接收与普通轮询模式发送。不是本文重点,不做描述,可百度,亦可有兴趣观看视频。

接着我们可以在keil工程里面全局编译一下,会发现好多的错误。这个错误跟编译器有关。一种方式是直接修改每一个错误,可以自行百度“mavlink移植 ”;当然还有一种方法,是在工程配置中加入如下配置:

--no_strict --gnu

目的是想让MAVLink这段代码采用gun的格式进行编译,但是要注意其他的代码需要保证是使用的keil的默认编译器__CC_ARM进行编译。再次编译会发现没有错误。

2.接着就是实现发送、接收数据的底层函数。

C MAVLink库的实现的多通道的数据流,同样的程序可以在不同的独立通道流上进行传输。如果只存在一个MAVLink数据流,channel 0默认被用来进行数据传输(MAVLINK_COMM_0)

接收数据的处理函数是在MAVLink的 mavlink_helpers.h:mavlink_parse_char()函数里面实现的。这个函数实际上需要在每次接收到一个字节数据的时候调用它来解析的信息,直到一个完整的数据包被解析完成。

发送数据可以用mavlink_msg_*_pack()这些函数,然后调用mavlink_helpers.h:mavlin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值