笑死,第三篇了都,好久都沒有寫這么多了,第三篇是我最近看的一個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/
-
無人機
+關注
關注
224文章
9966瀏覽量
175572 -
GPS信號
+關注
關注
0文章
23瀏覽量
9354 -
飛控系統
+關注
關注
20文章
52瀏覽量
25521
發布評論請先 登錄
相關推薦
評論