"); //-->
遙控的整體代碼工程由7個工作組組成,分別是Remoter、show、Driver、STM32_LIB、USB、USB/Lib以及Drv_Point,如下圖所示。
各個組的具體的代碼功能如下表所示。
組 | 功能 |
Remoter | 包含遙控器數據數據、搖桿按鍵處理等。 |
show | 負責遙控器整體的顯示菜單UI等代碼實現 |
Driver | 各個模塊的底層驅動 |
STM32_LIB | STM32標準庫 |
USB | USB相關 |
USB/Lib | USB庫 |
Drv_Point | 系統關鍵庫 |
二、代碼走讀
系統的主函數部分是整個代碼的起始運行位置,在主函數內主要做三個事情:1、初始化外設及參數,2、輪詢線程函數,3、菜單顯示邏輯,其代碼如下圖所示。

系統的每一個線程函數都已經分配好了運行周期,在不同的線程里執行不同的事情,線程的切換通過簡單的邏輯處理形式切換,而系統的運行時間由sysTick提供,即系統的“滴答”時鐘。各個線程的入口如下。
分別有1000ms周期的函數、50ms周期的函數、10ms周期的函數、4ms周期的函數以及2ms周期的函數。
整個遙控器的邏輯處理、數據交換的核心部分均在Remoter工作組內,該組內的代碼框架如下圖所示。
其中的DT.c負責和飛控、上位機等的通信數據處理,即拆解包、封裝包、提取關鍵數據等,如下圖所示為對飛控傳輸過來的數據進行處理。

其中Stick.c為搖桿邏輯處理,主要對搖桿采集到ADC值進行分析,判斷需要執行的邏輯。最后的cocobit.c是負責和cocobit編程板之間的通信。
工作組“show”主要負責了整體的菜單UI顯示,這里已經做了封裝處理。
工作組“Driver”負責各個模塊的底層驅動,例如搖桿ADC配置、NRF24L01的SPI驅動等。
工作組“USB”以及“USB/Lib”,負責通過STM32自帶的USB,虛擬出串口,方便與上位機進行通信。
保存、編譯最后把代碼燒寫的遙控中,配合飛控就可以正常使用了。如下圖所示1為保存、2為編譯、3為下載燒寫。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
相關推薦
連接性十字路口:對V2X存儲的需求飆升
隔離放大器及其應用
國外電路圖008 Audio Pre-Amplifier
一起來認識電池封裝架構的挑戰
國外電路圖004 FM Radio Antenna Amplifier
電流傳感放大器MAX471 MAX472的原理及應用
深度報道:產業融合在即 無線打頭陣
Applilet軟件安裝演示視頻
光伏發電系統最大功率點跟蹤控制
C編譯器軟件安裝演示視頻
設備文件(Device file)安裝演示視頻
RIGOL高速伺服激光加工系統MIPI D-PHY一致性測試
深入分析信號鏈設計,助你了解CTSD技術的關鍵優勢
高交會引進留學生在深創辦企業過百家
在使用ADS的時候,如何通過JTAG把bin文件燒入FLASH中?
電站直流電源后備系統及智能充電機的設計
一些活動
多功能三相低壓斷路控制技術研究
場效應管80W音頻功率放大電路
從汽車 BCM 方案看國產 MCU 芯片的突圍與挑戰
匯編器與PM+軟件安裝演示
Cybertruck遭召回,特斯拉優勢不再
英特爾和臺積電如同柴油跟汽油,“不能混在一起燒”?
加快電動汽車無線充電的廣泛采用
可折疊iPhone最快明年上市
SM+軟件安裝演示視頻
MP4產品電路圖
被美誘捕的俄羅斯黑客被判三年監禁
國外電路圖020 Broadcast-Band RF Amplifier
雙核鎖步技術在汽車芯片軟錯誤防護中的應用詳解