1. 程式人生 > >Keil5新建STM32工程(詳細圖解)

Keil5新建STM32工程(詳細圖解)

一、下載ST官方庫

首先註冊賬號登入,然後點選產品、微控制器;如圖


        接著右側的工具與軟體;嵌入式軟體,並選擇STM32,如圖。


  我的是STM32F1系列,選擇如圖這個

    獲取軟體

    然下載即可。

 二、安裝keil

不介紹。相信都安裝好了。

三、準備工作

新建project資料夾,並在裡面新建三個資料夾,CMSIS(存放核心函式及啟動引導檔案),FWLIB(存放庫函式),USER(存放使用者自己的函式),如圖。


解壓下載的官方庫,主要用到標出的兩個。


    將STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中的檔案複製到CMSIS中,再將C:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的檔案全部複製到CMSIS中。最終CMSIS中的檔案如圖。


        將STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver中的 inc src 複製進FWLIB資料夾。


   將STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中的這幾個檔案複製進USER,


      至此 準備結束。

四、新建工程

  開啟keil,新建工程temp(原來有工程需要關閉),儲存在剛剛新建的project裡面。


        儲存後會讓選擇晶片。我用的是STM32F103VE系列,所以選這個。


        確定之後跳出一個視窗,直接關掉(這是讓選擇啟動引導等的,我們已經下載的庫裡有,所以跳過這一步)。點紅線圈出的圖表,然後把tegart1改為temp。刪除掉SourceGroup1.


    依次新增CMSIS、USER、FWLIB、STARTUP,並把剛剛複製在對應資料夾下的檔案新增。注意的是STARTUP要選擇NewProject\CMSIS\startup\arm中的startup_stm32f10x_hd.s、startup_stm32f10x_ld.s、startup_stm32f10x_md.s三個。檔案型別選擇所有。  FWLIB中只需要新增src中的.c檔案即可。  CMSIS中不需要新增STARTUP中的檔案。 新增完畢點選OK。


    然後點選魔法棒,進入C/C++設定介面,在define一欄輸入 STM32F10X_HD,USE_STDPERIPH_DRIVER ,並在includepath欄加入標頭檔案路徑。


           includepath內容如下


        至此,工程建立完畢。可以點選編譯檢視是否有錯。

五、問題與除錯

編譯後發現有錯,因為直接用的庫裡的main函式,不包含#include "stm32_eval.h" 標頭檔案,直接刪除。並把其他main函式中未用內容刪除,並在main函式中包含相關標頭檔案。空白工程主函式如圖。


 在編譯,依然有錯。


意思是引導檔案太多。就是STARTUP中只能一個引導使用。因為此處用的HD,所以把另外兩個 Options for File    中的include TargetBulid 和 Always Bulid 的灰色勾點掉。

更改完畢後STARTUP中其他兩個前面都有紅色槓槓。

                                           

再次編譯,還是有錯。


    說是 system_stm32f10x_1.c and system_stm32f10x.c 重複。

    但是檢查工程欄未發現有system_stm32f10x_1.c。最後發現是包含檔案中存在重複。點選如圖方塊,發現在CMSIS和USER中都包含有system_stm32f10x_1.c。把CMSIS中的system_stm32f10x_1.c刪除。編譯無錯。


    儲存一下,空白工程建立完畢!之後就可以根據手冊進行開發了O(∩_∩)O哈哈~