娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

MAVLink學(xué)習(xí)之路04_MAVLink移植到STM32具體步驟

發(fā)布者:VelvetSoul最新更新時間:2024-09-23 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

1寫在前面

《MAVLink學(xué)習(xí)之路》前面三篇文章,可以說是一些基礎(chǔ)知識,也是為本文做的準(zhǔn)備工作(建議初學(xué)者先了解前面三篇文章)。

本文主要內(nèi)容:

MAVLink移植主要步驟

MAVLink移植過程要點(diǎn)

提示:為方便廣大初學(xué)者朋友盡快掌握MAVLink,我在文末提供MAVLink發(fā)送接收例程(基于STM32硬件、MDK-ARM和EWARM開發(fā)環(huán)境)。

為了方便大家平時公交、地鐵、外出辦事也能用手機(jī)隨時隨地查看該教程,本文章收錄于【MAVLink學(xué)習(xí)之路】,在微信公眾號回復(fù)【MAVLink學(xué)習(xí)之路】即可查看。

2

MAVLink移植主要步驟

2.1 移植說明

本文主要針對MAVLink C源代碼移植進(jìn)行講述。其中,MAVLink的C源代碼可以下載網(wǎng)上預(yù)生成的C源代碼庫,也可以通過生成器工具生成。

A.下載預(yù)生成C代碼庫

如果是使用標(biāo)準(zhǔn)MAVLink的MSG消息,則可以現(xiàn)在官方指定地址預(yù)先生成的C代碼庫。預(yù)先生成C代碼庫總共兩個版本:

MAVLink V1版:

https://github.com/mavlink/c_library_v1

MAVLink V2版:

https://github.com/mavlink/c_library_v1

(提示:公眾號不支持外鏈接,請復(fù)制鏈接到瀏覽器打開)

B.生成器生成C代碼

如果你需要自定義MSG消息,則需要自己通過工具生成C代碼,具體生成方法請參看文章:《MAVLink學(xué)習(xí)之路03_XML中定義MSG并生成C代碼》

提示:

官方預(yù)生成C代碼庫就是通過生成器而生成的,官方提供的生成器工具、預(yù)生成C代碼庫不定期更新。

也就是說可能你不同時期看到的預(yù)生成庫不同,不同時期的生成器及其生成的代碼也有所不同。

如上圖,官方預(yù)生成的C代碼(V1版),與通過生成器生成的代碼完全一樣。如common.xml通過生成器生成的C代碼就和上面紫紅色框出來的代碼一樣。當(dāng)然,生成器版本也是這最新的才對。

2.2 移植主要步驟

1.下載相關(guān)工具

2.環(huán)境搭建

3.生成C代碼(如果下載官方預(yù)生成代碼,前面兩步可以不用)

4.將C代碼添加到工程

5.配置(如添加MAVLink路徑、修改代碼適配工程)

6.添加MAVLink發(fā)送接收(及應(yīng)用)代碼

步驟1, 2, 3已經(jīng)在前面文章詳細(xì)講述了,本文主要講述步驟4, 5。步驟6下一篇文章詳細(xì)講述。

3

MAVLink移植過程要點(diǎn)

本節(jié)主要內(nèi)容講述將C代碼添加到工程,然后配置,到編譯沒有錯誤這一過程中的一些重要知識點(diǎn)。

3.1 代碼添加到工程

代碼添加到工程其實(shí)很簡單,將代碼拷貝工程文件下,類似如下圖,添加組,添加源文件。

但是,MAVLink源代碼都是.h頭文件,可以不用像上面那樣添加到工程。當(dāng)然,添加頭文件到工程的好處就是可以快速打開頭文件,查找相關(guān)代碼。

說這一小節(jié)是想提示大家:MAVLink的C源代碼都是.h頭文件。頭文件只需要添加對應(yīng)路徑,包含頭文件即可(#include 'mavlink.h')。

3.2 配置

1.添加路徑

Keil MDK-ARM和IAR EWARM添加路徑這項(xiàng)內(nèi)容我就不在這里詳細(xì)講述了,不會的朋友可以參看看我的文章:

Keil MDK-ARM系列教程(一)_新建軟件工程詳細(xì)過程

IAR EWARM系列教程(一)_新建軟件工程詳細(xì)過程

3.3 修改代碼

這小節(jié)內(nèi)容可以參看網(wǎng)上一篇博文:

https://www.cnblogs.com/lovechen/p/5809709.html

那篇文章講述的很多,我講一下重點(diǎn):它修改的代碼是針對老版本主要需要修改兩個地方。

而且新版本MAVLink生成器已經(jīng)優(yōu)化了一個項(xiàng),也就是只有一個地方需要修改:修改mavlink_types.h.

1.針對Keil MDK-ARM

2.針對IAR EWARM

替換代碼:#define MAVPACKED( __Declaration__ ) __Declaration__

那篇文章針對的是老版MAVLink還需要修改一個const的地方,我這里就不說了(新來的建議用新版的)。

為什么這里要修改呢?

原因在于編譯器的差異導(dǎo)致的。

3.4 補(bǔ)充知識點(diǎn)

1.#pragma anon_unions

keil中默認(rèn)是不支持匿名結(jié)構(gòu)體的,需要編譯指令#pragma anon_unions指名。

2.MAVPACKED

如果不修改代碼,直接編譯,發(fā)現(xiàn)有許多錯誤,原因都來自MAVPACKED。結(jié)合修改的內(nèi)容,再看下圖,有什么啟發(fā)沒有。

4

源代碼下載

地址:

https://pan.baidu.com/s/1xraErAnmL-BN9CMwE6aQ-A

密碼:cusq


引用地址:MAVLink學(xué)習(xí)之路04_MAVLink移植到STM32具體步驟

上一篇:手把手教你基于RT-Thread Studio使用STM32單片機(jī)的PWM外設(shè)
下一篇:基于STM32Cubemx HAL 庫實(shí)現(xiàn) DMA 驅(qū)動 GPIO 高速翻轉(zhuǎn)

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 景泰县| 项城市| 祁门县| 荃湾区| 色达县| 友谊县| 武安市| 克拉玛依市| 贺兰县| 天柱县| 梨树县| 衢州市| 新沂市| 安远县| 祁连县| 嘉义县| 黄龙县| 东阳市| 新乡县| 绩溪县| 丹凤县| 宜兰市| 无棣县| 嘉祥县| 收藏| 赤壁市| 安远县| 禹州市| 九寨沟县| 阿克陶县| 台中市| 垫江县| 昔阳县| 遂昌县| 绵阳市| 宁南县| 绥江县| 湄潭县| 邮箱| 应城市| 曲周县|