STM32F4 MDK新建使用庫(kù)的工程
雖然一直ST用庫(kù)做實(shí)驗(yàn),但沒有進(jìn)行認(rèn)真的總結(jié)??偸窍忍砑觾r(jià)格文件,然后編譯。能通過就完成,通不過就再添加別的文件。今天就一步步來梳理下建立用庫(kù)工程的步驟。爭(zhēng)取做到傻瓜式,讓即使完全沒用過MDK的人都能使用。
第一步:到ST下載標(biāo)準(zhǔn)外設(shè)庫(kù)和演示工程,也可以問賣你開發(fā)板的人要。我的庫(kù)文件是淘寶商給的??梢酝ㄟ^我的百度網(wǎng)盤下載,地址:
【http://pan.baidu.com/share/link?shareid=497853&uk=3087328531】
下載后解壓縮即可。此時(shí)可以進(jìn)入各個(gè)目錄簡(jiǎn)單熟悉下外設(shè)庫(kù)里邊的東西
第二步,建立MDK工程
打開MDK程序,會(huì)自動(dòng)打開上次的工程。我們關(guān)掉它,然后再新建我們自己的工程:
這時(shí)會(huì)彈出創(chuàng)建工程對(duì)話框,選擇要保存的位置,然后選擇你的MCU。
這里我建立的是一個(gè)使用Tim定時(shí)器的工程,工程文件名為TIM。使用的MVU為STM32F4VG。昨晚這些選擇點(diǎn)擊就會(huì)彈出對(duì)話框,詢問是否要將STM32F4系列MCU的啟動(dòng)文件復(fù)制到工程文件夾,點(diǎn)擊確認(rèn)讓復(fù)制到咱們的工程文件夾里邊。
這是我們就可以看到我們新建的工程了。
組織工程目錄:
工程目錄與實(shí)際文件目錄沒有必然的對(duì)應(yīng)關(guān)系。我們可以根據(jù)自己需要添加。
這里我定義的幾個(gè)目錄:user,存放主函數(shù)和一些功能函數(shù)。board:自己寫的外設(shè)初始化和外設(shè)應(yīng)用,periph存放ST標(biāo)準(zhǔn)外設(shè)庫(kù)
第三步,添加外設(shè)庫(kù)到工程【重點(diǎn)】
在第一步中解壓后的文件夾中,進(jìn)入STM32F4-Discovery_FW_V1.1.0ProjectPeripheral_Examples中。這里存放的是ST標(biāo)準(zhǔn)庫(kù)的例程。我們需要在這里復(fù)制幾個(gè)文件到我們的工程中。
進(jìn)入任一一個(gè)工程文件夾,我使用的是ADC3_DMA。找到以下幾個(gè)文件,將其復(fù)制到我們的工程中去:
stm32f4xx_conf.h stm32f4xx_it.c stm32f4xx_it.h system_stm32f4xx.c
其中system_stm32f4xx.c中定義了一些時(shí)鐘初始化的函數(shù),在剛才向工程中添加的啟動(dòng)文件會(huì)調(diào)用這里的函數(shù)。
添加完這些文件之后,開始設(shè)置工程選項(xiàng),在Project窗口中選擇Target1之后在Project菜單中調(diào)出工程屬性對(duì)話框:
先勾選這個(gè):
打開C/C++選項(xiàng)卡
這里要可以將外設(shè)庫(kù)的inc文件夾、存放board目錄中文件文件夾、還有組工程目錄文件夾加入。
我加入玩引用的最終效果:
點(diǎn)擊OK退出即可。
之后我們就可以向工程中添加外設(shè)庫(kù)文件了。添加文件跟剛才的組織工程目錄一樣,點(diǎn)擊addfile,會(huì)彈出添加文件對(duì)話框。
在右邊對(duì)話框中定位到在剛才解壓縮的文件夾中:STM32F4xx_StdPeriph_lib v1.0.2STM32F4xx_StdPeriph_Driversrc
選擇需要的文件即可。因?yàn)槲倚枰褂胻im定時(shí)器,做PWM輸出實(shí)驗(yàn)。所以除了tim庫(kù)還要添加GPIO庫(kù)。
此外misc.c文件是所有工程都要添加的,rcc庫(kù)是定義時(shí)鐘所必需的,也一并將其添加到工程中。
第四步:添加主函數(shù)文件
File-》new save 文件名可隨意,后綴必需為.c。我命名為main.c
在main.c中添加主函數(shù)定義和對(duì)公共頭文件stm32f4xx_conf.h的引用。stm32f4xx_conf.h包含了對(duì)所有的外設(shè)庫(kù)的引用。
#include "stm32f4xx_conf.h"
int main()
{
while(1);
}
保存之后,利用上邊的方法將這個(gè)文件添加到工程的user目錄中。
最后的工程目錄結(jié)構(gòu)是這樣的:
在
此時(shí),如果安鍵盤上的F5進(jìn)行編譯的話會(huì)報(bào)一堆錯(cuò)誤:Undefined symbol assert_param
這是因?yàn)槲覀冞€缺少一個(gè)紅定義,庫(kù)文件里邊的一些條件編譯選項(xiàng)需要這個(gè)定義才能用。我們打開工程屬性菜單,重新定位到C/C++選項(xiàng)卡。添加宏定義:USE_STDPERIPH_DRIVER,
重新編譯即可。
到此工程建立完畢。如果你還需要用到別的外設(shè),只要將外設(shè)庫(kù)文件加入到工程中即可。
調(diào)試,編譯,設(shè)置仿真器等部分不做介紹。