笑死,第三篇了都,好久都沒有寫這么多了,第三篇是我最近看的一個STC官網的小項目,一個無人機的項目,感覺代碼寫的很好,這里簡單的分析一下。

即沒有GPS信號或GPS信號不佳的環境,飛控系統僅保持無人機姿態的平穩,無人機無法精準定位而呈現明顯飄移。
通過一定的操縱,使飛機姿態運動符合飛行員意愿的可控飛行。
百度百科

差不多就是這樣

電機的順序

電源是單片機和電調

這就是連上了



這個是接收機的輸入和電調的PWM輸出

IMU

這個是電調控制輸出

PPM捕獲

航燈

單獨一個腳

還有蜂鳴器


預留了一路串口

完整Github上面見

組裝樣子

這些功能在源碼里面都有

實現的源碼其實很少,就是幾個文件而已,這里就不用keli了,太丑了


大概主文件里面的函數就是這些了
一般來說讀源碼的時候就是兩個路子,一個是一步一步的跳轉,還有就是看完驅動再跑主的。
我以前是第一種,但是感覺效率有點低,這里看的方法就是先驅動吧。
我們說51的時候都是在說著老土,過氣什么的,但是你玩的精通又有幾個,其次在STC里面也有了庫的概念,這里就帶你看一下。

這個就是所謂的庫文件

SFR定義一些位置

這謝是老版的51沒有的,后面加的

因為本身這個東西都沒有很難,所以在封裝庫的時候也就是使用了宏定義了。名字是很好的,做到了見名字其意。

帶著注釋很好的

IO的使能

還記得經典的定時器不?
快來補課呀!
不管怎么說,庫開發是深入人心的,封裝只是行為而已,我很很欣賞STC的精神的。

就直面自己物美價廉這個事情


離譜

反正友商是學不來

PWMGO是PWM初始化

這個是配置的文件

延時函數內部使用的是時鐘頻率

這個是STC定義的數據類型

PWM的輸出都是強推挽模式

數據指針

PWM時鐘選擇

PWM的分頻器

這個是數據手冊

先配置寄存器,然后就是中斷寄存位,異常檢測,控制寄存器也打開

軟件置0

這個是對單獨的通道設置

安排

ADC是測量電壓來的

初始化

中斷標志

這個就是計算值

最重要的MPU6050傳感器


里面的一些寄存器的位置

初始化MPU6050

里面的延時信號

這個是IIC的數據定義引腳

IIC的寫入


一對兒信號


接收和回應


發送和接收

很簡單了

這個就是起始信號了
下篇是主函數了。
http://www.stcmcudata.com/
-
無人機
+關注
關注
236文章
11298瀏覽量
195622 -
GPS信號
+關注
關注
0文章
25瀏覽量
9777 -
飛控系統
+關注
關注
20文章
57瀏覽量
26970
發布評論請先 登錄
STC8A無人機-驅動篇
評論