電子工程網(wǎng)
標題:
【開(kāi)源教程24】瘋殼·開(kāi)源編隊無(wú)人機-遙控整機代碼走讀、編譯與燒寫(xiě)
[打印本頁(yè)]
作者:
Linda-x
時(shí)間:
2022-9-1 17:55
標題:
【開(kāi)源教程24】瘋殼·開(kāi)源編隊無(wú)人機-遙控整機代碼走讀、編譯與燒寫(xiě)
COCOFLY教程
——瘋殼·無(wú)人機·系列
遙控整機代碼走讀、編譯與燒寫(xiě)
1.png
圖1
一、代碼架構
遙控的整體代碼工程由 7 個(gè)工作組組成,分別是 Remoter、show、Driver、STM32_LIB、USB、USB/Lib 以及 Drv_Point,如下圖所示。
2.png
圖2
各個(gè)組的具體的代碼功能如下表所示。
表1.png
表1
二、代碼走讀
系統的主函數部分是整個(gè)代碼的起始運行位置,在主函數內主要做三個(gè)事情:1、初始化外設及參數,2、輪詢(xún)線(xiàn)程函數,3、菜單顯示邏輯,其代碼如下圖所示。
3.0.png
3.1.png
3.2.png
圖3
系統的每一個(gè)線(xiàn)程函數都已經(jīng)分配好了運行周期,在不同的線(xiàn)程里執行不同的事情,線(xiàn)程的切換通過(guò)簡(jiǎn)單的邏輯處理形式切換,而系統的運行時(shí)間由 sysTick 提供,即系統的“滴答”時(shí)鐘。各個(gè)線(xiàn)程的入口如下。
4.png
圖4
分別有 1000ms 周期的函數、50ms 周期的函數、10ms 周期的函數、4ms 周期的函數以及 2ms 周期的函數。
整個(gè)遙控器的邏輯處理、數據交換的核心部分均在 Remoter 工作組內,該組內的代碼框架如下圖所示。
5.png
圖5
其中的 DT.c 負責和飛控、上位機等的通信數據處理,即拆解包、封裝包、提取關(guān)鍵數據等,如下圖所示為對飛控傳輸過(guò)來(lái)的數據進(jìn)行處理。
6.0.png
6.1.png
6.2.png
6.3.png
圖6
其中 Stick.c 為搖桿邏輯處理,主要對搖桿采集到 ADC 值進(jìn)行分析,判斷需要執行的邏輯。最后的 cocobit.c 是負責和 cocobit 編程板之間的通信。
工作組“show”主要負責了整體的菜單 UI 顯示,這里已經(jīng)做了封裝處理。
工作組“Driver”負責各個(gè)模塊的底層驅動(dòng),例如搖桿 ADC 配置、NRF24L01
的 SPI 驅動(dòng)等。
工作組“USB”以及“USB/Lib”,負責通過(guò) STM32 自帶的 USB,虛擬出串口,方便與上位機進(jìn)行通信。
保存、編譯最后把代碼燒寫(xiě)的遙控中,配合飛控就可以正常使用了。如下圖所示 1 為保存、2 為編譯、3 為下載燒寫(xiě)。
7.png
圖7
文件下載請點(diǎn)擊:
【2】遙控整機代碼走讀、編譯與燒寫(xiě).pdf
(696.96 KB)
2022-9-1 17:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
歡迎光臨 電子工程網(wǎng) (http://selenalain.com/)
Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页