2 新建 STM32 工程#
2 新建 STM32 工程#
2.1 STM32F10X 型號分類及縮寫#
STM32F103C8T6 : C8T6的 flash 是 64K,所以我們選擇 MD 的啟動文件
| 縮寫 | 釋義 | Flash容量 | 型號 |
|---|---|---|---|
| LD_VL | 小容量產品超值系列 | 16~32K | STM32F100 |
| MD_VL | 中容量產品超值系列 | 64~128K | STM32F100 |
| HD_VL | 大容量產品超值系列 | 256~512K | STM32F100 |
| LD | 小容量產品 | 16~32K | STM32F101/102/103 |
| MD | 中容量產品 | 64~128K | STM32F101/102/103 |
| HD | 大容量產品 | 256~512K | STM32F101/102/103 |
| XL | 加大容量產品 | 大於 512K | STM32F101/102/103 |
| CL | 互聯型產品 | - | STM32F105/107 |
2.2 新建工程步驟#
建立工程資料夾,Keil 中新建工程,選擇型號
工程資料夾裡建立 Start、Library、User 等資料夾,複製固件庫裡面的檔案到工程資料夾
工程裡對應建立 Start、Library、User 等同名稱的分組,然後將資料夾內的檔案添加到工程分組裡
工程選項,C/C++,Include Paths 內聲明所有包含頭檔的資料夾
工程選項,C/C++,Define 內定義 USE_STDPERIPH_DRIVER,其他的工程在這裡還聲明了一個STM32F10x_MD的字串,但Keil5在新建工程後自動幫我們聲明好了這個,因此不用再重複聲明
工程選項,Debug,下拉列表選擇對應調試器,Settings,Flash Download 裡勾選 Reset and Run
2.3 工程架構圖#

2.4 keil 5 新建工程結構圖#

Start資料夾:#
.s啟動檔案,在 Keil 軟體裡只能添加一個,本次我們選擇startup_stm32f10x_md.s啟動檔案
stm32f10x.h的外設寄存器描述檔案,作用與 51 單片機的REGX52.h一樣,用來描述 STM32 有哪些寄存器和它對應的地址
system_stm32f10x.c和system_stm32f10x.h檔案是用來配置時鐘的,STM32主頻72MHz就是 system 檔案裡的函數配置的
core_cm3.c和core_cm3.h檔案是內核的寄存器描述,它還帶了一些內核的配置函數,所以多了個.c檔案,
然後在工程選項裡添加上 Start 這個資料夾的頭檔路徑,不然軟體找不到.h檔案
Library資料夾:#
inc和src兩個資料夾裡面是 ST 公司封裝好的.h和.c庫檔案
System資料夾:#
System 資料夾內放系統的資源,例如delay.c delay.h
User資料夾:#
main.c檔案
stm32f10x_conf.h 檔案是用來配置庫函數頭檔包含關係的,裡面還有個用來參數檢查的函數定義,這是所有庫函數都需要的
stm32f10x_it.c 和stm32f10x_it.h 檔案是用來存放 interrupt 中斷函數的
2.5 使用STLink連接stm32單片機#
接線方式:

| ST-LINK V2 | STM32 |
|---|---|
| 3.3V | 3V3 |
| SWDIO | SWIO |
| SWCLK | SWCLK |
| GND | GND |
main.c