STM32F103ZE新建韌體庫模板
韌體庫介紹
韌體庫就是函式的集合,韌體庫函式的作用是向下負責與暫存器直接打交道, 向上提供使用者函式呼叫的介面(API) 。 在 51 的開發中我們常常的作法是直接操作暫存器,比如要控制某些 IO 口的狀態,我們直 接操作暫存器: P0=0x11; 而在 STM32 的開發中,我們同樣可以操作暫存器: GPIOx->BRR = 0x0011; 這種方法當然可以,但是這種方法的劣勢是你需要去掌握每個暫存器的用法,你才能正確使用 STM32,而對於 STM32 這種級別的 MCU,數百個暫存器記起來又是談何容易。於是 ST(意法 半導體)推出了官方韌體庫,韌體庫將這些暫存器底層操作都封裝起來,提供一整套介面(API) 供開發者呼叫,大多數場合下,你不需要去知道操作的是哪個暫存器,你只需要知道呼叫哪些 函式即可。
建立工程
新建一個資料夾Template(自己隨意起),該目錄下四個資料夾如圖(名字也可以自己起)
Core:一些核心檔案和啟動檔案
Libiraries:韌體庫
Project:工程檔案
User:應用程式
開啟MDK5新建工程
目錄選擇之前新建的template下的User,檔名字自己取
選擇晶片型號,我這裡是STM32F03ZE
專案新建後的目錄
此時點選之前新建的檔案Template下的USER後:(會出現以下檔案,點開前兩個都是空檔案)
韌體庫內容的拷貝
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目錄下有inc和src兩個檔案copy到Template資料夾下的LIbiiraries內
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport目錄下兩個檔案copy到之前新建的檔案Template下的CORE檔案下。
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm目錄下還要copy一個啟動檔案到CORE。
Core目錄完成,內部顯示如下:
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x目錄下copy三個檔案到USER檔案。
\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目錄下複製以下四個檔案到USER。
將檔案匯入到工程
此時韌體庫內容的複製已經完成,現在就要在MDK5中將檔案匯入到工程。
建立三個資料夾
FWLIB:Add Files… \LibLIbiiraries\src(全部檔案)
USER:Add Files… \USER(3個.c檔案)
COREc:Add Files… \CORE(.c檔案+.s檔案)
點選魔術棒將生成的.hex檔案存在於Project(大部分人之前這個資料夾都取名為OBJ)
此時編譯會出現標頭檔案找不到的error。
需新增路徑
此時編譯會出錯(標頭檔案找不到的原因)
實際上User目錄下的這個.h檔案是沒有被匯入進去的
新增巨集定義到Define:“USE_STDPERIPH_DRIVER”,點選ok。
再次編譯就不報錯了
參考博文:https://blog.csdn.net/visual_eagle/article/details/104126122