您的位置 首页 知识

怎么运用STM32_V3.5版别固件库树立工程模板

准备工作如下:1:下载STM32_V3.5的固件库去论坛上找,很多2:准备KeiluVision4软件,并安装到电脑上。3:不要带板凳了,带上你的脑袋就行,…

预备作业如下:

1:下载STM32_V3.5的固件库去论坛上找,许多

2:预备KeiluVision4软件,并安装到电脑上。

3:不要带板凳了,带上你的脑袋就行,由于板凳不会考虑。

开端:

1:首要解压缩下载的固件库(保存一个备份,你懂的)

里边有,

_htmresc:ST的logo彻底无用,不必理睬,

Libraries:比较重要的文件包括STM32的体系文件和很多头文件,也便是库文件了。

Project:包括很多外设的例程,和各个软件版别的评价版工程模板

KEIL对应的便是MDK-ARM文件下的工程模板。你也能够运用这个工程模板来修正,得到你自己的工程模块,本文不必此法。

Utilities:便是评价版的相关文件:本文也不会用到,无视既可。

这四个文件,(先去掉文件的只读特点吧,相信你会的)

2:安照一般的办法,树立工程模板先树立一些文件夹,比方工程模板要建在D盘,下面的

D:\STM32\PRO1(项目姓名,自己随意定)再该文件夹下面新建以下文件夹

Libraries:直接仿制上述的的Libraries文件夹,把其间的CMSIS剪切出来,放到PRO1目录下,直接成为另一个文件夹。别的把STM32F10x_StdPeriph_Driver下的inc和src文件夹剪切出来,放在Libraries目录下,STM32F10x_StdPeriph_Driver文件夹就能够删除了。会发现里边就只剩余头文件了。

CMSIS:便是从上面粘贴来的。在CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下直接将Startup文件剪切出来,放在Libraries目录下,其他的不需求动。里边寄存的便是重要的体系文件,先不要理睬是什么效果吧,渐渐就了解了。

Startup便是从上面粘贴来的。咱们要用的比方是:STM32F103VC,只需把startup\arm目录下的startup_stm32f10x_hd.s文件剪切出来,放到Startup下面就好。Startup只需这个文件,其它全删吧。这个便是发动文件,依据芯片存储容量来挑选。

USER:请在里边放个main.c的文件,里边就一个WHILE(1)循环就好,但请加上这个头文件:#i nclude”stm32f10x.h”。别的从固件库的Project\STM32F10x_StdPeriph_Template目录下仿制stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h。这四个h文件是Libraries里边没有的,理论上要自己写好的,可是固件库里有就直接仿制吧,呵呵。别的你还发现那个目录下有个system_stm32f10x.c文件,有人问,这个怎样纷歧起仿制了,很简略,由于CMSIS这个文件夹里边现已有了,个人认为仍是放在这儿比较好,由于是体系文件。

Project:这个文件夹用来寄存项目文件。比方你等下要树立的工程姓名TEST.uvproj,就放在这儿。在该文件下寄存一些项意图输出信息,OUTPUT,和LISTING信息,能够树立这两个文件夹。等下就能够在OPTIONSFORTARGETPROJECT里边进行途径设置。

文件夹分配到此结束,为什么要这么分配文件夹呢,其实是个人了解的问题,我这样的意图是为了比较清楚,也契合一般程序员的设置办法。等你了解了,随意组织文件下都能够。

下面开端树立工程模板。

3:翻开KEIL软件,树立新工程。

比方建TEST.uvproj,保存在方才的Project文件夹下面。

挑选你运用的STM32芯片,比方我用的是103VC的,就挑选那个,确认后,会跳出来个窗口,问你是否仿制发动代码,挑选否,由于咱们现已弄好了,前面的预备作业不是白做的。

然后右键TARGET1,挑选ManageCcmponents,把文件给加进去吧。

来图片了:加好文件后,呈现如下的文件架构。(按下图加文件吧,每个文件都在相应的文件夹里,前面的作业不是白做的。)图看不到请看附件

图1

接下来要设置编译文件的途径,设置好后如下图:

图2

现在编译,仍是有过错的。能够先编译下,

由于main.c中有#i nclude”stm32f10x.h”这句,在这个重要的头文件里,并没有界说好一些东西,分别在stm32f10x.h的0070行,撤销对#defineSTM32F10X_HD的屏蔽,

0105行撤销对#defineUSE_STDPERIPH_DRIVER的屏蔽,这两个界说好,才干正常作业,第一个是挑选存储容量的类型,每种芯片都不太相同,所以让你挑选,第二个是运用标准库文件,由于咱们是要用库的,所以有必要挑选,默许是不必库的,直接进行寄存器的操作。

像初学者是用库比较好,所以必定挑选的。

也能够直接如下图操作。

图3

,效果是相同的。

挑选好后,直接编译,祝贺你,成功了。

4:最终要阐明的便是:

图4

这个库文件,是有必要挑选misc.c和stm32f10x_rcc.c的。

别的便是你挑选用什么功用,就把什么功用的c文件加进去,我这儿现已加了一个对IO口的运用的一个c文件。

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

core_cm3.c/core_cm3.h

该文件是内核拜访层的源文件和头文件,检查其间的代码多半是运用汇编语言编写的。

stm32f10x.h

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

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

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口。我个人认为娴熟运用库能够大大进步编程的功率,一起标准运用库函数也能够进步程序的可读性,让团队中的其他程序员能够快速的了解代码的效果。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/268235.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部