STM32系列之新建工程模板(三)


 

 

 

 

 

 

 

 

今天,我將記錄STM32如何新建一個模板步驟

第一步:首先先新建一個文件夾(英文命名的)——作為工程根目錄

第二步;在文件夾中新建一個名為USER的子目錄文件

第三步:點擊 MDK 的菜單:Project –>New Uvision Project ,然后將目錄定位到剛才建立的文件夾 Template 之下,在這個目錄下面建立子文件夾 USER

然后定位到 USER 目錄下面,我們的工程文件就都保存到 USER 文件夾下面。工程命名為 Template,點擊保存。

第四步:接下來會出現一個選擇 CPU 的界面,就是選擇我們的芯片型號。如圖 3.3.3 所示,因為 ALIENTEK 戰艦 STM32F103 所使用的 STM32 型號為 STM32F103ZET6,所以在這里我們選擇 STMicroelectronicsSTM32F1 SeriesSTM32F103STM32F103ZET6(如果使用的是其他系列 的芯片,選擇相應的型號就可以了。 

點擊 OK,MDK 會彈出 Manage Run-Time Environment 對話框,如圖所示: 

這是 MDK5 新增的一個功能,在這個界面,我們可以添加自己需要的組件,從而方便構建 開發環境,不過這里我們不做介紹。所以在圖 3.3.4 所示界面,我們直接點擊 Cancel,即可

得到如圖  所示界面: 

到這里,我們還只是建了一個框架,還需要添加啟動代碼,以及.c 文件等。 4) 現在我們看看 USER 目錄下面包含 2 個文件夾和 2 個文件,如下圖 所示: 

第五步:接下來,我們在 Template 工程目錄下面,新建 3 個文件夾 CORE, OBJ 以及 STM32F10x_FWLib。CORE 用來存放核心文件和啟動文件,OBJ 是用來存放編譯過程文件以及 hex 文件,STM32F10x_FWLib 文件夾顧名思義用來存放 ST 官方提供的庫函數源碼文件。已有的 USER 目錄除了用來放工程文件外,還用來存放主函數文件 main.c,以及其他包括 system_stm32f10x.c 等等。 

第六步:打開官方固件庫包,定位到我們之前准備好的固件庫包的目錄 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面, 將目錄下面的 src,inc 文件夾 copy 到我們剛才建立的 STM32F10x_FWLib 文件夾下面。 

 

 第七步:打開官方固件庫包,定位到目錄 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,將文件 core_cm3.c 和 文 件 core_cm3.h 復 制 到 CORE 下 面 去 。 然 后 定 位 到 目 錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\a rm 下面,將里面 startup_stm32f10x_hd.s 文件復制到 CORE 下面。

 

 

 

 第八步:定位到目錄: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面 將里面的三個文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,復制到我們的 USER 目錄之下。然后將 STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的 4 個文件 main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 復制到 USER 目錄下面。 

第九步:前面 8 個步驟,我們將需要的固件庫相關文件復制到了我們的工程目錄下面,下面我們將 這些文件加入我們的工程中去。右鍵點擊 Target1,選擇 Manage Project Items。 

第十步: Project Targets一欄,我們將Target名字修改為Template,然后在Groups一欄刪掉一個Source Group1,建立三個 Groups:USER,CORE,FWLIB。然后點擊 OK,可以看到我們的 Target 名字以及 Groups 情況。 

 

 

 第十一步:下面我們往 Group 里面添加我們需要的文件。我們按照步驟 10 的方法, 右鍵點擊點擊 Tempate,選擇選擇 Manage Project Itmes,然后選擇需要添加文件的 Group,這里第一步我 們選擇 FWLIB , 然 后 點 擊 右 邊 的 Add Files, 定 位 到 我 們 剛 才 建 立 的 目 錄STM32F10x_FWLib/src 下面,將里面所有的文件選中(Ctrl+A),然后點擊 Add,然后 Close. 可以看到 Files 列表下面包含我們添加的文件。 

第十二步: 用同樣的方法,將 Groups 定位到 CORE 和 USER 下面,添加需要的文件。這里 我們的 CORE 下面需要添加的文件為 core_cm3.c,startup_stm32f10x_hd.s (注意,默認添加的 時候文件類型為.c,也就是添加 startup_stm32f10x_hd.s 啟動文件的時候,你需要選擇文件類型 為 All files 才能看得到這個文件),USER 目錄下面需要添加的文件為 main.c,stm32f10x_it.c, system_stm32f10x.c.  這樣我們需要添加的文件已經添加到我們的工程中了,最后點擊 OK,回到工程主界面。 

 

 

第十三步: 接下來我們要編譯工程,在編譯之前我們首先要選擇編譯中間文件編譯后存放目錄。 方法是點擊魔術棒,然后選擇“Output”選項下面的“Select folder for objects…”,然后選 擇目錄為我們上面新建的 OBJ 目錄。這里大家注意,如果我們不設置 Output 路徑,那么 默認的編譯中間文件存放目錄就是 MDK 自動生成的 Objects 目錄和 Listings 目錄。 

第十四步:下面我們點擊編譯按鈕 編譯工程,可以看到很多報錯,因為找不到頭文件

第十五步:回到工程主菜單,點擊魔術棒 ,出來一個菜單,然后點擊 c/c++選項.然后點擊Include Paths 右邊的按鈕。彈出一個添加 path 的對話框,然后我們將圖上面的 3 個目錄添 加進去。記住,keil 只會在一級目錄查找,所以如果你的目錄下面還有子目錄,記得 path 一定要定位到最后一級子目錄。然后點擊 OK.

第十六步:接下來,我們再來編譯工程,可以看到又報了很多同樣的錯誤。為什么呢?這是因為 3.5 版 本的庫函數在配置和選擇外設的時候通過宏定義來選擇的,所以我們需要配置一個全局的 宏定義變量。按照步驟 16,定位到 c/c++界面,然后填寫 “STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 輸入框里面(請注意,兩個標識符 中間是逗號不是句號,如果您不能確定您輸入的是正確的,請直接打開我們光盤任何一個 庫函數實例,然后復制過來這串文字即可)。這里解釋一下,如果你用的是中容量那么 STM32F10X_HD 修改為 STM32F10X_MD,小容量修改為 STM32F10X_LD. 然后點擊 OK。

 

 第十七步:我們記得打開工程 USER 下面的 main.c 文件,復制下面代碼到 main.c 覆蓋已有代碼,然后進行編譯。(記得在代碼的最后面加上一個回車,否則會有警告),可 以看到,這次編譯已經成功了。 

第十八步:這樣一個工程模版建立完畢。下面還需要配置,讓編譯之后能夠生成 hex 文件。同樣點擊 魔術棒,進入配置菜單,選擇 Output。然后勾上下三個選項。 其中 Create HEX file 是編 譯生成 hex 文件,Browser Information 是可以查看變量和函數定義。 

 

 第十九步: 重新編譯代碼,可以看到生成了 hex 文件在 OBJ 目錄下面,這個文件我們用 flymcu 下載 到 mcu 即可(參考 3.4.2 小節)。到這里,一個基於固件庫 V3.5 的工程模板就建立了。 

 


免責聲明!

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



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