第10章 新建工程—庫函數版
第10章 新建工程—庫函數版
全套200集視頻教程和1000頁PDF教程請到秉火論壇下載:www.firebbs.cn
野火視頻教程優酷觀看網址:http://i.youku.com/firege
了解STM32的標準庫文件之後,我們就可以使用它來建立工程了,因為用庫新建工程的步驟較多,我們一般是使用庫建立一個空的工程,作為工程模板。以後直接復制一份工程模板,在它之進行開發。
本章的"工程模板"範例可在配套資料中找到,自己新建工程模版時可參考該工程。
10.1 新建工程
版本說明:MDK5.15 (MDK即KEIL軟件)
版本號可從MDK軟件的"Help-->About uVision"選項中查詢到。
10.1.1 新建本地工程文件夾
為了工程目錄更加清晰,我們在本地電腦上新建一個"工程模板"文件夾,在它之下再新建6個文件夾,具體如下:
表 101 工程目錄文件夾清單
名稱 |
作用 |
Doc |
用來存放程序說明的文件,由寫程序的人添加 |
Libraries |
存放的是庫文件 |
Listing |
存放編譯器編譯時候產生的C/匯編/鏈接的列表清單 |
Output |
存放編譯產生的調試信息、hex文件、預覽信息、封裝庫等 |
Project |
用來存放工程 |
User |
用戶編寫的驅動文件 |
圖 101 工程文件夾目錄
在本地新建好文件夾後,把準備好的庫文件添加到相應的文件夾下:
表 102 工程目錄文件夾內容清單
名稱 |
作用 |
Doc |
工程說明.txt |
Libraries |
CMSIS:裏面放著跟CM4內核有關的庫文件 |
STM32F4xx_StdPeriph_Driver:STM32 外設庫文件 |
|
Listing |
暫時為空 |
Output |
暫時為空 |
Project |
暫時為空 |
User |
stm32f4xx_conf.h:用來配置庫的頭文件 |
stm32f4xx_it.h |
|
main.c:main函數文件 |
10.1.2 新建工程
打開KEIL5,新建一個工程,工程名根據喜好命名,我這裏取LED-LIB,保存在Project\RVMDK(uv5)文件夾下。
圖 102 在KEIL5中新建工程
1. 選擇CPU型號
這個根據你開發板使用的CPU具體的型號來選擇, M4至尊版選STM32F429IGT型號。如果這裏沒有出現你想要的CPU型號,或者一個型號都沒有,那麽肯定是你的KEIL5沒有添加device庫,KEIL5不像KEIL4那樣自帶了很多MCU的型號,KEIL5需要自己添加,關於如何添加請參考《如何安裝KEIL5》這一章。
圖 103 選擇具體的CPU型號
2. 在線添加庫文件
等下我們手動添加庫文件,這裏我們點擊關掉。
圖 104 庫文件管理
3. 添加組文件夾
在新建的工程中添加5個組文件夾,用來存放各種不同的文件,文件從本地建好的工程文件夾下獲取,雙擊組文件夾就會出現添加文件的路徑,然後選擇文件即可。
表 103 工程內組文件夾內容清單
名稱 |
作用 |
STARTUP |
存放匯編的啟動文件:startup_stm32f429_439xx.s |
STM32F4xx_StdPeriph_Driver |
與STM32外設相關的庫文件 misc.c stm32f4xx_ppp.c(ppp代表外設名稱) |
USER |
用戶編寫的文件: main.c:main函數文件,暫時為空 stm32f4xx_it.c:跟中斷有關的函數都放這個文件,暫時為空 |
DOC |
工程說明.txt:程序說明文件,用於說明程序的功能和註意事項等 |
圖 105 如何在工程中添加文件夾
4. 添加文件
先把上面提到的文件從ST標準庫中復制到工程模版對應文件夾的目錄下,然後在新建的工程中添加這些文件,雙擊組文件夾就會出現添加文件的路徑,然後選擇文件即可。
圖 106 如何在工程中添加文件
5. 設置文件是否加入編譯
STM32F429比較特殊,它有用FMC外設代替了FSMC外設的功能,所以它的庫文件與其它型號的芯片不一樣,在添加外設文件時,stm32f4xx_fmc.c和stm32f4xx_fsmc.c文件只能存在一個,而且我們的STM32F429芯片必須用fmc文件。如果我們把外設庫的所有文件都添加進工程,也可以使用下面的方法,設置文件不加入編譯,這樣也不會導致編譯問題。這種設置在開發時也很常用,暫時不把文件加進編譯,方便調試。
圖 107 設置文件是否加入編譯
6. 配置魔術棒選項卡
這一步的配置工作很重要,很多人串口用不了printf函數,編譯有問題,下載有問題,都是這個步驟的配置出了錯。
(1) Target中選中微庫" Use MicroLib",為的是在日後編寫串口驅動的時候可以使用printf函數。而且有些應用中如果用了STM32的浮點運算單元FPU,一定要同時開微庫,不然有時會出現各種奇怪的現象。FPU的開關選項在微庫配置選項下方的"Use Single Precision"中,默認是開的。
圖 108 添加微庫
(2) 在Output選項卡中把輸出文件夾定位到我們工程目錄下的"output"文件夾,如果想在編譯的過程中生成hex文件,那麽那Create HEX File選項勾上。
圖 109配置 Output 選項卡
(3) 在Listing選項卡中把輸出文件夾定位到我們工程目錄下的"Listing"文件夾。
圖 1010配置 Listing 選項卡
(4) 在C/C++選項卡中添加處理宏及編譯器編譯的時候查找的頭文件路徑。
圖 1011配置 C/C++ 選項卡
在這個選項中添加宏,就相當於我們在文件中使用"#define"語句定義宏一樣。在編譯器中添加宏的好處就是,只要用了這個模版,就不用源文件中修改代碼。
? STM32F429_439xx宏:為了告訴STM32標準庫,我們使用的芯片是STM32F429型號,使STM32標準庫根據我們選定的芯片型號來配置。
? USE_STDPERIPH_DRIVER宏:為了讓stm32f4xx.h包含stm32f4xx_conf.h這個頭文件。
"Include Paths "這裏添加的是頭文件的路徑,如果編譯的時候提示說找不到頭文件,一般就是這裏配置出了問題。你把頭文件放到了哪個文件夾,就把該文件夾添加到這裏即可。(請使用圖中的方法用文件瀏覽器去添加路徑,不要直接手打路徑,容易出錯)
7. 下載器配置
這部分的配置最好是在安裝好下載器驅動,下載器連接了電腦和開發板,且開發板上電後來配置。
這裏面需要根據你使用了什麽仿真器來配置,常用的有三種仿真器:JLINK/ARM-OB,ST-LINK,ULINK2,而且這個配置不是配置完一次之後以後就不會改變,當你換了芯片型號,或者其他操作(具體原因不明)都會改變下載器的配置。
(1) JLINK/ARM-OB配置
要先安裝了JLINK驅動之後,該配置才能下載,兩者缺一不可。
圖 1012 JLINK/ARM-OB下載配置
②ST-LINK配置
要先安裝了ST-LINK驅動之後,該配置才能下載,兩者缺一不可。
圖 1013ST-LINK下載配置
③ULINK2配置
要先安裝了ULINK2驅動之後,該配置才能下載,兩者缺一不可。要註意的是設置成ULINK2,而不是ULINK。
圖 1014ULINK2下載配置
8. 選擇CPU型號
這一步的配置也不是配置一次之後完事,常常會因為各種原因需要重新選擇,當你下載的時候,提示說找不到Device的時候,請確保該配置是否正確。有時候下載程序之後,不會自動運行,要手動復位的時候,也回來看看這裏的"Reset and Run"配置是否失效。M4至尊版用的STM32的FLASH大小是1M,所以這時選擇1M的容量,如果使用的是其他型號的,要根據實際情況選擇。
圖 1015 選擇芯片型號
一個新的工程模版新建完畢。
10.2 每課一問
1. 參考本章配套的"工程模版"範例,建立一個自己的工程模板,確保編譯後沒有警告及錯誤。
第10章 新建工程—庫函數版