1. 程式人生 > >第10章 新建工程—庫函數版

第10章 新建工程—庫函數版

過程 用不了 stm32標準庫 post std int 版本 cpu rip

第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
stm32f4xx_it.c:中斷相關的函數都在這個文件編寫,暫時為空

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章 新建工程—庫函數版