色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-07 16:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1寫在前面

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

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

MAVLink移植主要步驟

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

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

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

2

MAVLink移植主要步驟

2.1 移植說明

本文主要針對(duì)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代碼庫總共兩個(gè)版本:

MAVLink V1版:

https://github.com/mavlink/c_library_v1

MAVLink V2版:

https://github.com/mavlink/c_library_v1

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

B.生成器生成C代碼

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

提示:

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

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

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

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代碼添加到工程,然后配置,到編譯沒有錯(cuò)誤這一過程中的一些重要知識(shí)點(diǎn)。

3.1 代碼添加到工程

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

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

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

3.2 配置

1.添加路徑

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

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

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

3.3 修改代碼

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

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

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

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

1.針對(duì)Keil MDK-ARM

2.針對(duì)IAR EWARM

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

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

為什么這里要修改呢?

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

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

1.#pragma anon_unions

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

2.MAVPACKED

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

4

源代碼下載

地址:

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

密碼:cusq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364351
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    14759
  • mavlink
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    2680
收藏 1人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • Tange0071

評(píng)論

相關(guān)推薦
熱點(diǎn)推薦

STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

在《STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協(xié)議配置。本篇將重點(diǎn)講解如何將機(jī)智云相關(guān)代碼移植STM32
的頭像 發(fā)表于 05-23 18:10 ?235次閱讀
<b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)<b class='flag-5'>步驟</b>與技巧(下篇):機(jī)智云代碼<b class='flag-5'>移植</b>與優(yōu)化

STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(上篇)

通過STM32與機(jī)智云的連接,開發(fā)者可以實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制和數(shù)據(jù)管理,提升物聯(lián)網(wǎng)應(yīng)用的智能化水平。本文將介紹STM32與機(jī)智云連接的具體步驟,涵蓋硬件連接、通信協(xié)議配置、數(shù)據(jù)傳輸及云平臺(tái)應(yīng)用開發(fā)等
的頭像 發(fā)表于 05-23 18:10 ?281次閱讀
<b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)<b class='flag-5'>步驟</b>與技巧(上篇)

打開FSP配置器界面的具體步驟

如果目標(biāo)工程項(xiàng)目是新建的項(xiàng)目,可以直接編譯并通過。但是若是新導(dǎo)入的項(xiàng)目,需要先打開FSP配置界面重新生成FSP庫相關(guān)代碼,然后再進(jìn)行編譯,否則會(huì)提示編譯錯(cuò)誤。具體步驟如下。
的頭像 發(fā)表于 05-06 15:58 ?844次閱讀
打開FSP配置器界面的<b class='flag-5'>具體步驟</b>

STM32G431移植FreeModbus

STM32G431移植FreeModbus 的代碼已通過驗(yàn)證,在WeActStudio的STM32G431CoreBoard上進(jìn)行多次測試,均可正常讀取寄存器數(shù)值。STM32G431C
發(fā)表于 04-19 16:50 ?1次下載

如何使用UCANS32K146讀取MAVLINK

我正在使用 UCANS32K146 開發(fā)板,正在尋找驅(qū)動(dòng)程序或示例代碼來從 Orange Cube 飛行控制器讀取 MAVLINK...... https://docs.cubepilot.org
發(fā)表于 03-26 06:36

D2590驅(qū)動(dòng)器維修具體步驟

D2590驅(qū)動(dòng)器的維修通常涉及更換故障部件,如保險(xiǎn)電阻和CPU ?。 在維修D(zhuǎn)2590驅(qū)動(dòng)器時(shí),首先需要進(jìn)行拆機(jī)檢測,以確定故障的具體位置。例如,在檢測過程中可能會(huì)發(fā)現(xiàn)CPU短路或副電源保險(xiǎn)電阻開路
的頭像 發(fā)表于 02-27 16:07 ?293次閱讀

DLPC3439和DLPC3479具體有哪些差異呢?搭配DLP芯片怎么配對(duì)呢?

請問:DLPC3439和DLPC3479具體有哪些差異呢?搭配DLP芯片怎么配對(duì)呢?
發(fā)表于 02-21 07:40

FinFET制造工藝的具體步驟

本文介紹了FinFET(鰭式場效應(yīng)晶體管)制造過程中后柵極高介電常數(shù)金屬柵極工藝的具體步驟
的頭像 發(fā)表于 01-20 11:02 ?2873次閱讀
FinFET制造工藝的<b class='flag-5'>具體步驟</b>

STM32WL55JCSTM32WLE5CC的LoRaWAN_FUOTA移植

