stm32一个工程项目,需要有如下三个大类文件:
cmsis files:Cortex Microcontroller Software Interface Standard cortex系列的微控制器接口标准文件,这是arm公司提供的最底层的文件,也是工程里最底层的层面。我们看到有stm32f0xx.h core_m0.h system_stm32f0xx.h system_stm32f0xx.c等。
peripheral‘s drivers files:外设驱动文件,这是st公司提供的,中间层面。常见的有misc,ppp,rcc等。这里注意下现在最新的库是V3.5,和以往的有所不同。因此这也是为什么我看别人的工程项目有的有nvic(nested vetored interrupt controller)而有的没有。这是因为nvic外设驱动被包含进了misc中。
user files:用户文件,在这里写用户的应用application(如main函数)、中断函数(stm32f0xx_it),配置文件stm32f0xx_conf.h。
工程文件介绍:
startup_stm32f10x_hd.s:
汇编编写的启动文件,主要作用是(1)设置堆栈指针、(2)设置PC指针、(3)初始化中断向量表、(4)配置系统时钟、(5)对用C库函数_main最终去到C的世界
system_stm32f10x.c
时钟配置文件,把外部时钟HSE=8M,经过PLL倍频为72M。
stm32f10x.h:
外设相关的 ,实现了内核之外的外设的寄存器映射
这里xxx代表:GPIO、USRAT、I2C、SPI、FSMC
stm32f10x_xx.c:
外设的驱动函数库文件
stm32f10x_xx.h:
存放外设的初始化结构体,外设初始化结构体成员的参数列表,外设固件库函数的声明,配置相应外设的头文件
core_cm3.h:
实现了内核里面外设的寄存器映射;
core_cm3.c:
内核外设的驱动固件库;NVIC(嵌套向量中断控制器)、SysTick(系统滴答定时器)。其中主要文件为misc.h,misc.c。
stm32f10x_conf.h:
头文件的头文件,可以将所有外设的头文件写在此文件中,方便查看,调用。
专门存放中断服务函数的C文件:stm32f10x_it.c、stm32f10x_it.h;这里只是为了管理中断函数方便。
中断服务函数你可以随意放在其他的地方,并不是一定要放在stm32f10x_it.c
#include "stm32f10x.h" // 相当于51单片机中的 #include
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』