一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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í)之路05_ MAVLink應(yīng)用編程接口分析

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

掃碼添加小助手

加入工程師交流群

MAVLink應(yīng)用編程主要內(nèi)容

2.1 發(fā)送和接收說(shuō)明

利用MAVLink通信協(xié)議進(jìn)行編程,主要實(shí)現(xiàn)的功能就是:

1.發(fā)送端

將需要發(fā)送的數(shù)據(jù)(如:SysState, BatVol),添加MAVLink通信協(xié)議,通過(guò)硬件(如:UARTCAN)發(fā)送出去。

2.接收端

硬件(如:UART、CAN)接收到的數(shù)據(jù),通過(guò)MAVLink協(xié)議解析,得到一幀完整的MAVLink數(shù)據(jù)包,提取發(fā)送端發(fā)送的數(shù)據(jù)(如:SysState, BatVol),將得到的數(shù)據(jù)應(yīng)用到我們程序中。

主要流程:數(shù)據(jù) -> MAVLink封裝 -> 發(fā)送 -> 接收 -> MAVLink解析 ->數(shù)據(jù)

2.2 發(fā)送和接收流程圖

該流程圖是結(jié)合我上一篇文章提供的源代碼例程畫出來(lái),包含的只是主要內(nèi)容,更多細(xì)節(jié)沒有在流程圖中呈現(xiàn)。

提示:

我提供例程是針對(duì)初學(xué)者提供比較單一發(fā)送和接收例程(MDK-ARM和EWARM包含各自的發(fā)送和接收工程)。

而實(shí)際項(xiàng)目可能會(huì):

1.發(fā)送和接收在一個(gè)工程;

2.包含操作系統(tǒng);

3.發(fā)送、接收數(shù)據(jù)FIFO(隊(duì)列)處理;

所以,實(shí)際項(xiàng)目,請(qǐng)按需修改我提供的源碼。

3

MAVLink函數(shù)接口詳細(xì)說(shuō)明

這一章節(jié)講述發(fā)送和接收主要用到的函數(shù)接口,請(qǐng)參考我提供的源代碼例程理解。

為方便初學(xué)者理解,我將其分為發(fā)送和接收兩個(gè)部分來(lái)講述。

3.1 發(fā)送主要函數(shù)接口

上面是我提供例程的代碼,主要講4個(gè)接口。

1.MAVLink_SendTest

這個(gè)接口是根據(jù)自己情況進(jìn)行封裝函數(shù),用于應(yīng)用程序調(diào)用,這里不多說(shuō)。

2.mavlink_msg_sys_info_pack

這個(gè)函數(shù)接口主要目的:將變量信息(SysID、CompID、SysState、BatVol)打包,最終得到MAVLink_Msg這個(gè)消息包。

3.mavlink_msg_to_send_buffer

將上一步得到的MAVLink_Msg轉(zhuǎn)換成我們要發(fā)送的數(shù)據(jù)BUF緩存。

4.MAV_USART_SendNByte

這個(gè)函數(shù)接口也是我自己根據(jù)硬件(UART)封裝的,如果你是其它硬件通信,只需要封裝一個(gè)類似的接口(參數(shù)具有BUF,LEN)即可。

發(fā)送數(shù)據(jù)的流程:從應(yīng)用代碼 -> 底層硬件(發(fā)送出去)。

如果要深入了解,可以先熟悉軟件流程,再結(jié)合源代碼工程,同時(shí)參看接口函數(shù)具體實(shí)現(xiàn)。相信你很快就明白了。

3.2 接收主要函數(shù)接口

上面是我提供例程的代碼(方便截圖,去掉了部分),主要講以上4點(diǎn)內(nèi)容。

1.MAV_USART_GetByte

該函數(shù)接口也是硬件底層通信接口,請(qǐng)根據(jù)自己情況修改,只需要傳遞數(shù)據(jù)(流)進(jìn)來(lái)即可。

2.mavlink_parse_char

MAVLink解析是按照一個(gè)一個(gè)字符進(jìn)行解析,我們接收到一個(gè)字符,就對(duì)其進(jìn)行解析,直到解析完(根據(jù)返回標(biāo)志判斷)一幀數(shù)據(jù)為止。

3.if(MAVLINK_MSG_ID_SYS_INFO == MAVLinkMsg.msgid)

這里就是對(duì)解析好的一包完整消息進(jìn)行分類判斷吧。其實(shí),我是想說(shuō),這個(gè)地方還有兩個(gè)ID需要進(jìn)行判斷,SysID系統(tǒng)ID和CompID部件ID。

我提供例程為方便初學(xué)者快速理解,未提供SysID和CompID判斷,在后續(xù)應(yīng)用編程中會(huì)用到。

接收數(shù)據(jù)的流程:從應(yīng)用代碼 -> 底層硬件(發(fā)送出去)。

