微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何使用STM32_V3.5版本固件库建立工程模板

如何使用STM32_V3.5版本固件库建立工程模板

时间:11-17 来源:互联网 点击:

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

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

typedefstruct

{

__IOuint32_tCRL;

__IOuint32_tCRH;

__IOuint32_tIDR;

__IOuint32_tODR;

__IOuint32_tBSRR;

__IOuint32_tBRR;

__IOuint32_tLCKR;

}GPIO_TypeDef;

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

stm32f10x.h即可。

在stm32f10x.h8296行

#ifdefUSE_STDPERIPH_DRIVER

#i nclude"stm32f10x_conf.h"

#endif

这里定义了#i nclude"stm32f10x_conf.h"

system_stm32f10x.c/h

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

stm32f10x_conf.h

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

stm32f10x_it.c/h

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

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

/*STM32F10xPeripheralsInterruptHandlers*/

/*AddheretheInterruptHandlerfortheusedperipheral(s)(PPP),forthe*/

/*availableperipheralinterrupthandlersnamepleaserefertothestartup*/

/*file(startup_stm32f10x_xx.s).*/

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

/**

*@briefThishandlesPPPinterruptrequest.

*@paramNone

*@retvalNone

*/

/*voidPPP_IRQHandler(void)

{

}*/

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

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

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

Libraries文件夹

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top