日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三章 PX4-Pixhawk-SPI底层驱动解析

發布時間:2024/4/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三章 PX4-Pixhawk-SPI底层驱动解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第三章?PX4-SPI底層驅動解析

?????????這一章節我們會對PX4的底層驅動進行解析,我們這里主要解析的是SPI協議,因為這個協議是所有傳感器的一個協議,至于IIC和串口就可以類似的讀寫一下,大家看完這個解析后不妨去試試驅動一下can總線協議。

????????首先大家是不是覺得奇怪,為什么PX4編譯的是一個針對F4的程序而不是其他的。這里我們就需要從整個系統的架構考慮了。我們之前提到過這個系統是基于nuttx操作系統開發的,至于nuttx是一個什么樣的系統我們不做過多介紹,總的來說他就是一個類似于ucos的系統就行了。

?????????nuttx系統的配置時就對處理的器做了選擇,具體我們需要追蹤到目錄

下,里面有一個defconfig文件哦。打開這個文件你可以看到很多以CONFIG開頭的定義,有的定義是y有的是not set。這些其實就是類似于C語言的define,定義一些宏,而y就代表yes也就是1。這里面你就可以看到

看到沒,支持stm32的,

這些都是哦。里面還有定義了使用stm32AD,DMA,IIC,SDIO,SPI等等。這里can是沒有開啟的大家到時候開發的時候可以開啟

。這個文件里面定義了很多的東西哦,下次找不到一些定義可以的到這里面來找,這里還有定義串口的波特率

。這里要特別記住有幾個定義,我這里先貼出來,


這兩個是解析rcs的相關東西哦。

?????????大家還記得PX4是有個協處理的,這個協處理的定義實在路徑下的defconfig

,至于defconfig的連接處在哪,那個這個就是nuttx下的工具會自動連接過去的,這個我們不用管,因為我也沒去仔細去研究,如果大家有興趣不妨去研究一下。

?????????這里說明一下整個系統的啟動是以__start開始的,至于為什么需要查看nuttx腳本了,這里貼出來一下

,剩下的大家自己去查看。

?????????說了這么多終于可以進入到驅動層了,關于SPI協議,其實nuttx這個系統是已經寫好的,我們只需要鏈接過去就行了,can總線也是一樣的。

?????????還記前面提到的nsh_main了吧,這里其實就是APP層的一個入口了文件在這個路徑下

,這里我們具體的流程我們暫時不做詳細描述,這一章節我們只對SPI這個驅動來解析,大家不要急,在后面我們會慢慢的對整個流程進行一部分一部分解析。在nsh_main中有個函數

。我們追蹤進去發現只有一個函數,所以這個很容易就找到。這里面有這個函數

,這里我們我們用suoce insight來看的就需要用到搜索功能,結果一搜索出現好多個這樣的文件,不過大家也不用急,告訴大家一個方法我們是針對PX4-V2的硬件。所以我們就針對有關于V2的硬件就行了。所以我們搜索到路徑

,里面有個文件是px4fmu2_init.c

這個函數中你就可以看到很多的端口的初始化了哦。那些端口的標號你可查到就在board_config.h中,記住都是v2的硬件哦。我們要找的是SPI端口,所以我們還是去找SPI。在這個函數中你可以看到

這個就是對驅動層的APP鏈接層嘍。


看到沒這些初始化和CS片選了。

找到這個了沒?這個up_spiinitializa函數需要繼續追蹤了,我們是針對stm32的,所以這個函數肯定在stm32的庫中去找了

找到了哦。看一下這個函數,看到這個了沒

,還記得defconfig文件嗎?那里有定義哦。接著就是初始化端口了。

。說到這里大家是不是還是不知道怎么連接到nuttxspi庫中。不要急,還是在stm32_spi.c這個文件中,大家不妨跑到最前一點去看看是不是有這樣的一個結構體

看到沒連接過來了哦。前一部分就是nutxx的庫了,后面是自己寫的,當然這個要一致還有一個宏要注意哦

它們之間存在映射的關系哦所以在之后寫初始化的都是SPI_SELECT這個在spi.h中。到時寫can的時候別忘了。這里我們再來找一個函數就行stm32_spi1select。這個函數因為有片選的參與,所以我們特別說明,至于其他的設置模式,設置速率大家就自己去研究。這個函數我們還是需要追蹤,這下我們追蹤到的就是

,這里就行PX4spi的片選了,后期的硬件的讀寫用到哦。這里面有三個參數

,端口、設備和片選。注意在PX4架構中對這些傳感器都是有標號的哦,具體的查找在這個文件中哦

,還是那個原則,找與V2相關的,這里再提一句與硬件相匹配的還有board.h文件這個有兩個文件一個是針對F4主控的一個是針對F1協處理器的里面有相關配置,比如晶振這塊就在里面還有相關端口的配置也在其中的。在這個文件中我們可以找到這個,看到沒都是進行標號的哦。

。在stm32_spi1select中有個片選


這些片選在文件中都是可以查到了,以后寫驅動的引腳控制就要在這個文件中寫了,便于維護。講到這里底層的SPI就差不多了。后面我們將會對SPI的具體硬件上的應用做一個解析。

如果文章有什么問題歡迎大家提出來,本人將在第一時間進行更改。如果大家有什么問題也可以隨時聯系我,可以QQ給我或者郵箱給我,如果大家比較急也可以打電話給我13530699165不過盡量不要打哦。

總結

以上是生活随笔為你收集整理的第三章 PX4-Pixhawk-SPI底层驱动解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。