? ? ? ? ?首先,打開Keil,選擇Project-》New uVision Project,選擇合適的文件夾,輸入工程名后,點(diǎn)擊保存,建立工程。
如下圖,在Template文件夾下建立工程名為stm32_demo的工程。

然后我們選擇器件,以STM32F103RB為例(STM32其他系列可類推),在STMicroelectronics欄中選擇STM32F103RB,如下圖,在圖右側(cè)我們可看到關(guān)于芯片的描述。

點(diǎn)擊確定后彈出如下的對話框,問需不需要添加啟動文件(此啟動文件為MDK自帶的),

在這里,選擇否(N),等會我們會添加STM32固件庫中的啟動文件。
接下來,我們要建立幾個文件組,用來存放不同的源文件,讓整個工程目錄結(jié)構(gòu)清晰,點(diǎn)擊
中的后如下圖所示

點(diǎn)擊
中的可建立一個文件組,可以刪除分組,下面我們將建立User,StdPeriph_Drive,CMSIS,MDK-ARM四個文件組,User用來存放與用戶有關(guān)的文件,StdPeriph_Drive用來存放庫函數(shù)中的外設(shè)驅(qū)動文件,CMSIS用來放于Cortex_M3內(nèi)核有關(guān)的文件,MDK-ARM用來存放啟動文件,文件組建立好后,如下圖所示。
??
點(diǎn)擊OK,我們可看到文件組如下所示

接下來,我們將對固件庫文件夾(如下圖所示)與Template文件夾中的文件進(jìn)行操作。

將固件庫文件夾中的Libraries文件夾復(fù)制到工程目錄下(即剛才建立的Template文件夾下),并在Template下建立User與Output兩個文件夾,User用來放與用戶代碼有關(guān)的文件,Output用來存放編譯后產(chǎn)生的中間文件。
打開Template文件夾后如下圖所示。

然后,將
STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_Stdperiph_ExamplesGPIOIOToggle
目錄下main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c四個文件復(fù)制到User目錄下。
至此,文件的操作結(jié)束。
重新點(diǎn)擊,現(xiàn)在我們要向各個文件組中添加文件。
首先是User文件組,點(diǎn)擊Add Files,然后添加User文件夾下的3個C文件,如下圖所示。

然后是StdPeriph_Drive文件組,向其添加LibirariesSTM32F10x_StdPeriph_Driversrc下的所有源文件,如下圖所示

然后是CMSIS文件組,向其添加LibirariesCMSISCM3CoreSupport下的core_cm3.c和
LibirariesCMSISCM3DeviceSupportSTSTM32F10x下的system_stm32f10x.c文件,如下圖所示

然后是MDK-ARM文件組,向其添加啟動文件,啟動文件在
LibirariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm下,因?yàn)槲覀冞x擇的芯片型號為STM32F103RB,故向其添加startup_stm32f10x_md.s,如下圖所示,其他類型芯片可根據(jù)芯片容量來選擇相應(yīng)的啟動文件

完成后,點(diǎn)擊OK,至此,文件組的文件添加完畢。
接下來,我們將進(jìn)行編譯選項(xiàng)的設(shè)置
選擇
中的
,在Target欄中勾選
,Output欄中點(diǎn)擊
,選擇Template文件下下的Output文件夾,并且勾選
,Listing欄中點(diǎn)擊
,選擇Output文件夾,最后要在C/C++選項(xiàng)欄中設(shè)置好宏定義與文件包含路徑。
宏定義設(shè)置如下,其中STM32F103RB對應(yīng)的宏定義STM32F10X_MD,可以根據(jù)其他芯片型號改變宏定義。

文件包含路徑設(shè)置如下,
點(diǎn)擊
中的?
來添加文件路徑,在此要添加4個文件路徑,如下圖所示

接下來是最后一步了,將main.c文件中的第24行#include “stm32_eval.h”注釋掉即可。
點(diǎn)擊編譯
后,編譯即可通過。
編譯的結(jié)果如下:

主函數(shù)是一個關(guān)于IO翻轉(zhuǎn)的例子,我們可以通過軟件仿真來看波形。
點(diǎn)擊
中的
,然后選擇

中的
(波形仿真),點(diǎn)擊后如下圖所示

點(diǎn)擊后如下圖所示

點(diǎn)擊
新建要觀察的信號,在此處應(yīng)輸入PORTD.0與PORTD.2兩個信號,設(shè)置好后點(diǎn)擊Close,點(diǎn)擊
,仿真開始,我們可以觀察到的波形如下圖所示

至此,庫函數(shù)的移植結(jié)束。
關(guān)于庫函數(shù)的使用,大家可以參考官方關(guān)于固件庫的手冊。
電子發(fā)燒友App






評論