查看: 1494|回復: 0
打印 上一主題 下一主題

【開(kāi)源教程24】瘋殼·開(kāi)源編隊無(wú)人機-遙控整機代碼走讀、編譯與燒寫(xiě)

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-9-1 17:55:17 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
COCOFLY教程
——瘋殼·無(wú)人機·系列
遙控整機代碼走讀、編譯與燒寫(xiě)





圖1



一、代碼架構
  遙控的整體代碼工程由 7 個(gè)工作組組成,分別是 Remoter、show、Driver、STM32_LIB、USB、USB/Lib 以及 Drv_Point,如下圖所示。


圖2

  各個(gè)組的具體的代碼功能如下表所示。


表1

二、代碼走讀
  系統的主函數部分是整個(gè)代碼的起始運行位置,在主函數內主要做三個(gè)事情:1、初始化外設及參數,2、輪詢(xún)線(xiàn)程函數,3、菜單顯示邏輯,其代碼如下圖所示。




圖3
  系統的每一個(gè)線(xiàn)程函數都已經(jīng)分配好了運行周期,在不同的線(xiàn)程里執行不同的事情,線(xiàn)程的切換通過(guò)簡(jiǎn)單的邏輯處理形式切換,而系統的運行時(shí)間由 sysTick 提供,即系統的“滴答”時(shí)鐘。各個(gè)線(xiàn)程的入口如下。


圖4
  分別有 1000ms 周期的函數、50ms 周期的函數、10ms 周期的函數、4ms 周期的函數以及 2ms 周期的函數。
  整個(gè)遙控器的邏輯處理、數據交換的核心部分均在 Remoter 工作組內,該組內的代碼框架如下圖所示。


圖5
  其中的 DT.c 負責和飛控、上位機等的通信數據處理,即拆解包、封裝包、提取關(guān)鍵數據等,如下圖所示為對飛控傳輸過(guò)來(lái)的數據進(jìn)行處理。





圖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




文件下載請點(diǎn)擊: 【2】遙控整機代碼走讀、編譯與燒寫(xiě).pdf (696.96 KB)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页