根據(jù)前面的 KEIL 開發(fā)平臺知識须尚,根據(jù)自己的習(xí)慣,建立一個專門屬于自己的工程模板假消。那么為什么要建立模板呢柠并?
1、 你希望每次開發(fā)項目的時候都從頭開始建立工程嗎富拗?
2臼予、 你希望每次將常用的函數(shù)都重新編寫嗎?(比如串口發(fā)送函數(shù)啃沪、printf 函數(shù)重定向粘拾,字符轉(zhuǎn)化函數(shù)、I2C 驅(qū)動程序……)创千。
3缰雇、 你希望你的工程 Options 選項每次建立時都要重新設(shè)置嗎?(C99 模式追驴,生成 bin 文件械哟、下載設(shè)置……)
如果以上答案為否,那么說明其實你也是一個不愿意做重復(fù)勞動的人殿雪,那么建立工程模板就是非常明智的選擇戒良。
該模板主要有以下功能:
1、 將你認(rèn)為有必要的平臺功能添加到工程選項中冠摄,開發(fā)項目時打開工程即可開始主函數(shù)的編寫糯崎。
2、 常用的驅(qū)動函數(shù)都包含在這里
3河泳、 所有測試成功的函數(shù)都將在這里進(jìn)行更新沃呢,這是你獨一無二的函數(shù)集中庫。
4拆挥、 不同硬件環(huán)境下的不同模板(STM32F4薄霜、STM32F1),相同硬件環(huán)境不同功能(FLASH 下載纸兔,RAM 下載惰瓜、仿真功能、Debug 調(diào)試版本汉矿、Release 最終版本)
下面開始一步步建立適合你自己的模板(將以我自己的習(xí)慣作為介紹)崎坊。
開發(fā)平臺設(shè)置
為了更好的使用 KEIL 開發(fā)平臺,有必要首先介紹一下平臺的設(shè)置洲拇,該設(shè)置和工程無關(guān)奈揍,即當(dāng)你將工程文件整個剪切到別的電腦上時曲尸,該設(shè)置只在你的電腦的 keil 有效,而不會影響別人電腦中的設(shè)置男翰。這些操作還是有必要了解一下的另患,可以讓你更方便的使用你的開發(fā)平臺。
這個設(shè)置界面就是 Configuration:
Editor 選項:
我認(rèn)為比較重要的就是 Encoding 了蛾绎,這個是設(shè)置中文格式的昆箕,一般默認(rèn)情況下使用的是 UTF-8,這個格式在 keil 平臺的顯示效果還是比較好的租冠,但是在刪除中文字符時为严,需要刪除兩次才能刪除一個中文字符,顯然是一件很麻煩的事情肺稀,而且很多時候換平臺的時候或者移植別人的代碼時第股,經(jīng)常出現(xiàn)亂碼的情況。所以我的建議是使用 GB3212 編碼格式话原。
然后是 Virtual Space 這個功能可以開啟夕吻,這樣的話隨處可以開始進(jìn)行代碼的編寫或注釋了(不明白的操作一下就知道了)。對齊方式(Auto Indent)采用 Smart繁仁。
然后是這幾個選項:
Automatic reload of external modified files 選項不勾選涉馅,這樣當(dāng)工程打開的文件在外部編輯器改變時,就可以提示是否需要重新加載或者不加載了黄虱。
后面三個依次是進(jìn)入調(diào)試前保存工程設(shè)置稚矿、進(jìn)入調(diào)試時保存文件(其實每次編譯時都會自動保存文件的,文件右上角的*存在表示修改了捻浦,沒有就說明已保存)晤揣、每過五分鐘自動保存。
然后 C/C++ 源文件使用語法顏色朱灿,這樣一些關(guān)鍵字就會根據(jù)設(shè)置的顏色突顯出來了昧识。Table 大小默認(rèn)選擇 2,如果說你看別人的代碼發(fā)現(xiàn)格式很亂盗扒,那么你可以試試更改這個數(shù)字跪楞。還有需要顯示行數(shù),這樣你通過斷言輸出(assert_failed())就能夠準(zhǔn)確定位錯誤代碼的位置了侣灶。
Colors & Fonts
這個選項卡建議使用默認(rèn)即可甸祭,剛開始寫代碼的時候也覺得有趣,就把一些常用的宏定義設(shè)置成自己想要的顏色(比如將 uint褥影、uchar 當(dāng)成關(guān)鍵字一樣顯示不同的顏色池户,后來慢慢的發(fā)現(xiàn)太麻煩了,還是保持原生態(tài)比較好)。
User Keyword:
設(shè)置屬于自己的關(guān)鍵字煞檩,那么你設(shè)置的關(guān)鍵字就會如 void、int栅贴、char 等一樣特殊顯示了斟湃。建議還是不要設(shè)置。畢竟換一臺電腦開發(fā)的話你會很不習(xí)慣的檐薯。
Shortcut Keys
這個選項可以看到 keil 軟件的所有快捷鍵凝赛,當(dāng)然你也可以自己設(shè)置自定義的快捷鍵。
Text Completion
這個選項卡還是很有用處的坛缕,最最重要的就是開啟代碼自動補全的功能了墓猎,這樣你寫部分名稱就可以自動補全全部的。當(dāng)使用結(jié)構(gòu)體時也可以自動列出你需要的成員變量進(jìn)行選擇赚楚。這里的 3 表示你寫完 3 個字符后開始匹配工程中所有可能的名字毙沾。當(dāng)然你也可以設(shè)置成其它數(shù)。
然后是動態(tài)語法檢查宠页,也就是邊寫代碼邊檢查語法是否有問題左胞,而不必如以前一樣編譯完了才知道有沒有問題的,這樣可以大大加快開發(fā)速度举户,畢竟如果你的工程很龐大烤宙,編譯一次需要幾十秒,還是很煩人的俭嘁。
動態(tài)檢查結(jié)果通過以下路徑打開
最后是 C/C++ 的模板躺枕,你可以將一些常用的的格式在這里寫上,這樣可以節(jié)省不少時間供填。注意#define | 中的丨拐云,這個是用來定位光標(biāo)的,當(dāng)你插入代碼之后近她,光標(biāo)自動定位到這里慨丐。