以上就是發(fā)送和接收的主要函數(shù)接口,如果你只是簡(jiǎn)單的進(jìn)行通信,這幾個(gè)接口就夠你使用了。當(dāng)然,更高級(jí)的編程應(yīng)用還需要你進(jìn)一步掌握其中的內(nèi)容。

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

    關(guān)注

    28

    文章

    1036

    瀏覽量

    41195
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2921

    瀏覽量

    467942
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1276

    瀏覽量

    104004
  • mavlink
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    即刻啟程,踏上W55MH32高性能以太網(wǎng)單片機(jī)學(xué)習(xí)之路!

    即刻啟程,踏上W55MH32高性能以太網(wǎng)單片機(jī)學(xué)習(xí)之路!即刻開啟W55MH32學(xué)習(xí)之旅!本教系列程配套官方手冊(cè)與W55MH32L開發(fā)板,從外設(shè)功能框圖解析到代碼實(shí)操,助你掌握高性能以太網(wǎng)單片機(jī)的架構(gòu)和核心原理,輕松駕馭多
    的頭像 發(fā)表于 05-07 18:51 ?393次閱讀
    即刻啟程,踏上W55MH32高性能以太網(wǎng)單片機(jī)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>之路</b>!

    如何使用UCANS32K146讀取MAVLINK?

    /user-guides/autopilot/the-cube-module-overview 我想要UCANS32K146讀取飛控的所有診斷信息,并被告知此信息是使用 MAVLINK 接口從飛控發(fā)送的。 是否有任何驅(qū)動(dòng)程序或示例代碼可以執(zhí)行此作(我沒有
    發(fā)表于 03-26 06:36

    PRSCAN-05HSA PRSCAN-05HSA

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)PRSCAN-05HSA相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有PRSCAN-05HSA的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,PRSCAN-05HSA真值表,PRSCAN
    發(fā)表于 03-25 18:37
    PRSCAN-<b class='flag-5'>05</b>HSA PRSCAN-<b class='flag-5'>05</b>HSA

    RS485-05HSA RS485-05HSA

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)RS485-05HSA相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有RS485-05HSA的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,RS485-05HSA真值表,RS485-
    發(fā)表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>HSA RS485-<b class='flag-5'>05</b>HSA

    RS485-05HSSV RS485-05HSSV

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)RS485-05HSSV相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有RS485-05HSSV的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,RS485-05HSSV真值表,RS485-
    發(fā)表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>HSSV RS485-<b class='flag-5'>05</b>HSSV

    RS485-05LSAV RS485-05LSAV

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)RS485-05LSAV相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有RS485-05LSAV的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,RS485-05LSAV真值表,RS485-
    發(fā)表于 03-25 18:35
    RS485-<b class='flag-5'>05</b>LSAV RS485-<b class='flag-5'>05</b>LSAV

    RS485-05LSA RS485-05LSA

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)RS485-05LSA相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有RS485-05LSA的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,RS485-05LSA真值表,RS485-
    發(fā)表于 03-25 18:34
    RS485-<b class='flag-5'>05</b>LSA RS485-<b class='flag-5'>05</b>LSA

    NW2-05D05DR3 NW2-05D05DR3

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NW2-05D05DR3相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有NW2-05D05DR3的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,NW2-05D05DR3真值表,NW2-
    發(fā)表于 03-20 18:30
    NW2-<b class='flag-5'>05D05</b>DR3 NW2-<b class='flag-5'>05D05</b>DR3

    FN1-05S05RNT FN1-05S05RNT

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)FN1-05S05RNT相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有FN1-05S05RNT的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,F(xiàn)N1-05S05RNT真值表,F(xiàn)N1-
    發(fā)表于 03-19 18:39
    FN1-<b class='flag-5'>05S05</b>RNT FN1-<b class='flag-5'>05S05</b>RNT

    NNV25-05S05A3NT NNV25-05S05A3NT

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NNV25-05S05A3NT相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有NNV25-05S05A3NT的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,NNV25-05S05A3NT真
    發(fā)表于 03-19 18:36
    NNV25-<b class='flag-5'>05S05</b>A3NT NNV25-<b class='flag-5'>05S05</b>A3NT

    NNV25-05S05ANT NNV25-05S05ANT

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)NNV25-05S05ANT相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有NNV25-05S05ANT的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,NNV25-05S05ANT真值表,
    發(fā)表于 03-19 18:36
    NNV25-<b class='flag-5'>05S05</b>ANT NNV25-<b class='flag-5'>05S05</b>ANT

    BQ78412應(yīng)用程序編程接口

    電子發(fā)燒友網(wǎng)站提供《BQ78412應(yīng)用程序編程接口.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 14:46 ?0次下載
    BQ78412應(yīng)用程序<b class='flag-5'>編程</b><b class='flag-5'>接口</b>

    4G模組SD卡接口編程:深度學(xué)習(xí)

    今天我們需要深度學(xué)習(xí)的是4G模組SD卡接口編程,以我常用的模組Air724UG為例,分享給大家。
    的頭像 發(fā)表于 11-20 23:14 ?699次閱讀
    4G模組SD卡<b class='flag-5'>接口</b><b class='flag-5'>編程</b>:深度<b class='flag-5'>學(xué)習(xí)</b>

    接口芯片的編程模型方法是什么

    接口芯片的編程模型方法是一個(gè)復(fù)雜的話題,涉及到硬件設(shè)計(jì)、軟件編程、通信協(xié)議等多個(gè)方面。 1. 接口芯片概述 接口芯片是用來(lái)連接不同硬件設(shè)備或
    的頭像 發(fā)表于 09-30 11:30 ?661次閱讀

    如何理解socket編程接口

    Socket編程接口是一種網(wǎng)絡(luò)編程的基本概念,它提供了一種在不同計(jì)算機(jī)之間進(jìn)行通信的方法。 Socket編程接口的基本概念 1.1 Sock
    的頭像 發(fā)表于 08-16 10:48 ?931次閱讀