找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6156|回复: 0
收起左侧

STM32教程(5)-库

[复制链接]
ID:99082 发表于 2015-12-10 01:30 | 显示全部楼层 |阅读模式
-库介绍:


各个芯片厂家在提高自家芯片性能的同时也在想方设法的降低自家芯片的开发难度。开发难度降低就会减少开发的时间和金钱成本,那样芯片就会受到开发工程师和工厂的欢迎,自然卖的就多效益就好。ST公司针对STM32系列芯片发布了开发所用的库。

STM32库包含大量的函数接口,开发者在编写程序时在库的基础上调用这些函数接口来配置STM32的寄存器,而不是开发者直接接触底层寄存器,可以玩笑的说初学者接触寄存器相当于自杀。库是在寄存器和用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口。库开发方式与直接配置寄存器方式的区分。

本文以STM32的3.5版本的库为例,库的原始文件可以从官网下载,也可从各个论坛和资料中获得。

解压后得到文件夹如下:STM32F10x_StdPeriph_Lib_V3.5.0


--库解释:


点入文件夹后出现四个文件夹:

_htmresc:包含两张和ST公司相关的图片,这个在编程时没用,所以可以删除。

Libraries:点入文件夹后发现两个文件夹如下:CMSIS和STM32F10x_Stdperiph_Driver

这里边的文件都很重要,其中CMSIS的含义是:cortex microcontroller

software interface standard即首字母缩写成CMSIS标准。之前和大家介绍过STM32的内核是由ARM公司设计的cortex_M3,而实际上使用此内核的芯片不只是STM32,为了基于统一内核的芯片能够兼容(能够兼容自然对ARM公司有利),所以ARM公司和芯片厂商建立了CMSIS标准。

在路径STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS下有两个文件夹:

这两个文件夹内:

CoreSupport包含对核相关的一些函数。

而DeviceSupport包含对外设和中断相关的一些函数。startup中包含启动文件。

3.5的启动文件比较之前分的更详细了,启动文件自然也就更多了。

尾缀英文缩写不同,代表的含义为:

cl:互联网型产品,目前包含此功能的系列芯片有STM32F105和F107系列。

vl:超值型产品,目前包含此功能的系列芯片有STM32F100系列。

xl:超高密度型产品。目前包含此功能的系列芯片有STM32F101系列和F103系列。

ld:低密度型,flash小于64K

md:中密度型,flash为64K或128K

hd:高密度型,flash大于128K


库并没有介绍完,下面51黑会接着介绍。

库是STM32系列芯片开发的基础工具,就好比舞台。8051内核系列芯片呢,表演的节目比较简单,所以找个空地人群一围观就能表演,而STM32系列芯片呢,功能比较复杂,就像表演大型的歌舞,需要一个灯光音响效果较好的舞台。STM32的库正是这样的舞台,但想在舞台上自由表演前,自然也要对舞台了解了解。


--库解析:

(接着STM32(6)--库继续:)


Libraries:点入文件夹后发现两个文件夹如下:CMSIS和STM32F10x_Stdperiph_Driver

点入STM32F10x_Stdperiph_Driver文件夹,出现inc和src两个文件夹。

src是source的缩写,是根源、本源的意思(英文缩写喜欢省略掉中间的元音子母,有时不是很好理解原来的词义。)。这里边包含了大量的.文件,他们都是针对芯片外设(相对于CMSIS针对芯片的核来说)。而这些外设是芯片厂家自己设计时加入的,就是ST公司针对STM32每个外设而编写的函数。

大家可以发现这些.C文件的命名有很明显的规律。那就是名字都是

stm32f10x_XXX.c而这XXX所替换的部分正对于着这个文件的功能。

比如说stm32f10x_exti.c文件。exti替换了XXX,exti大家应该熟悉吧,因为楼道里总能看见发着绿光的标示EXTI,就是出口的意思。在为控制器来说,这是中断的含义。也就是说这个stm32f10x_exti.c文件负责STM32芯片和中断相关的事情,换句话说,也就是当你用到了中断时,一定要把这个文件加到你的工程中。还有一个叫misc.c的文件,这里边包含了外设对内核的中断向量控制器NVIC的访问函数,在配置中断时,必须把这个文件添加到工程中。

inc是include的缩写,里边都是对应着.C文件的.H头文件。工程中用到的.C文件,就一定要把相应的.H文件也添加进去。

大家读完上段可能对例子中的添加到工程里去这几个字很不爽,因为我怎么知道哪个添加哪个不添加。其实有一个很简单的方法,把两个文件夹内的.C和.H文件全部都添加到工程里去进去。具体怎么新建工程后边会讲。


project:点入文件夹包括STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template两个文件夹。

可以看出两个文件夹的不同在于一个是这Examples一个Template。Examples翻译为例子,Template翻译为模版。例子和模版意思好像差不太多,举个例子大家体会一下,六级作文例文和六级作文模版。

STM32F10x_StdPeriph_Template文件夹里主要都是这对不同编程软件的工程模版。

程序员可以再次基础上进行修改和继续编程,此文件夹外的几个.C和.H文件都是编程必须添加的文件,而且也是程序员需要改动的文件。

STM32F10x_StdPeriph_Examples文件点入有很多文件夹:

大家会发现这个文件夹的名字和我们上边说到的代表不同外设功能的XXX相对应。这个文件夹正是ST公司针对外设的应用举例,每个外设的多种功能都有例举,在后期自学过程很有参照意义。但这些例子不是工程形式,需要大家自己进行配置,有的也需要进行些修改。


以下是本系列教程文章列表:欢迎大家踊跃讨论,有问题可在51黑论坛回帖提出.


STM32教程(1)-大学里没碰见像STM32一样吸引我的姑娘:http://www.51hei.com/bbs/dpj-41167-1.html
STM32教程(2)-各种应用和外设简单介绍:http://www.51hei.com/bbs/dpj-41168-1.html
STM32教程(3)-芯片引脚性质介绍:http://www.51hei.com/bbs/dpj-41169-1.html
STM32教程(4)-最小系统的设计:http://www.51hei.com/bbs/dpj-41170-1.html
STM32教程(5)-库:http://www.51hei.com/bbs/dpj-41171-1.html
STM32教程(6)-STM32的流水灯程序:http://www.51hei.com/bbs/dpj-41162-1.html

STM32编程基础(1)-Keil编程软件的安装:http://www.51hei.com/bbs/dpj-41163-1.html
STM32编程基础(2)-Keil库的修改:http://www.51hei.com/bbs/dpj-41164-1.html
STM32编程基础(3)-Keil建立工程模版:http://www.51hei.com/bbs/dpj-41165-1.html
STM32编程基础(4)-Keil工程设置http://www.51hei.com/bbs/dpj-41166-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表