如何新建stm32固件庫工程

1、首先先新建一個工程文件夾,在它之下再新建7個文件夾

DOC用於存放程序說明文件

Listing存放的是編譯器編譯時候產生的c/彙編/鏈接的列表清單

Output存放的是編譯產生的調試信息、hex文件、預覽信息、封裝庫等

Project用來存放工程

CMSIS 和 STM32F4xx_StdPeriph_Driver 用來存放的是固件庫文件

USER是用戶編寫的驅動文件

2、新建工程

打開 KEIL5,新建一個工程,工程名根據喜好命名。

接下來選擇CPU具體型號,如果這裏沒有出現你想要的 CPU 型號,或者一個型號都沒有,那麼肯定是你的 KEIL5沒
有添加 device 庫, KEIL5 不像 KEIL4 那樣自帶了很多 MCU 的型號,KEIL5 需要自己添加。(這裏以stm32f429芯片爲例構建固件庫工程模板)                                                   

           

等下我們手動添加庫文件,這裏我們點擊關掉。

在新建的工程中添加 5個組文件夾,用來存放各種不同的文件,文件從本地建好的工程文件夾下獲取,雙擊組文件夾就會出現添加文件的路徑,然後選擇文件即可。

右鍵點擊Target1

新建如下幾個組文件夾


STARTUP:存放彙編的啓動文件:startup_stm32f429_439xx.s

CMSIS: 存放與內核有關的文件這裏以M4內核爲例:system_stm32f4xx.c

STM32F4xx_StdPeriph_Driver:存放STM32外設庫文件misc.c  stm32f4xx_ppp.c(ppp代表外設名稱)

USER:用戶編寫的文件: main.c:main函數文件,暫時爲空   stm32f4xx_it.c:跟中斷有關的函數都放這個文件,暫時爲空        DOC: 工程說明.txt:程序說明文件,用於說明程序的功能和注意事項等

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

STM32F429比較特殊,它有用 FMC外設代替了 FSMC外設的功能,所以它的庫文件與其它型號的芯片不一樣,在添加外設文件時,stm32f4xx_fmc.c 和 stm32f4xx_fsmc.c文件只能存在一個,而且我們的 STM32F429芯片必須用 fmc 文件。如果我們把外設庫的所有文件都添加進工程,也可以使用下面的方法,設置文件不加入編譯,這樣也不會導致編譯問題。這種設置在開發時也很常用,暫時不把文件加進編譯,方便調試。

添加完成後,接下來進行設置

這一步的配置工作很重要,很多人串口用不了 printf 函數,編譯有問題,下載有問題,都是這個步驟的配置出了錯。
(1) Target 中選中微庫“ Use MicroLib”,爲的是在日後編寫串口驅動的時候可以使用printf函數。而且有些應用中如果用了 STM32的浮點運算單元 FPU,一定要同時開微庫,不然有時會出現各種奇怪的現象。FPU 的開關選項在微庫配置選項下方的“Use
Single Precision”中,默認是開的。

(2) 在 Output 選項卡中把輸出文件夾定位到我們工程目錄下的“output”文件夾,如果想在編譯的過程中生成 hex文件,那麼那 Create HEX File 選項勾上。

           

  (3) 在 Listing選項卡中把輸出文件夾定位到我們工程目錄下的“Listing”文件夾。

        

(4) 在 C/C++選項卡中添加處理宏及編譯器編譯的時候查找的頭文件路徑。

  

在這個選項中添加宏,就相當於我們在文件中使用“#define”語句定義宏一樣。在編譯器中添加宏的好處就是,只要用了這個模版,就不用源文件中修改代碼。
  STM32F429_439xx 宏:爲了告訴 STM32標準庫,我們使用的芯片是 STM32F429型號,使 STM32標準庫根據我們選定的芯片型號來配置。
  USE_STDPERIPH_DRIVER 宏:爲了讓 stm32f4xx.h包含 stm32f4xx_conf.h 這個頭文件。

“Include Paths ”這裏添加的是頭文件的路徑,如果編譯的時候提示說找不到頭文件,一般就是這裏配置出了問題。你把頭文件放到了哪個文件夾,就把該文件夾添加到這裏即可。(請使用圖中的方法用文件瀏覽器去添加路徑,不要直接手打路徑,容易出錯)                                                                                                                                                                                                               編譯即可

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章