精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MAVLink學習之路05_ MAVLink應用編程接口分析

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-07 16:21 ? 次閱讀

MAVLink應用編程主要內容

2.1 發送和接收說明

利用MAVLink通信協議進行編程,主要實現的功能就是:

1.發送端

將需要發送的數據(如:SysState, BatVol),添加MAVLink通信協議,通過硬件(如:UARTCAN)發送出去。

2.接收端

硬件(如:UART、CAN)接收到的數據,通過MAVLink協議解析,得到一幀完整的MAVLink數據包,提取發送端發送的數據(如:SysState, BatVol),將得到的數據應用到我們程序中。

主要流程:數據 -> MAVLink封裝 -> 發送 -> 接收 -> MAVLink解析 ->數據

2.2 發送和接收流程圖

該流程圖是結合我上一篇文章提供的源代碼例程畫出來,包含的只是主要內容,更多細節沒有在流程圖中呈現。

提示:

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

而實際項目可能會:

1.發送和接收在一個工程;

2.包含操作系統

3.發送、接收數據FIFO(隊列)處理;

所以,實際項目,請按需修改我提供的源碼。

3

MAVLink函數接口詳細說明

這一章節講述發送和接收主要用到的函數接口,請參考我提供的源代碼例程理解。

為方便初學者理解,我將其分為發送和接收兩個部分來講述。

3.1 發送主要函數接口

上面是我提供例程的代碼,主要講4個接口

1.MAVLink_SendTest

這個接口是根據自己情況進行封裝函數,用于應用程序調用,這里不多說。

2.mavlink_msg_sys_info_pack

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

3.mavlink_msg_to_send_buffer

將上一步得到的MAVLink_Msg轉換成我們要發送的數據BUF緩存。

4.MAV_USART_SendNByte

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

發送數據的流程:從應用代碼 -> 底層硬件(發送出去)。

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

3.2 接收主要函數接口

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

1.MAV_USART_GetByte

該函數接口也是硬件底層通信接口,請根據自己情況修改,只需要傳遞數據(流)進來即可。

2.mavlink_parse_char

MAVLink解析是按照一個一個字符進行解析,我們接收到一個字符,就對其進行解析,直到解析完(根據返回標志判斷)一幀數據為止。

3.if(MAVLINK_MSG_ID_SYS_INFO == MAVLinkMsg.msgid)

這里就是對解析好的一包完整消息進行分類判斷吧。其實,我是想說,這個地方還有兩個ID需要進行判斷,SysID系統ID和CompID部件ID。

我提供例程為方便初學者快速理解,未提供SysID和CompID判斷,在后續應用編程中會用到。

接收數據的流程:從應用代碼 -> 底層硬件(發送出去)。

以上就是發送和接收的主要函數接口,如果你只是簡單的進行通信,這幾個接口就夠你使用了。當然,更高級的編程應用還需要你進一步掌握其中的內容。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信協議
    +關注

    關注

    28

    文章

    857

    瀏覽量

    40256
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2715

    瀏覽量

    463367
  • uart
    +關注

    關注

    22

    文章

    1227

    瀏覽量

    101171
  • mavlink
    +關注

    關注

    0

    文章

    8

    瀏覽量

    2586
收藏 人收藏

    評論

    相關推薦

    4G模組SD卡接口編程:深度學習

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

    什么是機器學習?通過機器學習方法能解決哪些問題?

    來源:Master編程樹“機器學習”最初的研究動機是讓計算機系統具有人的學習能力以便實現人工智能。因為沒有學習能力的系統很難被認為是具有智能的。目前被廣泛采用的機器
    的頭像 發表于 11-16 01:07 ?222次閱讀
    什么是機器<b class='flag-5'>學習</b>?通過機器<b class='flag-5'>學習</b>方法能解決哪些問題?

    通過JTAG接口對MSP430進行編程

    電子發燒友網站提供《通過JTAG接口對MSP430進行編程.pdf》資料免費下載
    發表于 10-31 09:31 ?0次下載
    通過JTAG<b class='flag-5'>接口</b>對MSP430進行<b class='flag-5'>編程</b>

    FPGA加速深度學習模型的案例

    :DE5Net_Conv_Accelerator 應用場景 :面向深度學習的開源項目,實現了AlexNet的第一層卷積運算加速。 技術特點 : 采用了Verilog語言進行編程,與PCIe接口相集成,可以直接插入到
    的頭像 發表于 10-25 09:22 ?141次閱讀

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

    接口芯片的編程模型方法是一個復雜的話題,涉及到硬件設計、軟件編程、通信協議等多個方面。 1. 接口芯片概述 接口芯片是用來連接不同硬件設備或
    的頭像 發表于 09-30 11:30 ?168次閱讀

    基于迅為RK3568/RK3588開發板的AI圖像識別方案

    01_官方模型測試 02_人臉識別 03_口罩檢測 04_工地防護 05_撲克牌識別 06_手掌關鍵點檢測 07_人臉特征點檢測
    發表于 08-28 09:50

    如何理解socket編程接口

    Socket編程接口是一種網絡編程的基本概念,它提供了一種在不同計算機之間進行通信的方法。 Socket編程接口的基本概念 1.1 Sock
    的頭像 發表于 08-16 10:48 ?354次閱讀

    按照這樣學習C語言,成為卷王不是夢!

    在計算機編程領域,C語言被譽為一種強大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程任務,還能夠為你的職業生涯打下堅實的基礎。但要成為C語言的“卷王”,需要一定的學習方法和
    的頭像 發表于 07-06 08:04 ?289次閱讀
    按照這樣<b class='flag-5'>學習</b>C語言,成為卷王不是夢!

    機器學習在數據分析中的應用

    隨著大數據時代的到來,數據量的爆炸性增長對數據分析提出了更高的要求。機器學習作為一種強大的工具,通過訓練模型從數據中學習規律,為企業和組織提供了更高效、更準確的數據分析能力。本文將深入
    的頭像 發表于 07-02 11:22 ?544次閱讀

    帶開放式電容器輸出的十六進制逆變器SN54LS05 SN54S05 SN7405 SN74LS05 SN74S05數據表

    電子發燒友網站提供《帶開放式電容器輸出的十六進制逆變器SN54LS05 SN54S05 SN7405 SN74LS05 SN74S05數據表.pdf》資料免費下載
    發表于 05-09 11:12 ?0次下載
    帶開放式電容器輸出的十六進制逆變器SN54LS<b class='flag-5'>05</b> SN54S<b class='flag-5'>05</b> SN7405 SN74LS<b class='flag-5'>05</b> SN74S<b class='flag-5'>05</b>數據表

    OBD接口的CAN分析儀使用方法

    OBD接口的CAN分析儀的使用主要涉及到將設備與汽車的OBD接口連接,并通過配套的軟件進行數據的讀取和分析。以
    的頭像 發表于 04-18 11:21 ?913次閱讀

    MAVLink在應用編程中的編程原理和思路

    嵌入式開發過程中,UART、 CAN、 USB等通信基本離不開通信協議。 下面給大家分享一種通信協議(MAVLink)在應用編程中的編程原理和思路。
    發表于 03-08 12:45 ?793次閱讀
    <b class='flag-5'>MAVLink</b>在應用<b class='flag-5'>編程</b>中的<b class='flag-5'>編程</b>原理和思路

    淺析MCU通信、存儲常用的簡單校驗算法

    UART有一個奇偶校驗,CAN通信有CRC校驗。Modbus、MAVlink、USB等通信協議也有校驗信息。
    的頭像 發表于 03-07 10:56 ?476次閱讀
    淺析MCU通信、存儲常用的簡單校驗算法

    全志D1s開發板裸機開發之壞境搭建

    環境搭建 開發板介紹 張天飛老師編寫的《RISC-V體系結構編程與實踐》,里面的源碼是基于 QEMU 模擬器的,可以認為它是一款虛擬的開發板。如果需要在真實開發板上學習,可以使用百問網
    發表于 03-06 13:54

    verilog與其他編程語言的接口機制

    Verilog是一種硬件描述語言,用于描述數字電路的行為和結構。與其他編程語言相比,Verilog具有與硬件緊密結合的特點,因此其接口機制也有一些與眾不同之處。本文將詳細介紹Verilog與其他編程
    的頭像 發表于 02-23 10:22 ?624次閱讀