STM32学习笔记之开发环境
扫描二维码
随时随地手机看文章
本文主要由两部分组成,一是STM32开发环境MDK-ARM的介绍及安装,一是STM32官方库文件的下载与配置。
一、开发环境安装
(一)开发环境简介
KEIL公司目前有四款独立的嵌入式软件开发工具,即MDK、KEIL C51、KEIL C166、KEIL C251,它们都是KEIL公司品牌下的产品,都基于uVision集成开发环境,其中MDK是RealView系列中的一员。而MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西,ARM公司现在统一使用MDK-ARM的称呼。
KEIL MDK开发工具源自德国 Keil 公司,被全球超过 10 万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。KEIL MDK 集成了业内最领先的技术,包括μVision5集成开发环境与RealView 编译器。支持ARM7、ARM9和最新的Cortex-M3/M1/M0 内核处理器,自动配置启动代码,集成Flash 烧写模块,强大的 Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。KEIL MDK出众的价格优势和功能优势,已经成为ARM软件开发工具的标准,目前,KEIL MDK在国内ARM开发工具市场已经达到90%的占有率。在此使用最新的5.4版本。
从上图可以看出,MDKCore又分成四个部分:uVisionIDE with Editor(编辑器),ARMC/C++ Compiler(编译器),PackInstaller(包安装器),uVisionDebugger with Trace(调试跟踪器)。uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。SoftwarePacks(包安装器)又分为:Device(芯片支持),CMSIS(ARMCortex微控制器软件接口标准)和Mdidleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。同以往的MDK不同,以往的MDK把所有组件到包含到了一个安装包里面,显得十分“笨重”,MDK5则不一样,MDKCore是一个独立的安装包,它并不包含器件支持和设备驱动等组件,但是一般都会包括CMSIS组件,大小350M左右,相对于MDK4.70A的500多M,瘦身不少。另外值得一提的是,在MDK5安装完成后,要让MDK5支持STM32F103的开发,我们还需要安装STM32F1的器件支持包:Keil.STM32F1xx_DFP.1.0.5.pack(STM32F1的器件包)。
(二)开发环境安装
1 下载MDK5集成开发环境
(1)官网下载
(2)第三方下载
(3)网上破解版
2 安装集成开发环境
(1)点击可执行文件,弹出如下页面
(2)选择安装路径,如下所示,最好不要中文路径
(3)最后弹出如下界面,说明CMSIS和MDK中间软件包已经成功,下面的进度指示程序在自动从KEIL的官网下载各种支持包(如果支持包下载失败,则执行下一步)
(4)下载并安装STM32F1xx支持库,在此选择STMicroelectronics%20STM32F1%20Series%20Device%20Support,%20Drivers%20and%20Examples
3%20如果是破解版,进行破解
二、STM32固件库
%201STM32库下载,选择STSW-STM32054,STM32F10x%20standard%20peripheral%20library
%202%20解压后,得到如下的文件目录
Libraries标准外设库包括CMSIS%20和STM32F10x_StdPeriph_Driver。CMSIS%20是独立于供应商的Cortex-M%20处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M%20上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。
Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。
Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。
%203%20STM32库使用架构
STM32F10xxx标准外设库体系结构如图下图所示。图中很好的展示了各层以及具体文件之间的联系
图中各文件的具体功能如下表所述
文件名
功能描述
具体功能说明
core_cm3.h
core_cm3.c
Cortex-M3内核及其设备文件
LibrariesCMSISCM3CoreSupport
访问Cortex-M3内核及其设备:NVIC,SysTick等
访问Cortex-M3的CPU寄存器和内核外设的函数
stm32f10x.h
微控制器专用头文件
LibrariesCMSISCM3DeviceSupport
STSTM32F10x
这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等
system_stm32f10x.h
system_stm32f10x.c
微控制器专用系统文件
LibrariesCMSISCM3DeviceSupport
STSTM32F10x
函数SystemInit,用来初始化微控制器
函数Sysem_ExtMemCtl,用来配置外部存储器控制器
startup_stm32f10x_Xd.s
编译器启动代码
LibrariesCMSISCM3DeviceSupport
STSTM32F10xstartuparm
微控制器专用的中断处理程序列表(与头文件一致)
stm32f10x_conf.h
固件库配置文件
ProjectSTM32F10x_StdPeriph_Template
通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。
stm32f10x_it.h
stm32f10x_it.c
外设中断函数文件
ProjectSTM32F10x_StdPeriph_Template
用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。
stm32f10x_ppp.h
stm32f10x_ppp.c
外设驱动函数文件
LibrariesSTM32F10x_StdPeriph_Driver
包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。
Application.c
用户文件
用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。
4 STM32外设库配置
(1)新建目录,新建应用工程目录,并从外设库中添加如下文件。
目录
概述
复制目录及文件
User
main.c
Sys
ProjectSTM32F10x_StdPeriph_Template stm32f10x_it.h
ProjectSTM32F10x_StdPeriph_Templatestm32f10x_it.c
ProjectSTM32F10x_StdPeriph_Templatestm32f10x_conf.h
LibrariesCMSISCM3DeviceSupport
STSTM32F10xstm32f10x.h
LibrariesCMSISCM3DeviceSupport
STSTM32F10x system_stm32f10x.h
LibrariesCMSISCM3DeviceSupport
STSTM32F10x system_stm32f10x.c
Lib
STM32库函数
LibrariesSTM32F10x_StdPeriph_Driver/src
LibrariesSTM32F10x_StdPeriph_Driver/inc
Core
系统文件
LibrariesCMSISCM3DeviceSupport
STSTM32F10xstartuparmstartup_stm32f10x_ld.s
LibrariesCMSISCM3CoreSupport core_cm3.h
LibrariesCMSISCM3CoreSupport core_cm3.c
Bin
编译生成文件
(2)新建工程,新建应用工程
(3)文件配置
打开项目管理界面
修改项目选项(可选)
对应(1)中的目录,添加文件组
在文件组中,添加(1)中文件夹对应的源文件
%205%20项目配置
(1)目标配置
(2)输出配置
(3)宏定义及头文件引用