当前位置:首页 > 单片机 > 单片机
[导读]本文主要由两部分组成,一是STM32开发环境MDK-ARM的介绍及安装,一是STM32官方库文件的下载与配置。一、开发环境安装(一)开发环境简介KEIL公司目前有四款独立的嵌入式软件开发工具,即MDK、KEIL C51、KEIL C166、K

本文主要由两部分组成,一是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)宏定义及头文件引用


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