接下來的時間就要不斷的更新部落格了 Im Back !
今天要想大家分享自己寫自己的庫的方法(寫的不對或者有錯誤請指正)
1. 我先把我所說的"模板"的含義說一下:並不是你一開始建立一個專案所建立的專案模板那麼簡單,這個模板應該是最小的系統版為基礎的一個可以被你進行短期修改就可以使用在不同專案上的一個庫(當然這個過程是要建立在這個一開始的最小系統板的的專案模板的)
你的模板可以是你買的最小系統板的廠家的(但是一定注意 這些基礎檔案一定要有序和方便易懂,你要知道每個資料夾是什麼意思,存放什麼東西)
就拿我的這個檔案來說:
Hardward:一般在最小系統板以外的外設都先加到這個資料夾裡(比如:超聲波 舵機 電機 顯示屏驅動 各種感測器)
Libraries:存放驅動相應晶片的東西,和啟動檔案(注意:你在不同的專案中要用到不同的晶片,所以你要在ST公司下載相應的啟動檔案和核心檔案,我這個例子是F103的都可以通用)
MDK-ARM:這個編譯完產生的東西存放的資料夾,裡面的OBJ檔案就是要燒錄進板子的程式檔案(你要開啟一個專案的project的檔案也在這裡)
USER:放主函數其他Hardward的產生.o檔案
你可以自己找模板,但是都是大同小異,你對這個模板一定要熟悉,下面是我的模板連結
連結:https://pan.baidu.com/s/1lQJogk05qK4nEsOucVDiWg
提取碼:49j1
2. 為以後加入的外設做準備,比如加入一些檔案,或者找一些寫的好的函數加進去,這個部分你也可以再寫一個資料夾來存放
加入Headfile.h的標頭檔案放在USER就可以了(裡面放你需要的通用的.h檔案,以後就不要經行反覆的呼叫了.***注意:不能把外設的.h檔案加進來,一定是通用的***)
還可以加其他的自定義,後面我發的模板連結裡都有
math函數檔案(一些數學公式的計算,再一些地方需要用到,你可以自己找更加好的)
3. 把基礎的一些通行或者外設的初始化寫好(比如I2C,USART,SPI,ADC等)
這裡你可以把這些初始化寫在相應的外設中,比如你和顯示屏之間通訊,你可以把USART所有的介面都定義在一起,然後外設函數呼叫.也可以在外設初始化的時候定義,我個人傾向於前面的那種,但是我也暫時沒有寫出來,因為它確實要對板子十分熟悉,並且要有經驗
4.加入自己的專案的程式碼了
這個建立資料夾的過程我就不再複述了(但是一定得記住再Management里加.c檔案,再C++的時候加入資料夾)
勾選那個 C99就可以避免你很多C語言的錯誤(比如在for迴圈裡進行變數的定義)
你建立一個專案的順序因該是循序漸進:
一定要一個部分一個部分的寫,寫完一個部分去進行實驗,看看是否可以執行
然後在main函數中進行相應初始化的定義,寫下一個的時候把它再註釋掉,寫完下一個以後解除註釋(這個可以一步步的測試你的程式碼錯誤:比如引腳的重複使用,有些這面定義了別的地方就不行了(一定會深有體會的))
最後就是軟硬體的結合看效果和偵錯(先要保證可以實現基礎的功能,細節偵錯放在後面.還是第一個部落格的哪句畫:先確保程式碼沒有問題再找硬體的問題)
5.寫說明檔案
你寫的程式碼也許時間長你也會忘記,也許你有團隊成員,他需要對程式碼修改或者改進你的程式碼(這個檔案看自己,但一定注意:這是給別人看的)
6.總結
1.想建立一個好的庫,你先得進行宏觀的規劃,把每一部分都分類做一個筆記來,然後順著筆記來寫
2.遇到程式碼問題要懂得總結:這個問題你可能不是第一次遇到,但是你就是想不起來怎麼解決,寫一個檔案去記錄下來(只記住簡單的處理方法就行)
3.寫完一部分的程式碼一定記住先儲存一下,然後拿一個複製檔案再寫,留一個原始檔(教訓慘痛)
4.對晶片檔案的查詢要熟練(下面是我常用的一些檔案,注意區分晶片和型別)
連結:https://pan.baidu.com/s/1ChlyuMb0-iSeA96tjHrtkQ
提取碼:3iti
最後是我的一個庫(沒完全寫完)
連結:https://pan.baidu.com/s/1mVLF0rE-mKsHBWlr8-pf3A
提取碼:gnma