3242|0

78

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32固件库介绍 [复制链接]

在《初识STM32》中已经将了如何从官网下载固件库STM32F10x_StdPeriph_Lib_V3.5.0这里下载就不做介绍了。
    下面我们开始讲解STM32固件库的结构。

    我主要需要用到的是Libraries文件夹下面这里两个文件夹中的目录:CMSIS STM32F10x_StdPeriph_Driver ,这两个目录包含 固 件 库 核 心 的 所 有 子 文件夹和文件其中CMSIS目录下面是启动文 STM32F10x_StdPeriph_Driver 放的是 STM32 固件库源码文件。源文件目录下面的 inc 目录存放的是 stm32f10x_xxx.h 头文件,无需改动。 src 目 录下面放的是 stm32f10x_xxx.c 格式的固件库源码文件。每一个.c 文件和一个相应的.h 文件对应。这里的文件也是固件库的核心文件,每个外设对应一组文件。Libraries 文件夹里面的文件在我们建立工程的时候都会使用到。Project 文件夹下面有两个文件夹。面存放 ST 官方提供的固件实例源码,在以后的开发过程中,可以参考修改这个官方提供的实例来快速驱动自己的外设,。 STM32F10x_StdPeriph_Template 文件夹下面存放的是工程模板。Utilities 文件下就是官方评估板的一些对应源码,这个可以忽略不看。
下面我们要着重介绍 Libraries 目录下面几个重要的文件。core_cm3.c 和 core_cm3.h 文件位于\Libraries\CMSIS\CM3\CoreSupport 目录下面的,这个就
是 CMSIS 核心文件,提供进入 M3 内核接口,这是 ARM 公司提供,对所有 CM3 内核的芯片都一样。你永远都不需要修改这个文件。和 CoreSupport 同一级还有一个 DeviceSupport 文件夹。 DeviceSupport\ST\STM32F10xt 文件

其中 system_stm32f10x.c 和对应的头文件 system_stm32f10x.h 文件的功能是设置系统以及总线时钟,这个里面有一个非常重要的 SystemInit()函数,这个函数在我们系统启动的时候都会调用,用来设置系统的整个时钟系统。stm32f10x.h 文件存放寄存器的定义和相关结构体以及宏定义。startup 文件夹存放启动文件,可根据芯片容量大小选择合适的启动文件

startup_stm32f10x_ld.s: 适用于小容量 产品
startup_stm32f10x_md.s : 适用于中等容量产品
startup_stm32f10x_hd.s: 适用于大容量产品

启动文件主要是进行堆栈之类的初始化, 中断向量表以及中断函数定义。启动文件要引导进入 main 函数。 Reset_Handler中断函数是唯一实现了的中断处理函数,其他的中断函数基本都是死循环。 Reset_handler 在我们系统启动的时候会调用,下面让我们看看 Reset_handler 这段代码:
这里是汇编代码,不懂汇编也没有关系,我们只要知道是怎么回事就行。首页在进入main函数之前进行了,调用了SystemInit系统初始化函数。本函数在systen_stm32f10x.c中:

此帖出自ARM技术论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播 | AI之眼——安森美图像传感器 报名中
直播时间:2025年4月25日(周五)上午10:00-11:30
直播主题:AI之眼——安森美图像传感器
报名观看直播、直播间提问、填写问卷均有机会获得精美礼品!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 5

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表