Stm32f10x 新建工程詳解

2021-07-03 23:51:56 字數 2597 閱讀 8412

環境:

mdk4.23 編譯器

第一步:

開啟keilv4,新建工程

第二步:

選擇晶元,我使用的是stm32f103vet6

第三步:

選擇是否載入startup檔案,選否。因為我們會手動自己新增。

第四步:在stm32lib資料夾下新建m3資料夾。

複製stm32f10x_stdperiph_lib_v3.5.0\libraries\cmsis\cm3\coresupport下

core_cm3.c  core_cm3.h兩個檔案到m3資料夾中。

複製:stm32f10x_stdperiph_lib_v3.5.0\libraries\cmsis\cm3\devicesupport\st\stm32f10x下

stm32f10x.h  system_stm32f10x.c  system_stm32f10x.h 兩個檔案到m3資料夾中。

複製:stm32f10x_stdperiph_lib_v3.5.0\project\stm32f10x_stdperiph_template下

stm32f10x_conf.h 乙個檔案到m3資料夾中。

複製:stm32f10x_stdperiph_lib_v3.5.0\libraries\cmsis\cm3\devicesupport\st\stm32f10x\startup\arm下 startup_stm32f10x_hd.s乙個檔案到m3資料夾中。

我用的晶元256k的flash。所以選擇startup_stm32f10x_hd.s。

說明:cl:互聯型產品,stm32f105/107系列

vl:超值型產品,stm32f100系列

xl:超高密度產品,stm32f101/103系列 超大容量 512-1024k

ld:低密度產品,flash小於64k

md:中等密度產品,flash=64 or 128

hd:高密度產品,flash大於128-512

複製:stm32f10x_stdperiph_lib_v3.5.0\libraries\stm32f10x_stdperiph_driver下的inc和src兩個資料夾到stm32lib檔案內

到這裡需要複製的檔案以經複製完了。下面來配置工程:

參圖

先配置這些, 還有一項要等到 新增完成檔案再配置。

現在向mdk中載入檔案如圖:

如下圖載入

點ok如下圖

main.c檔案內容:

1

int main(void)2

繼續配置先前沒有配置完了部分。

這裡做一定的說明:

為什麼在define項中新增stm32f10x_hd,use_stdperiph_driver這兩項?

define項是mdk的預巨集定義欄。

注意:stm32f10x_hd,use_stdperiph_driver這兩項中間是逗號隔開。

在stm32f10x.h中有這以下**:

#ifdef use_stdperiph_driver

#include

"stm32f10x_conf.h

"#endif

由此可只 新增use_stdperiph_driver巨集定義是為了載入stm32f10x_conf.h檔案。

**可知,新增stm32f10x_hd巨集是選定晶元內部資源定義。

到這裡,新建工程就完成了,編譯除錯,無誤後就開始**之旅吧。

**:

STM32F10x系列 中斷

概念問題 中斷與事件有什麼聯絡與區別?stm32之中斷與事件 中斷與事件的區別 簡單概括下。中斷 cpu單執行緒情況下只能處理單一任務,在有零時任務需要處理時,可以暫時放下當前任務,優先處理零時任務,再回過來處理之前的任務。多個中斷可以進行巢狀,比如產生了多個零時任務,那麼就可以按照優先順序處理這多...

STM32F10X入門 流水燈

2019 3 16 2019 3 19 core cm32.c stdin.h中定義了字元型 stm32f10x.h stm32f10x conf.h中定義了引用的外設標頭檔案 庫檔案之間的依賴呼叫關係 pngstm32f10x.h檢視位址對映 比如define gpioa base apb2per...

STM32F10X 位帶操作

在stm32微控制器的學習中,有乙個最大的特點就是你所編寫的stm32的程式操作,基本上都是匯流排的操作,比如gpiob odr 0x0001 或者直接等於1 這樣的操作必須要考慮整個暫存器的資料,但其實如果學過51微控制器的人都知道,我們除了對於匯流排操作外,我們還是經常會對單獨的位進行操作,比如...