打印

解析STM32库函数

[复制链接]
3149|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
figo20042005|  楼主 | 2012-7-17 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
意法半导体在推出STM32微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在STM32开发过程中所涉及到的所有底层操作。通过在程序开发中引入这样的固件开发包,可以使开发人员从复杂冗余的底层寄存器操作中解放出来,将精力专注应用程序的开发上,这便是ST推出这样一个开发包的初衷。

       但这对于许多从51/AVR这类单片机的开发转到STM32平台的开发人员来说,势必有一个不适应的过程。因为程序开发不再是从寄存器层次起始,而要首先去熟悉STM32所提供的固件库。那是否一定要使用固件库呢?当然不是。但STM32微控制器的寄存器规模可不是常见的8位单片机可以比拟,若自己细细琢磨各个寄存器的意义,必然会消耗相当的时间,并且对于程序后续的维护,升级来说也会增加资源的消耗。对于当前“时间就是金钱”的行业竞争环境,无疑使用库函数进行STM32的产品开发是更好的选择。本文将通过一个简单的例子对STM32的库函数做一个简单的剖析。


以最常用的GPIO设备的初始化函数为例,如下程序段一:


GPIO_InitTypeDef GPIO_InitStructure;                                                         1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                                                2
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;                               3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                               4
GPIO_Init(GPIOA , &GPIO_InitStructure);                                                      5




这是一个在STM32的程序开发中经常使用到的GPIO初始化程序段,其功能是将GPIOA.4口初始化为推挽输出状态,并最大翻转速率为50MHz。下面逐一分解:


l  首先是1,该语句显然定义了一个GPIO_InitTypeDef类型的变量,名为GPIO_InitStructure,则找出GPIO_InitTypeDef的原型位于“stm32f10x_gpio.h”文件,原型如下:

typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;

解析STM32的库函数.pdf

310.69 KB

评分
参与人数 1威望 +1 收起 理由
凯蒂国际 + 1
沙发
jima| | 2012-8-5 17:56 | 只看该作者
不错,下来学习一下!

使用特权

评论回复
板凳
将臣归邪| | 2012-8-5 22:46 | 只看该作者
顶一个

使用特权

评论回复
地板
捡漏王子| | 2012-8-6 10:20 | 只看该作者
这个对上手还是很有帮助的

使用特权

评论回复
5
mark2000| | 2012-8-6 10:44 | 只看该作者
刚开始的时候能看到就好了,这个对于从硬到软来的还是很有帮助的

使用特权

评论回复
6
hzpj01| | 2012-8-6 12:46 | 只看该作者

使用特权

评论回复
7
lnak| | 2012-8-6 16:15 | 只看该作者
很清晰!

使用特权

评论回复
8
墨如风0205| | 2013-3-20 09:06 | 只看该作者
准备要学,也不知道好不好学。。。

使用特权

评论回复
9
ranyao70| | 2013-3-27 18:08 | 只看该作者
这个对于从硬到软来的还是很有帮助的

使用特权

评论回复
10
sinadz| | 2013-3-27 18:43 | 只看该作者
分析的很好

使用特权

评论回复
11
hsbjb| | 2013-3-27 19:07 | 只看该作者
对新手理解库函数应该很有帮助

使用特权

评论回复
12
sgzz21| | 2013-3-27 21:30 | 只看该作者
不错,下来学习一下

使用特权

评论回复
13
jah8rakal| | 2013-3-27 21:52 | 只看该作者
这个跟野火开发板的教程很像

使用特权

评论回复
14
tianli1980| | 2013-3-28 16:33 | 只看该作者
资料不错,对于新手来学习还是很有帮助的,鼓励分享

使用特权

评论回复
15
icerelf| | 2013-7-5 15:40 | 只看该作者
感谢楼主分享!

使用特权

评论回复
16
jiahao| | 2013-7-5 18:27 | 只看该作者
多谢哦

使用特权

评论回复
17
trumpxp| | 2013-7-5 18:36 | 只看该作者
资料很不错   需要好好学一学   顶一个   很不错   有时间   需要仔细看看   不错

使用特权

评论回复
18
hxb20122012| | 2013-7-5 20:27 | 只看该作者
适合初学者!

使用特权

评论回复
19
123liuyulin| | 2013-7-6 15:00 | 只看该作者
:),对俺有帮助。

使用特权

评论回复
20
trumpxp| | 2013-7-6 16:23 | 只看该作者
好帖子   需要好好学一学   谢谢了   楼主   顶一个   有时间  好好看看   顶一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:need to study

16

主题

1576

帖子

3

粉丝