STM32学习笔记之开发环境

发布者:SparklingRiver最新更新时间:2017-11-06 来源: eefocus关键字: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 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学习笔记之开发环境

上一篇:STM32学习笔记之时钟分析
下一篇:STM32各种时钟的区别

推荐阅读最新更新时间:2024-03-16 15:43

STM32别名区的理解
1. 什么是位段、位带别名区? 2. 它有什么好处? 答1: 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作, MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 ; 就是这样把P1口的第三个脚(BIT2)置0置。 而现在STM32的位段、位带别名区就为了实现这样的功能。 对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。 它是这样的。在寻址空间(32位地址是 4GB )另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT) 就对应SRAM或I/O的一位。 这样呢,1MB SRAM就 可以有32MB的对应别名区空间,就是1位膨
[单片机]
<font color='red'>STM32</font>别名区的理解
新建基于MDK的STM32工程模板
一。开发环境和固定库版本 二。准备工作 三。建立工程模板 1. 建立一个Template的文件夹 2.在Template文件夹下建立下面3个文件夹 CORE 用来存放核心文件和启动文件, OBJ 是用来存放编译过程文件以及 hex 文件, STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。 3. 在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面,将目录下
[单片机]
新建基于MDK的<font color='red'>STM32</font>工程模板
一种基于STM32和LabVIEW的无线温湿度检测系统的设计
引言 日常生活中,温度和湿度是两个很重要的物理参数,它不但与人们的身体健康密切联系,而且与科学研究、园林技术、仓库管理、机房管理等方面都息息相关。随着电子科技的发展,人们对环境温湿度监控的要求也越来越高。传统的温湿度检测技术都是采用有线传输装置,不但布线麻烦,而且消耗大量的人力物力,在实际应用中有很大的局限性。 本文设计了一种无线温湿度检测系统方案,其主控制器采用STM32,无线收发模块芯片选用nRF24L01P,传感器选用功耗低、响应快、稳定性强的数字温湿度传感器AM2303。 1、系统设计框图 图1系统发送端结构框图 该系统是一个“多对一”系统[2],即由若干个无线发送模块和一个无线接收模块组成。系统发送端组成框图
[单片机]
一种基于<font color='red'>STM32</font>和LabVIEW的无线温湿度检测系统的设计
stm32学习笔记之USB中断配置初始化函数
● 中断映射单元:将可能产生中断的USB事件映射到三个不同的NVIC请求线上: ─ USB低优先级中断(通道20):可由所有USB事件触发(正确传输,USB复位等)。固件在处理中断前应当首先确定中断源。 ─ USB高优先级中断(通道19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最大的传输速率。 ─ USB唤醒中断(通道42):由USB挂起模式的唤醒事件触发。 USB_HP_CAN1_TX_IRQn= 19, /*! USB Device High Priority or CAN1 TX Interrupts */ USB_LP_CAN1_RX0_IRQn = 20, /*! USB Dev
[单片机]
<font color='red'>stm32</font>学习笔记之USB中断配置初始化函数
重返STM32之---RTC使用
STM3f10x的RTC时能涉及到的寄存器有RCC,BKP和RTC这三个大类寄存器;其中RCC主要控制了实时时钟和备份区的电源使能和时钟使能;RTC模块和时钟配置系统的寄存器是在后备区域的(即BKP),通过BKP后备区域来存储RTC配置的数据可以让在系统复位或待机模式下唤醒后RTC里面配置的数据维持不变;为此备份区还得涉及一个寄存器PWR,电源管理寄存器,备份区的写保护位在PWR- CR的第八位。 由于整个RTC都是位于后备区,而且RTC的APB1总线和内核的APB1总线是独立的,所以在系统复位和唤醒时,RTC和BKP的那些时钟不用从新配置;他们只受Backup domain software reset这个位和系统完全掉电的影响。
[单片机]
重返<font color='red'>STM32</font>之---RTC使用
STM32单片机----外部中断EXTI学习
可屏蔽中断和不可屏蔽中断: 按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(NonMaskable Interrupt)。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位IF(Iinterrupt Flag)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。 GPIO口与EXTI外中断的映像图:
[单片机]
<font color='red'>STM32</font>单片机----外部中断EXTI学习
STM32蜂鸣器-寄存器
这次实验犯了个笑话,竟然在宏定义后面加分号...就像这样(#define XXX;)大家千万不要学我,结果报错expected expression,还苦恼半天,想为啥操作不了寄存器了?我真愚蠢! 刚开始我也不会写这些东西,其实摸清套路就好,RCC时钟使能、GPIO初始化、相关寄存器初始化、延时函数/串口等初始化、循环执行相关操作,该用库函数的用库函数,该用寄存器的用寄存器,废话少说,上代码,这里依然只给出beep部分和main部分; 1.beep.h #ifndef __BEEP_H #define __BEEP_H #include sys.h #define BEEP PFout(8) void beep
[单片机]
ST推出STM32微控制器先进电机控制算法
2008年9月9日 ,意法半导体扩大32位STM32微控制器(MCU)支持的电机矢量控制函数库,新增了支持单旁路无传感器控制、内部永磁(IPM)电机控制和永磁同步(PMSM)电机弱磁控制的算法。目前市场上大约已有40种电机控制应用采用了意法半导体的基于Cortex-M3的STM32微控制器。 新增的控制函数功能被补充到STM32电机控制函数库2.0版内,在新一代电器、工业驱动器、电泵、加热通风空调(HVAC)系统、自动售货机、收款机和电动汽机车等应用领域,新算法将有助于加快产品上市时间,降低材料成本,优化电机选型,冲破运行限制。 同时,意法半导体通过增加对Kei
[工业控制]
ST推出<font color='red'>STM32</font>微控制器先进电机控制算法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved