本文主要由两部分组成,一是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 STM32F1 Series Device Support, Drivers and Examples
3 如果是破解版,进行破解
二、STM32固件库
1 STM32库下载,选择STSW-STM32054,STM32F10x standard peripheral library
2 解压后,得到如下的文件目录
Libraries标准外设库包括CMSIS 和STM32F10x_StdPeriph_Driver。CMSIS 是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。
Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。
Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。
3 STM32库使用架构
STM32F10xxx标准外设库体系结构如图下图所示。图中很好的展示了各层以及具体文件之间的联系
图中各文件的具体功能如下表所述
文件名 | 功能描述 | 具体功能说明 |
core_cm3.h core_cm3.c | Cortex-M3内核及其设备文件 Libraries\CMSIS\CM3\CoreSupport | 访问Cortex-M3内核及其设备:NVIC,SysTick等 访问Cortex-M3的CPU寄存器和内核外设的函数
|
stm32f10x.h | 微控制器专用头文件 Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x | 这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等
|
system_stm32f10x.h system_stm32f10x.c | 微控制器专用系统文件 Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x | 函数SystemInit,用来初始化微控制器 函数Sysem_ExtMemCtl,用来配置外部存储器控制器 |
startup_stm32f10x_Xd.s | 编译器启动代码 Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x\startup\arm | 微控制器专用的中断处理程序列表(与头文件一致)
|
stm32f10x_conf.h | 固件库配置文件 Project\STM32F10x_StdPeriph_Template | 通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。
|
stm32f10x_it.h stm32f10x_it.c | 外设中断函数文件 Project\STM32F10x_StdPeriph_Template | 用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。
|
stm32f10x_ppp.h stm32f10x_ppp.c | 外设驱动函数文件 Libraries\STM32F10x_StdPeriph_Driver | 包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。
|
Application.c | 用户文件 | 用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。 |
4 STM32外设库配置
(1)新建目录,新建应用工程目录,并从外设库中添加如下文件。
目录 | 概述 | 复制目录及文件 |
User | main.c | |
Sys | Project\STM32F10x_StdPeriph_Template \stm32f10x_it.h | |
Project\STM32F10x_StdPeriph_Template\ stm32f10x_it.c | ||
Project\STM32F10x_StdPeriph_Template\ stm32f10x_conf.h | ||
Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x\stm32f10x.h | ||
Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x \system_stm32f10x.h | ||
Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x \system_stm32f10x.c | ||
Lib | STM32库函数 | Libraries\STM32F10x_StdPeriph_Driver/src |
Libraries\STM32F10x_StdPeriph_Driver/inc | ||
Core | 系统文件 | Libraries\CMSIS\CM3\DeviceSupport \ST\STM32F10x\startup\arm\startup_stm32f10x_ld.s |
Libraries\CMSIS\CM3\CoreSupport \core_cm3.h | ||
Libraries\CMSIS\CM3\CoreSupport \core_cm3.c | ||
Bin | 编译生成文件 |
(2)新建工程,新建应用工程
(3)文件配置
打开项目管理界面
修改项目选项(可选)
对应(1)中的目录,添加文件组
在文件组中,添加(1)中文件夹对应的源文件
5 项目配置
(1)目标配置
(2)输出配置
(3)宏定义及头文件引用
上一篇:STM32学习笔记之时钟分析
下一篇:STM32各种时钟的区别
推荐阅读最新更新时间:2024-03-16 15:43