.国内很多无人机公司都是在开源飞控基础之上作创新和二次开发的,其中不仅仅是飞控和周边设备,还有开源飞控的mavlink协议及其地面站是非常不错的借鉴个学习的材料,现在对mavlink移植作小结如下:
1.编写针对mavlink协议收发的测试小程序
这个可以参照连接:https://blog.csdn.net/luckpl/article/details/51777744?locationNum=7
这里讲述了mavlink的CRC16-CCITT(概念请自查)的CRC校验的小代码,为此我借鉴其代码程序,在stm32f4上编写了其测试小程序,看图如下:
其中上面是我截取的数据包的消息ID(消息结构请自查),我取了id为42的消息进行验证;在仿真代码中计算出来的crc是与消息给的crc一致!
移植请注意以下小红框的注解;再次提醒以下几点:
(1)最下方红框注解的消息crc,是我一开始没有出错过,这个在开源飞控制红有个大数组给出来,对应填写上去即可!
(2)因为自己写测试程序,那么组件和系统ID要对应的上,还有mavlink版本,这里面很多道友栽过跟头!
(3)借鉴其他道友的例子来说明前两点的重要性
2.原版移植mavlink官方的头函数进行收发,目前我也测试成功
参考的是各位道友的智慧:参开:https://www.cnblogs.com/lovechen/p/5801679.html
在stm32f4上作的移植,这里做了很详细的说明;而我的移植也是基于此思路来做的;
我目前在stm32f1和f4上已经成功应用-成功的接收和发送所有的ID;之后会在我的的csdn发布出来移植成功的stm32f1的demo代码;供大家学习参考;有人迷糊这个,最后还是要申明下,自定义id特别注意以下两个数组的填写(默认是0),要不然crc校验通过不了!!!
![](https://i-blog.csdnimg.cn/blog_migrate/6958d87f0f68c902bb61e46c8a047050.png)
STM32F1参考代码请看连接:https://download.csdn.net/download/xiaoxilang/10396810
STM32F4参考代码请看连接:https://download.csdn.net/download/xiaoxilang/10403906