00. 目錄
01. 固件庫概述
ST(意法半導(dǎo)體)為了方便用戶開發(fā)程序,提供了一套豐富的 STM32標(biāo)準(zhǔn)外設(shè)函數(shù)庫庫,簡稱固件庫。
固件庫版本:
STM32F10x_StdPeriph_Lib_V3.5.0
02. 創(chuàng)建工程步驟
2.1 在建立工程之前,我們在電腦的某個(gè)目錄下面建立一個(gè)文件夾,名字為 00_Template。
筆者目錄為E:\Program Data\Keil\00_Template
2.2 在上述00_Template目錄下創(chuàng)建一下四個(gè)目錄
CORE 用來存放核心文件和啟動文件,OBJ 是用來存放編譯過程文件以及hex 文件,STM32F10x_FWLib 文件夾顧名思義用來存放 ST 官方提供的庫函數(shù)源碼文件。
2.3 點(diǎn)擊 MDK 的菜單:Project –>New Uvision Project ,
2.4 將目錄定位到剛才建立的文件夾00_Template 之下,然后定位到 USER 目錄下面,我們的工程文件就都保存到 USER 文件夾下面。工程命名為Template,點(diǎn)擊保存。
2.5 選擇 CPU 的界面,就是選擇我們的芯片型號。
STMicroelectronics→STM32F1 Series→STM32F103→STM32F103C8T6(如果使用的是其他系列的芯片,選擇相應(yīng)的型號就可以了)
溫馨提示
一定要安裝對應(yīng)的器件 pack 才會顯示這些內(nèi)容哦!
2.6 MDK 會彈出 Manage Run-Time Environment 對話框, 點(diǎn)擊取消即可。
2.7 點(diǎn)擊取消之后得到如下界面
2.8 將固件庫目錄下面的 src,inc 文件夾拷貝到我們剛才建立的 STM32F10x_FWLib 文件夾下面。
固件庫目錄:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver
目的目錄:00_Template\STM32F10x_FWLib
2.9 將固件庫包里面相關(guān)的啟動文件復(fù)制到我們的工程目錄 CORE 之下。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,將文件 core_cm3.c和文 件core_cm3.h 復(fù) 制到CORE 目錄里面。
2.10 將里面 startup_stm32f10x_hd.s 文件復(fù)制到 CORE 下面
定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\a
rm 下面,將里面 startup_stm32f10x_md.s 文件復(fù)制到 CORE 下面。
2.11 將三個(gè)文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,復(fù)制到我們的USER目錄之下。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下面將里面的三個(gè)文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,復(fù)制到我們的 USER目錄之下。
2.12 將4個(gè)文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 復(fù)制到 USER 目錄下面。
然后將STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的 4 個(gè)文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 復(fù)制到 USER 目錄下面。
2.13 將上述文件添加到我們的工程中去。右鍵點(diǎn)擊 Target1,選擇 Manage Project Items。
2.14 Project Targets一欄,我們將Target名字修改為Template,然后在Groups一欄刪掉一個(gè)SourceGroup1,建立三個(gè) Groups:USER,CORE,FWLIB。然后點(diǎn)擊 OK。
2.15 右鍵點(diǎn)擊點(diǎn)擊Tempate,選擇選擇 Manage Project Itmes,然后選擇需要添加文件的 Group,添加對應(yīng)的文件。
我們選擇 FWLIB, 然 后 點(diǎn) 擊 右 邊 的 Add Files, 定 位 到 我 們 剛 才 建 立 的 目 錄,STM32F10x_FWLib/src 下面,將里面所有的文件選中(Ctrl+A),然后點(diǎn)擊 Add,然后 Close。
CORE 下面需要添加的文件為 core_cm3.c,startup_stm32f10x_md.s ( 注意,默認(rèn)添加的時(shí)候文件類型為.c, 也就是添加 startup_stm32f10x_md.s 啟動文件的時(shí)候,你需要選擇文件類型為 All files 才能看得到這個(gè)文件),USER 目錄下面需要添加的文件為 main.c,stm32f10x_it.c,system_stm32f10x.c.這樣我們需要添加的文件已經(jīng)添加到我們的工程中了,最后點(diǎn)擊 OK
2.16 選擇編譯中間文件編譯后存放目錄
在編譯之前我們首先要選擇編譯中間文件編譯后存放目錄。方法是點(diǎn)擊魔術(shù)棒,然后選擇“Output”選項(xiàng)下面的“Select folder for objects…”,然后選擇目錄為我們上面新建的 OBJ 目錄。這里大家注意,如果我們不設(shè)置 Output 路徑,那么默認(rèn)的編譯中間文件存放目錄就是 MDK 自動生成的 Objects 目錄和 Listings 目錄。
2.17 設(shè)置頭文件目錄
對于任何一個(gè)工程,我們都需要把工程中引用到的所有頭文件的路徑都包含到進(jìn)來 ?;氐焦こ讨鞑藛?,點(diǎn)擊魔術(shù)棒 ,出來一個(gè)菜單,然后點(diǎn)擊 c/c++選項(xiàng).然后點(diǎn)擊Include Paths 右邊的按鈕。彈出一個(gè)添加 path 的對話框,然后我們將圖上面的 3 個(gè)目錄添加進(jìn)去。記住,keil 只會在一級目錄查找,所以如果你的目錄下面還有子目錄,記得 path一定要定位到最后一級子目錄。然后點(diǎn)擊 OK.
添加好目錄之后的情形
2.18 添加宏定義
STM32F10X_MD,USE_STDPERIPH_DRIVER
2.19 將main.c復(fù)制改為以下代碼
#include "stm32f10x.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 輸出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5推挽輸出
GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 輸出高
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
Delay(3000000);
}
}
2.20 配置讓編譯之后能夠生成 hex 文件。
同樣點(diǎn)擊魔術(shù)棒,進(jìn)入配置菜單,選擇 Output。然后勾上下三個(gè)選項(xiàng)。 其中 Create HEX file 是編譯生成 hex 文件,Browser Information 是可以查看變量和函數(shù)定義。
文章來源:http://www.zghlxwxcb.cn/news/detail-607800.html
2.21 編譯整個(gè)工程,如果沒有任何報(bào)錯(cuò),則整個(gè)工程已經(jīng)創(chuàng)建好了。文章來源地址http://www.zghlxwxcb.cn/news/detail-607800.html
03. 預(yù)留
04. 附錄
到了這里,關(guān)于【STM32】STM32F103C8T6 創(chuàng)建工程模版詳解(固件庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!