STM32固件库编成基础教程

1. 固件库认知

1.1 启动文件

汇编语言编写的,

startup_stm32f10x_md.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、调用C库函数_main最终去C的世界

1.2 时钟配置文件

system_stm32f10x.c: 把外部时钟HSE=8MHz,经过PLL倍频为72MHz

1.3 外设相关的文件

stm32f10x.h: 实现了内核之外的外设寄存器的映射

xxx: I2C、SPI、USART、FSMC等

stm32f10x_xx.c: 外设的驱动函数文件

stm32f10x_xx.h: 存放外设的初始化结构体,外设初始化结构体成员的参数列表。外设固件库函数的声明。

1.4 内核相关的文件

内核文件编写的标准:CMIS-Cortex 微控制器软件接口标准

core_cm3.h:实现了内核里面外设的寄存器映射

core_cm3.c:实现了内核里面外设的寄存器映射

ST自己封装的内核库:

NVIC(嵌套中断向量控制器)、SysTick(系统滴答定时器)

misc.h

misc.c

1.5 头文件的配置文件

stm32f10x_conf.h: 头文件的头文件

其中包含有:

stm32f10x_gpio.h

stm32f10x_usart.h

stm32f10x_i2c.h

stm32f10x_spi.h

stm32f10x_fsmc.h

......

1.6 专门存放中断服务函数的C文件

stm32f10x_it.c

stm32f10x_it.c

中断服务函数你可以放在任意位置,并不一定需要放在stm32f10x_it.c。

2. 官方固件库文档

2.1 从ST官网下载固件库源码

参考https://blog.csdn.net/xzzszka/article/details/123768623下载STM32固件库,并且可以创建一个固件库编成的项目例程。

下载成功后打开固件库目录,可以看到有如下内容:

image-20220515150236049

目录名目录介绍
_htmresc里面只有一些LOG
Libraries固件库主要内容,我们所关注的重点
Project一些工程模板,有不同编译器的模板,参考例程
Utilities官方评估板的例程,我们不关心
Package_license.html
Package_license.md
Release_Notes.html
stm32f10x_stdperiph_lib_um.chm固件库手册,可直接查看各函数的使用方法

2.2 1启动文件分析选择

  1. 启动文件选择参考https://blog.csdn.net/XYJ_Tiger/article/details/124741844?spm=1001.2014.3001.5502 的1.1章节

Libraries目录内容:

目录名介绍
CMSIS内核驱动文件,包含启动文件等内容
STM32F10x_StdPeriph_Driver各外设的驱动函数文件

3. 创建固件库工程模板

模板目录如下:

image-20220515152520296

工程创建方法参考:https://blog.csdn.net/XYJ_Tiger/article/details/124741844?spm=1001.2014.3001.5502

拷贝lib固件库库的源码到工程目录:

image-20220515153131966

保留内容如下图:

image-20220515153205463

image-20220515153239869

然后将文件添加到工程中,具体添加的方法在这里不在说明。若有不懂的可参考https://blog.csdn.net/XYJ_Tiger/article/details/124741844?spm=1001.2014.3001.5502。

其中USER目录下的stm32f10x_conf.h 、stm32f10x_it.h 、 stm32f10x_it.c这几个文件可以自己创建,也可以从固件库提供的例程代码中拷贝。

image-20220515153824202

添加所需要包含的头文件,添加方法如下:

image-20220515154054444

上图中所定义的两个宏分别是,在上图所示位置定义避免后面每个文件使用是重复定义。

STM32F10X_MD:表示使用的STM32的芯片的类型容量大小,在stm32f10x.h文件中,使用不同容量大小的stm32芯片,这里的宏定义不同,具体如下:

image-20220515154522664

USE_STDPERIPH_DRIVER:stm32f10x_conf.h 包含所有外设驱动的头文件,

image-20220515154735457

软件配置:

  1. 勾选下图内容, 后面采用printf调试时,printf属于MicroLIB,对程序不会有影响

image-20220515155113629

  1. 连上板卡,在设置里面勾选下图选项,否则程序下载成功之后还需要在手动复位运行,勾选之后程序下载完成之后会自动运行。

image-20220515160534356

附录

image-20220515151552406

可以通过这里定义宏,在所有文件中使用都有效、

image-20220515152630756

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XYJ_Tiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值