本文以stm32f4为例,讲解stm32标准库工程中各个文件的作用,学艺不精,如有错误,望大家私信或评论指出。
先看思维导图
启动文件
startup_stm32f427xx.s
该文件是stm32的启动文件,由汇编语言编写,主要是做stm32上电时的配置设置(如堆栈指针,时钟数)并跳转到main函数中,执行c代码。
stm32从该文件开始执行,单独包含该文件时(使用寄存器编程时),需在外部文件声明两个函数分别是void SystemInit(void) 和 int main();是因为startup_stm32f4xx.s文件中调用了上述两个函数用来配置芯片时钟树,main()函数执行用户代码。
时钟配置文件
system_stm32f4xx.h 和 system_stm32f4xx.c
这俩文件主要用于stm32的时钟管理,该文件会根据不同的芯片,配置不同的内核时钟。
文件提供了四个函数,其中最重要的便是SystemInit()函数,该函数用于配置芯片时钟。
外设相关文件
stm32f4xx.h
类似于51单片机的头文件#includ <reg52.h> stm32也有对应的头文件#includ“stm32f4xx.h”(注意,头文件用尖括号引出,编译器会直接到安装目录寻找头文件,若用双引号引出,编译器会先在工程目录下寻找头文件(注意在魔法棒中包含头文件),若工程中没找到头文件,再会到安装目录下寻找)。
该文件实现对所有(片外)外设寄存器的定义和地址映射,时钟的晶振频率数据也保存在该文件中。
stm32f4xx_xxx.c 和stm32f4xx_xxx.h
_xxx : gpio,i2c, usart,spi...一系列外设
.h文件:外设固件库函数的声明,外设结构体的定义,初始化结构体时所需的参数列表。
.c文件:主要是固件库函数的实现。
内核相关文件
core_cm4.h 和 core_cm4.c
这俩文件由arm提供实现对所有片内外设的寄存器定义和描述。
misc.c 和 misc.h
这俩文件由ST提供用来配置NVIC(嵌套向量中断控制器)和Systick(滴答定时器)
其他文件
stm32f4xx_it.c 和 stm32f4xx_it.h
这俩文件由ST提供,用于用户集中管理系统中断,用户可以讲中断服务函数写在任何位置,也可以集中写在stm32f4xx_it.c文件中。
stm32f4xx_conf.h
头文件的头文件,包含了所有外设的头文件文章来源:https://www.toymoban.com/news/detail-831735.html
如你需要在一个文件中包含多个外设(如 gpio ,usart,flash,dma等)那么你可以直接包含stm32f4xx_conf.h文章来源地址https://www.toymoban.com/news/detail-831735.html
到了这里,关于一篇文章带你搞懂stm32工程文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!