電子發(fā)燒友網(wǎng)站提供《從STM32WL55JCSTM32WLE5CC的LoRaWAN_FUOTA移植.pdf》資料免費(fèi)下載
發(fā)表于 01-15 15:24 ?1次下載
從<b class='flag-5'>STM32</b>WL55JC<b class='flag-5'>到</b><b class='flag-5'>STM32</b>WLE5CC的LoRaWAN_FUOTA<b class='flag-5'>移植</b>

請問TVP7002具體支持什么格式和分辨率?

TVP7002具體支持什么格式和分辨率? 答: TVP7002 可以采集VGA和YPbPr視頻輸入。輸出支持20位BT1120或者外同步方式。截?cái)鄶?shù)據(jù)低位就可以用作16bit模式。具體支持的分辨率
發(fā)表于 12-20 15:46

身智能與機(jī)器學(xué)習(xí)的關(guān)系

身智能(Embodied Intelligence)和機(jī)器學(xué)習(xí)(Machine Learning)是人工智能領(lǐng)域的兩個(gè)重要概念,它們之間存在著密切的關(guān)系。 1. 身智能的定義
的頭像 發(fā)表于 10-27 10:33 ?1036次閱讀

【GD32 MCU 移植教程】10、從STM32F030系列移植GD32E230系列

GD32E230 對(duì)比 STM32F030 有著很好的兼容性和更高的性價(jià)比,內(nèi)核和外設(shè)都有所增強(qiáng)。本人曾做過產(chǎn)品的 MCU 替換,將基于 STM32F0xx 1.5.0 固件庫的應(yīng)用程序移植
的頭像 發(fā)表于 09-07 10:24 ?1521次閱讀
【GD32 MCU <b class='flag-5'>移植</b>教程】10、從<b class='flag-5'>STM32</b>F030系列<b class='flag-5'>移植</b><b class='flag-5'>到</b>GD32E230系列

【GD32 MCU 移植教程】9、從 STM32F10x 系列移植 GD32F30x 系列

對(duì)比、外設(shè)及性能對(duì)比以及從 STM32F10x 移植 GD32F30x 的移植步驟,旨在讓開發(fā)者能夠快速從
的頭像 發(fā)表于 09-07 09:57 ?1947次閱讀
【GD32 MCU <b class='flag-5'>移植</b>教程】9、從 <b class='flag-5'>STM32</b>F10x 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F30x 系列

【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植 GD32F4xx 系

、外設(shè)及性能對(duì)比以及從 STM32F4xx 移植 GD32F4xx 的移植步驟,旨在讓開發(fā)者能夠快速從
的頭像 發(fā)表于 09-06 09:40 ?2581次閱讀
【GD32 MCU <b class='flag-5'>移植</b>教程】8、從 <b class='flag-5'>STM32</b>F4xx 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32F4xx 系

聚徽-LED 全彩屏的安裝和調(diào)試步驟是什么

LED 全彩屏的安裝和調(diào)試步驟涉及多個(gè)環(huán)節(jié),以下是根據(jù)搜索結(jié)果整理的具體步驟
的頭像 發(fā)表于 09-03 09:24 ?768次閱讀
主站蜘蛛池模板: 亚洲高清在线天堂精品 | 久99re视频9在线观看 | 欧美日韩综合一区 | 囯产精品久久久久久久久免费蜜桃 | 乳欲性高清在线 | 99精彩视频在线观看 | 日产精品高潮呻吟AV久久 | 九九热在线视频观看这里只有精品 | 伊人影院中文字幕 | 狠狠婷婷综合久久久久久 | 色尼姑久久超碰在线 | 再插深点嗯好大好爽 | 白白操在线视频 | 99婷婷久久精品国产一区二区 | 甜性涩爱bt下载 | 国产免费网站看v片在线 | 青青草原网址 | 久久国产精品高清一区二区三区 | 在线欧美 精品 第1页 | 久久re这里视频只精品首页 | 嫩草影院成人 | HEYZO精品无码一区二区三区 | 亚洲国产精品嫩草影院 | 亚洲国产AV无码综合在线 | 国产360激情盗摄全集 | 先锋资源av| 理论片午午伦夜理片I | 国产精品人妻99一区二 | 一区二区三区福利视频 | 新版孕妇bbwbbwbbw | 欧美日韩另类在线观看视频 | 97国内精品久久久久久久影视 | 俄罗斯极品hd | 伊人色综合久久大香 | 国产在线观看免费观看 | 在线播放毛片 | 挤奶门事件完整照片 | 国产不卡视频在线观看 | 美女的隐私蜜桃传媒免费看 | 伊人精品久久久大香线蕉99 | 日韩一区二区三区射精 |

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品