第10章 新建工程-庫函數版—零死角玩轉STM32-F429系列


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

全套200集視頻教程和1000PDF教程請到秉火論壇下載:www.firebbs.cn

野火視頻教程優酷觀看網址:http://i.youku.com/firege

 

了解STM32的標准庫文件之后,我們就可以使用它來建立工程了,因為用庫新建工程的步驟較多,我們一般是使用庫建立一個空的工程,作為工程模板。以后直接復制一份工程模板,在它之進行開發。

本章的"工程模板"范例可在配套資料中找到,自己新建工程模版時可參考該工程。

10.1 新建工程

版本說明:MDK5.15 (MDKKEIL軟件)

版本號可從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_DriverSTM32 外設庫文件

Listing

暫時為空

Output

暫時為空

Project

暫時為空

User

stm32f4xx_conf.h:用來配置庫的頭文件

stm32f4xx_it.h
stm32f4xx_it.c
:中斷相關的函數都在這個文件編寫,暫時為空

main.cmain函數文件

10.1.2 新建工程

打開KEIL5,新建一個工程,工程名根據喜好命名,我這里取LED-LIB,保存在Project\RVMDKuv5)文件夾下。

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.cppp代表外設名稱)

USER

用戶編寫的文件:

main.cmain函數文件,暫時為空

stm32f4xx_it.c:跟中斷有關的函數都放這個文件,暫時為空

DOC

工程說明.txt:程序說明文件,用於說明程序的功能和注意事項等

     105 如何在工程中添加文件夾    

4.    添加文件

先把上面提到的文件從ST標准庫中復制到工程模版對應文件夾的目錄下,然后在新建的工程中添加這些文件,雙擊組文件夾就會出現添加文件的路徑,然后選擇文件即可。

106 如何在工程中添加文件

5.    設置文件是否加入編譯

STM32F429比較特殊,它有用FMC外設代替了FSMC外設的功能,所以它的庫文件與其它型號的芯片不一樣,在添加外設文件時,stm32f4xx_fmc.cstm32f4xx_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-OBST-LINKULINK2,而且這個配置不是配置完一次之后以后就不會改變,當你換了芯片型號,或者其他操作(具體原因不明)都會改變下載器的配置。

(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至尊版用的STM32FLASH大小是1M,所以這時選擇1M的容量,如果使用的是其他型號的,要根據實際情況選擇。

1015 選擇芯片型號

一個新的工程模版新建完畢。

10.2 每課一問

1.    參考本章配套的"工程模版"范例,建立一個自己的工程模板,確保編譯后沒有警告及錯誤。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM