http://www.keil.com/arm/mdk.asphtml
MDK-ARM(Microcontroller Development Kit) 是功能強大和經常使用的cortex-mx 開發環境。c++
其包含 µVision4 IDE,最新版本須要根據mcu的系列下載不一樣的pack包(http://www.keil.com/dd2/Pack/)以支持特定設備,目前stm32庫開發方式有兩種,一種是最新的cube方式,另外一種是傳統的標準庫方式,若是使用前者,不須要下載其它東西便可,若是須要stm的標準庫開發方式,還需單獨下載st官方的標準庫。數據結構
由於標準庫方式以前比較主流,參考資源較多,這裏先學習標準庫方式。app
連接編輯器
Home 》Embedded Software 》MCUs Embedded Software 》STM32 Embedded Software函數
或學習
首頁 》 軟件 》 微控制器軟件 》 STM32微控制器軟件spa
在灰色的導航中選擇 STM32 standard peripherals library,而後根據須要的型號進入對應頁面,在頁面最底部提供軟件下載地址(須要輸入郵箱)調試
解壓下載的標準庫壓縮包,目錄結構以下:htm
├── _htmresc
├── Libraries
│ ├── CMSIS 符合cmsis規範的cortex核心驅動
│ └── STM32F4xx_StdPeriph_Driver stm32外設驅動
├── Project
│ ├── STM32F4xx_StdPeriph_Examples 各外設使用例子有效代碼(基於官方評估板)
│ └── STM32F4xx_StdPeriph_Templates 例子的公共部分模版
└── Utilities
├── Media
├── ST
├── STM32_EVAL 例子中可能用到的其它評估板代碼
└── Third_Party
上面是對基本目錄的解釋,另外根目錄有個chm幫助文件,關於固件庫的一切信息均可以在這個幫助裏找到。
File name |
Description |
stm32f4xx_conf.h |
在stm32f4xx.h被引用(若是定義了宏USE_STDPERIPH_DRIVER) |
stm32f4xx_ppp.h |
stm32外設驅動頭文件,位於Libraries\STM32F4xx_StdPeriph_Driver |
stm32f4xx_ppp.c |
stm32外設驅動,位於Libraries\STM32F4xx_StdPeriph_Driver |
stm32f4xx_it.h |
中斷控制原型,位於庫目錄實例和模版目錄,實例中沒有被引用過 |
stm32f4xx_it.c |
Template source file containing the interrupt service routine (ISR) for Cortex-M4F exceptions. User can add additional ISR(s) for the used peripheral(s) (for the available peripheral interrupt handler's name, please refer to the startup file startup_stm32f4xx.s). |
STM32F4xx CMSIS files
File name |
Description |
stm32f4xx.h |
CMSIS 外設訪問層文件,該文件是惟一須要在main.c文件中包含的庫文件 該文件定義了全部外設的數據結構、地址映射、訪問寄存器的宏,寄存器聲明和位定義,在該文件末尾可經過註釋或不註釋#define USE_STDPERIPH_DRIVER來決定是使用庫仍是直接訪問寄存器方式開發 位於Libraries\CMSIS\Device\ST\STM32F4xx\Include This file contains:
- the device used in the target application |
system_stm32f4xx.h |
CMSIS 外設訪問層系統函數,如控制時鐘、執行SystemInit 被stm32f4xx.h引用 位於Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates |
system_stm32f4xx.c |
CMSIS Cortex-M4F STM32F4xx devices peripheral access layer system source file. |
startup_stm32f4xx.s |
STM32F4xx 設備啓動彙編文件,每一個編譯器須要一個 位於Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm |
總結下,若是使用庫開發方式,須要的文件以下,
startup_stm32f4xx.s 》stm32f4xx.h 》system_stm32f4xx、stm32f4xx_conf.h 》用戶文件 》庫驅動
須要在編輯器的c/c++宏定義中定義USE_STDPERIPH_DRIVER和使用的cpu型號宏(參考stm32f4xx.h中對芯片型號的定義),多個宏間用逗號分割
雖然m3和m4庫文件使用方式基本同樣,但仍有些區別,如庫文件目錄結構和宏的名稱
須要從邏輯上分組,並將上述必須的文件添加進來,而後設置調試選型等