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哈哈~。