STM32F407 之学习方法 、MDK 5软件介绍

自己以前学习过STM32F1系列的,所以两者之间差不多,主要是增加了一些外设的功能!

1、初学者最好买一块实用的开发板,现在网上炒得比较火的有原子的探索者F4开发板,以前买过他的战舰STM32,感觉不错,它的F4系列编排跟战舰STM32是差

不多,所以,学过STM32 的,拿过来能很快上手。


2、必备参考资料:《STM32F4xx中文参考手册》、《STM32F3F4系列 Cortex M4内核编程手册》 和《Cortex M3M4 权威指南》

《 STM32F4xx 中文参考手册》对F4 的各种寄存器定义以及功能等都有详细的介绍,如果是配置寄存器,必不可少。而《 STM32F3 与 F4 系列 Cortex M4内核编程手册》则是对《 STM32F4xx 中文参考手册》的补充, 很多关于 Cortex M4 内核的介绍(寄存器等),都可以在这个文档找

到答案,该文档同样是 ST 的官方资料,专门针对 ST 的 Cortex M4 产品。最后,《 Cortex M3 与 M4 权威指南》则针对 Cortex M4 内核进行了

详细介绍, 并配有简单实例,对于想深入了解 Cortex M4 内核的朋友,此文档是非常好的参考资料。


3、掌握时钟树图


4、多关注ST 官方发布的所有资料:芯片文档、用户手册、应用笔记、固件库以及勘误手册!


5、STM32 标准固件库介绍

以前学习 51 单片机时,我们直接是对单片机的寄存器进行配置的开发方式,对F4 其寄存器是上百个,并且位数为 32 位,显然寄存器的开发方式对于初学者来

说是一个比较困难的事情,为此 ST 为了方便用户开发程序,提供了一套丰富的 STM32F4 固件库,固件库就是函数的集合,固件库函数的作用是线向下负责与寄

存器直接打交道,向上提供用户函数调用接口(API)。


6、固件库文件夹介绍

Libraries 文件夹下面有 CMSIS 和 STM32F4xx_StdPeriph_Driver 两个目录,这两个目录包含固件库核心的所有子文件夹和文件。

CMSIS 文件夹存放的是符合 CMSIS 规范的一些文件。包括 STM32F4 核内外设访问层代码,DSP 软件库, RTOS API, 以及 STM32F4 片上外设访问层

代码等。

STM32F4xx_StdPeriph_Driver 放的是 STM32F4 标准外设固件库源码文件和对应的头文件。inc 目录存放的是 stm32f4xx_ppp.h 头文件,无需改动。

 src 目录下面放的stm32f4xx_ppp.c 格式的固件库源码文件。每一个.c 文件和一个相应的.h 文件对应。这里的文件也是固件库外设的关键文件,每

个外设对应一组文件。


7、关键文件介绍

标准外设固件库文件关系图

STM32F407 之学习方法 、MDK 5软件介绍_第1张图片

core_cm4.h 文件位于\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Include 目录下面的,这个就是 CMSIS 核心文件,提供进入 M4 内核接

口,这是 ARM 公司提供,对所有CM4 内核的芯片都一样。你永远都不需要修改这个文件。


stm32f4xx.h 和 system_stm32f4xx.h 文件存放在文件夹\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 下

面。

system_stm32f4xx.h 是片上外设接入层系统头文件。主要是申明设置系统及总线时钟相关的函数。与其对应的源文件 system_stm32f4xx.c 在目录

\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates 可以找到。 这个里面有一个非常重要的 SystemInit()函数申

明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟。

stm32f4xx.h 是 STM32F4 片上外设访问层头文件。 这个文件就相当重要了,只要你做STM32F4 开发,你几乎时刻都要查看这个文件相关的定义。这个

文件打开可以看到,里面非常多的结构体以及宏定义。 这个文件里面主要是系统寄存器定义申明以及包装内存操作, 同时该文件还包含了一些时钟相关的

定义, FPU 和 MPU 单元开启定义,中断相关定义等等。


