stm32工程中有一堆文件如下:
一直没搞明白他们的作用,现整理如下:
从start文件夹开始,第一个文件startup_stm32f10x_md.s,这是启动文件,是用汇编语言编写的,里面定义了中断向量表,中断服务函数,单片机的堆栈大小等,中断服务函数里有个复位中断,这就是整个stm32程序的入口,当stm32上电复位或者按下复位键后,程序就会进入复位函数执行,复位中断函数里就做了两件事情,第一个是调用systemInit函数(用来配置时钟树的),第二个就是调用main函数。
core_cm3.c和core_cm3.h是与内核有关的文件,core_cm3.c 里是内核的配置函数,core_cm3.h是内核寄存器的描述文件,用来描述有哪些寄存器和他对应的地址
stm32f10x.h文件是stm32芯片外设的寄存器描述文件,用来描述有哪些寄存器和相对应的地址。注意一个stm32芯片里面可以分为两个部分,一个是arm公司设计的内核部分,还有就是ST公司设计的外围电路(可以理解为内核的外设),ST公司将他们封装起来做成了stm32芯片。
system_stm32f10x.c和system_stm32f10x.h文件是用来配置时钟的,stm32的主频72mhz就是这两个文件里的函数配置的,即systemInit函数。
libaray目录下的misc文件是内核的库函数,里面主要是关于内核外设NVIC和systick的库函数,其他的就是内核外的外设库函数,比如rcc,gpio等等。
Users目录下的:两个it文件是用来存放中断函数的stm32f10x_conf.h是用来配置库函数头文件的包含关系的,使用这个文件是需要配置相关的宏,在魔术棒按钮->c/c++中的define里添加USE_STDPERIPH_DRIVER
用一张表格和一个图片总结:
startup_stm32f10x_md.s | 启动文件 |
core_cm3.c | 内核的配置函数 |
core_cm3.h | 内核寄存器的描述文件,用来描述有哪些寄存器和他对应的地址 |
stm32f10x.h | stm32芯片外设的寄存器描述文件,用来描述有哪些寄存器和相对应的地址 |
system_stm32f10x.c system_stm32f10x.h | 配置时钟的,stm32的主频72mhz就是这两个文件里的函数配置的 |
library目录下的misc文件 | 内核外设NVIC和systick的库函数 |
library目录下的其他文件 | 内核外的外设库函数,比如RCC,GPIO,TIM,ADC等等 |
stm32f10x_it.c stm32f10x_it.h | 用来存放中断函数 |
stm32f10x_conf.h | 配置库函数头文件的包含关系 |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)