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库文件使用方式基本同样,但仍有些区别,如库文件目录结构和宏的名称
须要从逻辑上分组,并将上述必须的文件添加进来,而后设置调试选型等