日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

1寫在前面

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

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

MAVLink移植主要步驟

MAVLink移植過程要點

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

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

2

MAVLink移植主要步驟

2.1 移植說明

本文主要針對MAVLink C源代碼移植進行講述。其中,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)在前面文章詳細講述了,本文主要講述步驟4, 5。步驟6下一篇文章詳細講述。

3

MAVLink移植過程要點

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

3.1 代碼添加到工程

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

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

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

3.2 配置

1.添加路徑

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

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

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

3.3 修改代碼

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

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

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

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

1.針對Keil MDK-ARM

2.針對IAR EWARM

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

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

為什么這里要修改呢?

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

3.4 補充知識點

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

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

    關(guān)注

    2313

    文章

    11195

    瀏覽量

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

    關(guān)注

    1

    文章

    90

    瀏覽量

    15243
  • mavlink
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    BLDC 驅(qū)動板 FOC 矢量控制算法移植與參數(shù)調(diào)試(工程實用版)

    這是一篇可直接用于項目開發(fā)、量產(chǎn)調(diào)試的 FOC 移植與調(diào)試指南,面向STM32/GD32 + 三相 BLDC/PMSM 無刷馬達驅(qū)動板,包含移植步驟、關(guān)鍵參數(shù)、調(diào)試流程、波形判斷、常見
    的頭像 發(fā)表于 04-27 15:32 ?838次閱讀

    驅(qū)動之路#20:Pinctrl 在手,引腳復(fù)用很順手

    ?歡迎關(guān)注,每周更新!? 本合集分享的是,我當(dāng)初學(xué)習(xí)Linux驅(qū)動的來時路——《《驅(qū)動之路》開篇:自序pinctrl節(jié)點下(rk3576-pinctrl.dtsi),定義具體的引腳配置(復(fù)用
    的頭像 發(fā)表于 04-07 21:18 ?524次閱讀
    驅(qū)動<b class='flag-5'>之路</b>#20:Pinctrl 在手,引腳復(fù)用很順手

    消費電子EMC整改:被動應(yīng)對主動防御的技術(shù)進階之路

    消費電子EMC整改:被動應(yīng)對主動防御的技術(shù)進階之路|南柯電子
    的頭像 發(fā)表于 12-15 10:12 ?550次閱讀

    什么樣的智能才能稱為身智能?

    節(jié)目中拋個手絹,走路還磕磕絆絆,不到一年,就已經(jīng)發(fā)展接近真人的步伐,身智能時代或許真的來了! 為什么身體對智能很重要 身智能,說白了就是有身體、會動、會感知的智能。相較于只能在
    的頭像 發(fā)表于 11-19 09:29 ?948次閱讀
    什么樣的智能<b class='flag-5'>體</b>才能稱為<b class='flag-5'>具</b>身智能?

    如何在Vivado上仿真蜂鳥SOC,仿真NucleiStudio編譯好的程序

    如標(biāo)題所示,我們分享如何在Vivado上仿真蜂鳥SOC,仿真NucleiStudio編譯好的程序 具體步驟 1. 將蜂鳥soc移植Vivado 只要將端口映射好,注意配置好時鐘和bank
    發(fā)表于 10-21 11:08

    確定諧波檢測設(shè)備核心誤差要求的步驟有哪些?

    ≤±0.3%、基波誤差≤±0.1%)。以下是具體步驟,含每步的目標(biāo)、操作與輸出: 步驟 1:拆解場景核心需求 —— 明確 “誤差要求服務(wù)的目標(biāo)” 目標(biāo) :厘清場景的核心訴求,避免無依據(jù)設(shè)定誤差(如仲裁場景需高精度,排查場景可放寬)。
    的頭像 發(fā)表于 10-13 17:23 ?703次閱讀

    數(shù)據(jù)濾波算法的具體實現(xiàn)步驟是怎樣的?

    (高頻電磁、瞬時脈沖等),選擇適配的濾波算法并落地。以下以電能質(zhì)量監(jiān)測中最常用的 IIR 低通濾波(抗高頻干擾)、滑動平均濾波(抗瞬時脈沖)、卡爾曼濾波(抗動態(tài)波動) 為例,詳解具體實現(xiàn)步驟: 一、前置準(zhǔn)備:明確濾波目標(biāo)與硬件基
    的頭像 發(fā)表于 10-10 16:45 ?1027次閱讀

    請問STM32如何移植Audio框架?

    最近在學(xué)習(xí)音頻解碼,想用一下Audio框架。 1、這個該如何移植自己創(chuàng)建的BSP并對接到device框架中?看了官方移植文檔沒有對沒有對該部分的描述。 2、我只想實現(xiàn)一個簡單的播放功
    發(fā)表于 09-25 07:17

    嵌入式工程師的進階之路

    嵌入式工程師的進階之路 (一)初級工程師(0-3 年)核心技能: 單片機開發(fā):STM32F103系列 GPIO/USART/SPI 外設(shè)驅(qū)動,能完成 LED 呼吸燈、按鍵檢測、串口通信等基礎(chǔ)項目
    發(fā)表于 08-13 11:08

    鋁絲鍵合的具體步驟

    鋁絲鍵合常借助超聲楔焊技術(shù),通過超聲能量實現(xiàn)鋁絲與焊盤的直接鍵合。由于鍵合所用劈刀工具頭為楔形,使得鍵合點兩端同樣呈楔形,因而該技術(shù)也被叫做楔形壓焊。超聲焊工藝較為復(fù)雜,鍵合劈刀的運動、線夾動作,以及工藝參數(shù)的施加時序,需相互協(xié)同配合,才能完成單根鋁絲的鍵合過程。在此過程中,劈刀作為傳遞超聲波功率、壓力等關(guān)鍵工藝參數(shù)的媒介,其運動軌跡還對線弧的形狀起著決定性作用。
    的頭像 發(fā)表于 07-16 16:58 ?2172次閱讀

    機智云配網(wǎng)教程第三期:單片機代碼移植實戰(zhàn)

    前言本篇文章將分享單片機移植的經(jīng)驗??梢韵螺d并按步驟移植,也可以直接使用已移植好的工程文件。文中將介紹我在移植過程中遇到的問題,并提供解決方
    的頭像 發(fā)表于 07-01 17:32 ?2197次閱讀
    機智云配網(wǎng)教程第三期:單片機代碼<b class='flag-5'>移植</b>實戰(zhàn)

    開疆智能Devicenet轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接費斯托閥島配置案例

    本案例是ModbusTCP主站PLC通過開疆智能研發(fā)的Devicenet主轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接費斯托閥島的配置案例,具體步驟如下。
    的頭像 發(fā)表于 06-28 14:10 ?1224次閱讀
    開疆智能Devicenet轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接費斯托閥島配置案例

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

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

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

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

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

    如果目標(biāo)工程項目是新建的項目,可以直接編譯并通過。但是若是新導(dǎo)入的項目,需要先打開FSP配置界面重新生成FSP庫相關(guān)代碼,然后再進行編譯,否則會提示編譯錯誤。具體步驟如下。
    的頭像 發(fā)表于 05-06 15:58 ?2201次閱讀
    打開FSP配置器界面的<b class='flag-5'>具體步驟</b>
    榕江县| 沅江市| 新密市| 亳州市| 本溪| 石狮市| 衡东县| 安庆市| 宁明县| 文登市| 景泰县| 嘉鱼县| 墨江| 长春市| 南阳市| 延长县| 民县| 赤峰市| 广南县| 西乌珠穆沁旗| 惠州市| 萨嘎县| 射阳县| 高碑店市| 紫阳县| 宜州市| 裕民县| 靖西县| 腾冲县| 永德县| 鱼台县| 平远县| 剑河县| 普安县| 桂阳县| 庐江县| 浙江省| 宁蒗| 鸡东县| 汉阴县| 交口县|