库函数的相关介绍
库函数:是控制寄存器操作的语句被封装成函数的函数集合,需要执行相应动作的时候只需要调用函数(并填入参数)即可。
片上外设:指的是每个芯片里面除了内核以外的外设,也就是在芯片里面。
CMSIS构架:CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series and defines generic tool interfaces--来自ARM官方定义)。 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。通过在所有Cortex-M 芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。最新版本的CMSIS为5.8。(摘自“百度百科”)
用户层(USER):
“stm32f10x_it.c”、“stm32f10x_it.h”是和中断程序相关的文件,NVIC(嵌套向量中断控制器)用来管理中断。
CMSIS层:
“stm32f10x_conf.h”中的“conf:config”是一个配置文件:包含所有的外设的头文件,而该文件又包含在“stm32f10x.h”
“stm32f10x_ppp.c”、“stm32f10x_ppp.h”:PPP表示外设的名称,例如:引脚的、IIC的、时钟的;
“stm32f10x_gpio.c”和“stm32f10x_gpio.h”;“stm32f10x_i2c.c”和“stm32f10x_i2c.h”;“stm32f10x_tim.c”和“stm32f10x_tim.h”
.c文件一般是函数的具体形式,而.h头文件则是函数的声明,同时又包含寄存器的映射和结构体。
“system_stm32f10x_it.c”、“system_stm32f10x_it.h”:用来设置时钟,SystemInit()对系统时钟进行初始化。
“core_cm3.c”、“core_cm3.h”:操作内核外设寄存器的函数(片上外设)、实现了内核的寄存器映射(内核的外设);
“stm32f10x.h”:包含了片上外设的所有寄存器的映射,包含“stm32f10x_conf.h”文件
“misc.h”、“misc.h”:
NVIC:嵌套向量的中断控制器,提供中断控制器,用于总体管理异常,NVIC和处理器内核紧密相连.
SysTick:系统滴答定时器,一般用于操作系统的时钟节拍,也可以做普通的定时。
启动文件:
启动文件 | 容量产品 | FLASH大小 |
startup_stm32f10x_ld.s | 小容量产品 | 16K≤FLASH≤32K |
startup_stm32f10x_md.s | 中容量产品 | 64K≤FLASH≤128K |
startup_stm32f10x_hd.s | 大容量产品 | 256K≤FLASH≤512K |
startup_stm32f10x_xl.s | 超大容量产品 | 512K≤FLASH≤1024K |
库函数的配置
包名 | 存放内容 |
Libraries | 存放相应的文件 |
Project | 存放实例工程 |
Utilities | 评估表的实例 |
stm32f10x_stdperiph_lib_um.chm | 帮助手册,了解相关的库函数 |
新建工程可以按照自己的喜好进行;
新建STM32工程并配置——基于库函数:https://blog.51cto.com/u_15350455/5391824
新建STM32工程并配置——基于寄存器:https://blog.51cto.com/u_15350455/5389436
新建STM32工程并配置——基于固件库:https://blog.51cto.com/u_15350455/5295902
宏定义的设置是为了移植
“USE_STDPERIPH_DRIVER”是为了让“stm32f10x.h”包含“stm32f10x_conf.h”;
“STM32F10X_MD”是为了执行相关容量的代码。
附录
参考链接:https://www.bilibili.com/video/BV1N7411x7Yk?p=19&vd_source=cf352bf665894b2751d802dc81299dd8
固件库下载:https://www.stmicroelectronics.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939