笑死,第三篇了都,好久都沒有寫這么多了,第三篇是我最近看的一個(gè)STC官網(wǎng)的小項(xiàng)目,一個(gè)無人機(jī)的項(xiàng)目,感覺代碼寫的很好,這里簡單的分析一下。
即沒有GPS信號(hào)或GPS信號(hào)不佳的環(huán)境,飛控系統(tǒng)僅保持無人機(jī)姿態(tài)的平穩(wěn),無人機(jī)無法精準(zhǔn)定位而呈現(xiàn)明顯飄移。
通過一定的操縱,使飛機(jī)姿態(tài)運(yùn)動(dòng)符合飛行員意愿的可控飛行。
百度百科
差不多就是這樣
電機(jī)的順序
電源是單片機(jī)和電調(diào)
這就是連上了
這個(gè)是接收機(jī)的輸入和電調(diào)的PWM輸出
IMU
這個(gè)是電調(diào)控制輸出
PPM捕獲
航燈
單獨(dú)一個(gè)腳
還有蜂鳴器
預(yù)留了一路串口
完整Github上面見
組裝樣子
這些功能在源碼里面都有
實(shí)現(xiàn)的源碼其實(shí)很少,就是幾個(gè)文件而已,這里就不用keli了,太丑了
大概主文件里面的函數(shù)就是這些了
一般來說讀源碼的時(shí)候就是兩個(gè)路子,一個(gè)是一步一步的跳轉(zhuǎn),還有就是看完驅(qū)動(dòng)再跑主的。
我以前是第一種,但是感覺效率有點(diǎn)低,這里看的方法就是先驅(qū)動(dòng)吧。
我們說51的時(shí)候都是在說著老土,過氣什么的,但是你玩的精通又有幾個(gè),其次在STC里面也有了庫的概念,這里就帶你看一下。
這個(gè)就是所謂的庫文件
SFR定義一些位置
這謝是老版的51沒有的,后面加的
因?yàn)楸旧磉@個(gè)東西都沒有很難,所以在封裝庫的時(shí)候也就是使用了宏定義了。名字是很好的,做到了見名字其意。
帶著注釋很好的
IO的使能
還記得經(jīng)典的定時(shí)器不?
快來補(bǔ)課呀!
不管怎么說,庫開發(fā)是深入人心的,封裝只是行為而已,我很很欣賞STC的精神的。
就直面自己物美價(jià)廉這個(gè)事情
離譜
反正友商是學(xué)不來
PWMGO是PWM初始化
這個(gè)是配置的文件
延時(shí)函數(shù)內(nèi)部使用的是時(shí)鐘頻率
這個(gè)是STC定義的數(shù)據(jù)類型
PWM的輸出都是強(qiáng)推挽模式
數(shù)據(jù)指針
PWM時(shí)鐘選擇
PWM的分頻器
這個(gè)是數(shù)據(jù)手冊(cè)
先配置寄存器,然后就是中斷寄存位,異常檢測,控制寄存器也打開
軟件置0
這個(gè)是對(duì)單獨(dú)的通道設(shè)置
安排
ADC是測量電壓來的
初始化
中斷標(biāo)志
這個(gè)就是計(jì)算值
最重要的MPU6050傳感器
里面的一些寄存器的位置
初始化MPU6050
里面的延時(shí)信號(hào)
這個(gè)是IIC的數(shù)據(jù)定義引腳
IIC的寫入
一對(duì)兒信號(hào)
接收和回應(yīng)
發(fā)送和接收
很簡單了
這個(gè)就是起始信號(hào)了
下篇是主函數(shù)了。
http://www.stcmcudata.com/
-
無人機(jī)
+關(guān)注
關(guān)注
230文章
10641瀏覽量
184615 -
GPS信號(hào)
+關(guān)注
關(guān)注
0文章
25瀏覽量
9523 -
飛控系統(tǒng)
+關(guān)注
關(guān)注
20文章
54瀏覽量
26147
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
普及無人機(jī)知識(shí)
無人機(jī)飛手緊缺 看無人機(jī)行業(yè)發(fā)展趨勢如何?
無人機(jī)培訓(xùn)
無人機(jī)遙控方向控制問題
無人機(jī)中的MCU是如何工作的?
無人機(jī)類型之植保無人機(jī),帶你了解什么是植保無人機(jī)?
什么是無人機(jī)圖傳系統(tǒng)?
STC8A的設(shè)備驅(qū)動(dòng)軟件函數(shù)庫
無人機(jī)云臺(tái)是什么
解讀無人機(jī)的驅(qū)動(dòng)
【瘋殼·無人機(jī)教程2】開源編隊(duì)無人機(jī)-硬件資源簡介
STC8A/8F系列單片機(jī)技術(shù)參考手冊(cè)

STC8A及STC8F系列微控制器英文資料

逐飛STC8H/STC8G/STC8A智能車開源庫

評(píng)論