使用STM32F10x的库函数文件编程就要对它的库文件有一个相对清晰的认识,即使不能做到知根知底,但当要使用到MCU的某个功能时,要知道相应的库函数在哪个对应的**.h和.c**文件中,看懂并了解它的寄存器。下面我写一下我对其的认知,有错误的地方,还望有大佬指正。
1.STM32标准外设库文件结构
1.1 启动文件startup_stm32f10x_xx.s 启动文件的作用除了对堆栈等初始化,对中断向量表以及对应的中断处理函数的定义外,还要负责芯片上电后引导程序进入main函数,芯片上电复位后会首先运行一段汇编程序,在进入main函数之前调用SystemInit()函数初始化系统时钟。
文件 | 说明 |
---|
startup_stm32f10x_hd.s | 适用于大容量的STM32,Flash容量大于等于256K。 | startup_stm32f10x_md.s | 适用于中等容量的STM32,Flash容量64K~256K之间。 | startup_stm32f10x_ld.s | 适用于小容量的STM32,Flash容量小于32K。 |
1.2 内核文件 core_cm3.c 和 core_cm3.h 文件 CMSIS的核心文件 提供进入Cortex-M3内核的接口,由ARM公司提供,对所有基于Cortex-M3内核的芯片都适用。core_cm3.c是内核通用源文件,主要存放的是操作内核外设寄存器的函数。对应的头文件是core_cm3.h,对core_cm3.c中的寄存器进行了映射封装。
1.3 外设文件 stm32f10x_ppp.h 和 stm32f10x_ppp.c STM32的外设驱动函数文件主要存放于STM32F10x\FWlib中,其中\inc存放外设驱动函数的头文件,src存放外设驱动函数的C文件。图中的函数的功能由其名字也能看出来。我们平时学习STM32编程用到最多的就是这些外设文件。
2.新建功能的文件结构
当我们新建一个STM32工程时,应该怎么存放这么多的库文件和用户文件,一开始时,我也并不太懂,还是参照正点原子的方法,久而久之,就形成自己的文件存放习惯,当你学习多了,自然就知道,自己需要的文件在哪个文件夹下。刚开始学习STM32编程的小伙伴可以先参照原子的文件结构建立工程文件。 刚开始编程时,实际是用不到这么多的外设驱动文件的,比如刚开始的点灯程序,只需要 stm32f10x_gpio.h 和 stm32f10x_gpio.c, stm32f10x_rcc.h 和 stm32f10x_rcc.c。当然,核心文件还是有的。具体的库函数点灯程序,在我的另一篇博文里面有具体的教程。
|