stm32f4xx_it.c,stm32f4xx_it.h 以 及 stm32f4xx_conf.h 等 文 件 ,我们可以从

\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates 文件夹中找到。

stm32f4xx_it.c 和 stm32f4xx_it.h 里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程里面的任意一个文件里面,个人觉得这个文件

没太大意义。

stm32f4xx_conf.h 是外设驱动配置文件。 文件打开可以看到一堆的#include,这里你建立工程的时候,可以注释掉一些你不用的外设头文件。


对于上图中的 misc.c,misc.h,stm32f4xx_ppp.c,stm32f4xx_ppp.h 以及 stm32f4xx_rcc.c 和stm32f4xx_rcc.h 文件,这些文件存放在目录

Libraries\STM32F4xx_StdPeriph_Driver。这些文件是 STM32F4 标准的外设库文件。其中 misc.c 和 misc.h 是定义中断优先级分组以及 Systick 定时器

相关的函数。 

stm32f3xx_rcc.c 和 stm32f4xx_rcc.h 是与 RCC相关的一些操作函数,作用主要是一些时钟的配置和使能。在任何一个 STM32 工程 RCC 相关的源文件和头

文件是必须添加的。


对于文件 stm32f4xx_ppp.c 和 stm32f4xx_ppp.h,这就是 stm32F4 标准外设固件库对应的源文件和头文件。包括一些常用外设 GPIO,ADC,USART 等。

文件 Application.c 实际就是说是应用层代码。这个文件名称可以任意取了。 我们工程中,直接取名为 main.c。


实际上一个完整的 STM32F4 的工程光有上面这些文件还是不够的。还缺少非常关键的启动文件。 STM32F4 的启动文件存放在目录

\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 下面。对于不同型号的 STM32F4 系列对应的启

动文件也不一样。我们的开发板是 STM32F407 系列所以我们选择的启动文件为startup_stm32f40_41xxx.s。 


8、MDK 5 软件

MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为: MDK5.10,该版本使用

 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。

MDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 MDK5 上进行开发(但是头文件方面得全部自己添加), MDK5 同时加强了针对 Cortex-M 微控制器开

发的支持,并且对传统的开发模式和界面进行升级, MDK5 由两个部分组成: MDK Core 和 Software Packs。其中,Software Packs 可以独立于工具链进行

新芯片支持和中间库的升级。 


STM32F407 之学习方法 、MDK 5软件介绍_第2张图片

MDK 5 组成


从上图可以看出, MDK Core 又分成四个部分: uVision IDE with Editor( 编辑器), ARM C/C++ Compiler( 编译器), Pack Installer( 包安装

器), uVision Debugger with Trace( 调试跟踪器)。 uVision IDE 从 MDK4.7 版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往

的 IDE 改进很大。

Software Packs( 包安装器)又分为: Device(芯片支持), CMSIS( ARM Cortex 微控制器软件接口标准) 和 Mdidleware(中间库)三个小部分,通过

包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。

同以往的 MDK 不同,以往的 MDK 把所有组件到包含到了一个安装包里面,显得十分“笨重”, MDK5 则不一样, MDK Core 是一个独立的安装包,它并不包含

器件支持、设备驱动、CMSIS 等组件,大小才 300M 左右,相对于 MDK4.70A 的 500 多 M,瘦身明显, MDK5 安装包可以在:

 http://www.keil.com/demo/eval/arm.htm 下载到。而器件支持、设备驱动、 CMSIS 等组件,则可以点击 MDK5 的 Build Toolbar 的最后一个图标调出

 Pack Installer,来进行各种组件的安装。也可以在 http://www.keil.com/dd2/pack 这个地址下载,然后进行安装。

我们学习 STM32F407,还要安装两个包: ARM.CMSIS.4.1.1.pack(用于支持 ST 标准库,也就是所谓的库函数)和 Keil.STM32F4xx_DFP.1.0.8.pack

( STM32F4 的器件库)。

你可能感兴趣的:(处理器【STM32】)