原创 如何使用STM32_V3.5版本固件库建立工程模板(续)

2014-2-8 14:12 780 9 9 分类: MCU/ 嵌入式 文集: STM32

4:最后要说明的就是:

图4

 

 

这个库文件,是必须选择misc.c stm32f10x_rcc.c的。

 

另外就是你选择用什么功能,就把什么功能的c文件加进去,我这里已经加了一个对IO口的应用的一个c文件。

 

 

 

5:一些重要文件的说明吧

 

 

 

core_cm3.c/core_cm3.h 

 

该文件是内核访问层的源文件和头文件,查看其中的代码多半是使用汇编语言编写的。

 

 

 

stm32f10x.h 

 

该文件是外设访问层的头文件,该文件是最重要的头文件之一。例如

 

向量等等。除了这些该头文件还定义了和外设寄存器相关的结构体,如:

 

typedef struct 

 

 

  __IO uint32_t CRL; 

 

  __IO uint32_t CRH; 

 

  __IO uint32_t IDR; 

 

  __IO uint32_t ODR; 

 

  __IO uint32_t BSRR; 

 

  __IO uint32_t BRR; 

 

  __IO uint32_t LCKR; 

 

} GPIO_TypeDef; 

 

  包含了那么多寄存器的定义,那么在应用文件中(例如自己编写的 main 源文件)只需要包含

 

stm32f10x.h即可。

 

 

 

 

 

stm32f10x.h  8296

 

#ifdef USE_STDPERIPH_DRIVER

 

  #include "stm32f10x_conf.h"

 

#endif

 

这里定义了 #include "stm32f10x_conf.h"

 

 

 

 

 

system_stm32f10x.c/h 

 

该头文件也可以称为外设访问层的头文件和源文件。在该文件中可以定义系统的时钟频率,定义低速时钟总线和高速时钟总线的频率,其中最关键的函数就是 SystemInit()了,这个后面会详细介绍。总之这两个文件是新固件库V3.5的重点,有了它粮也大大简化了使用 stm32的初始化工作。 

 

 

 

stm32f10x_conf.h 

 

这个文件和 V2 版本的库的内容是一样的,需要使用哪些外设就取消哪些外设的注释。

 

 

 

stm32f10x_it.c/h 

 

  这两个文件包含了 stm32中断函数,在源文件和头文件中并没有把所有的中断入口函数都写出来,而只写了 ARM内核的几个异常中断,其他的中断函数需要用户自己编写。stm32f10x_it.c的最后给了这样一个模板。

 

/******************************************************************************/ 

 

/*                 STM32F10x Peripherals Interrupt Handlers          */ 

 

/*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the   */ 

 

/*  available peripheral interrupt handler's name please refer to the startup    */ 

 

/*  file (startup_stm32f10x_xx.s).                                    */ 

 

/******************************************************************************/ 

 

/** 

 

  * @brief  This  handles PPP interrupt request. 

 

  * @param  None 

 

  * @retval None 

 

  */ 

 

/*void PPP_IRQHandler(void) 

 

 

}*/ 

 

从注释中的英文提示可以看出,中断向量的名称可以从相应的启动代码中找出,例如可以

 

startup_stm32f10x_md.s 中找到 USART1 中断函数的名称——USART1_IRQHandler。其他的中断函

 

名可以以此类推,一一获得,在这里我就不一一复述了。 

Libraries文件夹

  该文件夹有包含两个文件夹,一个是 src文件夹,另一个是 inc文件夹,顾名思义,一个里面放的是元件一个里面放的是头文件。这两个文件夹包含了所有的 STM32 的外设驱动函数,其实和 V2 版本也没有太大的变化。简单来说,外设的驱动相当于 windows的驱动函数 API,这些驱动函数看到函数名基本就可以明白这个函数的作用,例如:GPIO_SetBits 可以置位某个 IO 口,相反 GPIO_ResetBits 则可以复位某个 IO 口。我个人认为熟练使用库可以大大提高编程的效率,同时规范使用库函数也可以提高程序的可读性,让团队中的其他程序员可以快速的明白代码的作用。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条