摘自:https://blog.csdn.net/xiaoxilang/article/details/80221065?utm_source=blogxgwz2
mavlink stm32移植小总结和测试程序
xiaoxilang 2018-05-07 09:53:58 1994 收藏 2
版权
.国内很多无人机公司都是在开源飞控基础之上作创新和二次开发的,其中不仅仅是飞控和周边设备,还有开源飞控的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版本,这里面很多道友栽过跟头!
![](https://img-blog.csdn.net/20180507092117289?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
(3)借鉴其他道友的例子来说明前两点的重要性
![](https://img-blog.csdn.net/20180507094057950?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180507094240394?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2.原版移植mavlink官方的头函数进行收发,目前我也测试成功
参考的是各位道友的智慧:参开:https://www.cnblogs.com/lovechen/p/5801679.html
在stm32f4上作的移植,这里做了很详细的说明;而我的移植也是基于此思路来做的;
我目前在stm32f1和f4上已经成功应用-成功的接收和发送所有的ID;之后会在我的的csdn发布出来移植成功的stm32f1的demo代码;供大家学习参考;有人迷糊这个,最后还是要申明下,自定义id特别注意以下两个数组的填写(默认是0),要不然crc校验通过不了!!!
![](https://img-blog.csdn.net/20180507094240394?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
最后感谢阿木道友和恒久力行道友的交流!
STM32F1参考代码请看连接:https://download.csdn.net/download/xiaoxilang/10396810
STM32F4参考代码请看连接:https://download.csdn.net/download/xiaoxilang/10403906
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)