STM32基于固件库V3.5版本的工程模板建立

合集下载

基于ST官方V3.5固件库的STM32新建工程心得

基于ST官方V3.5固件库的STM32新建工程心得

基于ST官方V3.5固件库的STM32新建工程心得之前笔记有寄存器版本的新建工程步骤,这里介绍下基于ST官方V3.5固件库的STM32新建工程,和寄存器新建工程类似,在其基础上添加库文件。

1、WINSOWS环境下新建工程文件夹test →inc 存放自己的库文件src 存放自己的.C文件out 存放自己的输出文件txt 存放技术文档Libraries 拷贝的官方库文件到自己的工程文件夹下将打包文件夹下system目录下的inc和src文件夹中的3个文件或复制inc 和src到test文件夹下2、打开keil,新建一个工程将工程保存到自己新建的工程文件夹test的根目录选择芯片型号在弹出的是否自动导入启动代码的选项卡中选择否3、点击manage project items图标进行工程组管理test →CMSIS (Cortex微控制器软件接口标准)放启动代码内核文件STD_DRIVER (驱动程序放封装好的函数)SYSTEMMAINSRC在CMSIS工程组下添加以下文件:Libraries/CMSIS/CM3/Core Support/core_cm3.cLibraries/CMSIS/CM3/Devicesupport/ST/STM32F10x/system_stm32f10x.cLibraries/CMSIS/CM3/Devicesupport/ST/STM32F10x/startu p/arm/startup_st m32f10x_hd.s(.s文件可能在目录下被过滤,选择查看.s文件才能找到)至此,管理组CMSIS目录下共有3个文件在STD_DRIVER工程组目录下添加以下文件:Libraries/STM32F10x_StdPeriph_Driver/所有.c文件(这里暂时全部添加,以后可以用到哪个添加哪个)工程组设置完毕,点击确定保存4、从标准库文件夹STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Template/stm32f10x_conf.h 拷贝到新建工程文件夹test的inc文件夹下stm32f10x_it.c 拷贝到新建工程文件夹test的src文件夹下stm32f10x_it.h 拷贝到新建工程文件夹test的inc文件夹下5、点击Opetions for Target图标进行工程配置Device选项卡是芯片,新建工程时候已经选择Target选项卡晶振8.0MHzOutput选项卡Select Folder for Objects选择输出文件路径为创建文件夹test目录下的out,勾选Create HEX File,生成HEX烧写文件Listing选项卡Select Folder for Listing选择列表文件输出路径为test的outC/C++选项卡这里要添加两个宏:STM32F10X_HD,USE_STDPERIPH_DRIVER,指定芯片为大容量产品,使用ST官方的标准固件库Include Paths添加指定所有库文件路径,这里包含了Libraries文件夹下的标准库文件和test文件夹下自己定义的库文件有4个路径:test/inctest\Libraries\CMSIS\CM3\CoreSupporttest\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10xtest\Libraries\STM32F10x_StdPeriph_Driver\incDebug选项卡选择使用Jlink仿真调试Utilities选项卡去掉Use debug Driver选项前的勾选,然后选择Jlink在setting中选择FLASH,我们的芯片是大容量512K,可以选择勾选Reset and Run,烧写玩程序自动复位并运行。

MDK环境下利用STM32库V3.5创建工程并调试的方法

MDK环境下利用STM32库V3.5创建工程并调试的方法

MDK环境下利用STM32库V3.5创建工程并调试的方法STM32标准外设库及说明1.解压STM32F10x_StdPeriph_Lib_V3.5.0库到硬盘(如F盘)2.库中自带的MDK模板示例1)位置2)工程组织结构3)详细结构3.库文件结构1)Chm中的目录树2)Windows资源管理器中的结构表:STM32F10x_StdPeriph_Lib_V3.5.0文件夹描述标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,是STM32F10x CPU资源的总括:CMSIS是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间;STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。

Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。

Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。

CMSIS中内核设备访问层:(CM3/CoreSupport)core_cm3.h:CMSIS的Cortex-M3内核设备访问层头文件core_cm3.c:CMSIS的Cortex-M3内核设备访问层源文件微控制器外设访问层:(CM3/DeviceSupport/ST/STM32F10X)stm32f10x.h:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层头文件system_stm32f10x.h:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层头文件system_stm32f10x.c:CMSIS的Cortex-M3 STM32f10xxx微控制器外设访问层源文件STM32F10xxx标准外设库体系结构文件功能说明在实际开发过程中,根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):(1) 使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。

STM32工程模板

STM32工程模板

你是问有官方固件库创建工程吧?我这里给你说说MDK的创建方法,如果你用的时IAR环境也差不多。

1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。

最新标准库版本为3.5.02.创建一个Demo文件夹2.1 新建子文件夹User,用于存放用户源程序2.2 新建子文件夹Project,用户KEIL工程文件2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。

3. 复制源代码到Demo文件夹3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Li braries文件整体复制到Demo文件夹下。

这就是ST的标准库,是以源代码形式提供的。

3.2 将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.4. 新建一个Keil MDK工程4.1 启动Keil MDK,点击菜单New uVision Project,然后按向导进行操作4.2 选择CPU类型为STM32F103ZE (这是安富莱STM32开发板采用CPU类型)4.3 当提示是否复制启动代码时,请选择否。

(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)4.4 根据自己的需要修改Target名字。

(名字任意)4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)User : 存放用户自己写的源代码RVMDK : 存放启动文件(汇编文件)StdPeriph_Driver : 存放ST标准库文件CMSIS : 存放CMSIS接口文件(这也是库的一部分)4.6 创建好Group后,我们开始依次添加文件。

5. 修改源代码。

我们将修改main.c 文件,换成我们自己跑马灯程序。

6. 配置工程, 点击“Options”按钮6.1 切换到Output。

选择Object文件夹。

stm32工程模板建立

stm32工程模板建立

STM32工程建立步骤Stm32的工程建立稍微有点复杂,所以写一个教程也是为了防止自己以后忘记了步骤而再次繁琐办事。

首先新建一个工程文件夹改名字打开Domo新建文件夹打开Libraries文件夹新建如下文件夹其实你会发现这都是官方库里面的文件夹,事实上就是拷贝过来的啦。

这是官方3.5版本库首先我们凑齐Libraries 文件夹里的四个子文件夹从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\Core Support\找到下面两个放到core文件夹内从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ ST\ STM32F10x把startup文件夹直接复制过来放在Libraries里,另外三个文件放在刚刚建的Devices文件夹里然后把startup打开再把arm文件夹里的文件都剪切出来放在startup文件夹里,其余文件删除。

从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\ STM32F10x_StdPeriph_Driver拷贝inc、src这两个文件夹到这里我们新建的Libraries文件夹里的四个子文件夹就凑齐了,可见都是官方的库。

然后我们往Devices文件夹里添加一些文件从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\ Project\ STM32F10x_StdPeriph_Template复制这五个文件放到Devices文件夹里你会发现这个文件重复了,是因为我们刚才已经放了三个文件其中一个就是它,一模一样随便处理了。

这个时候我们就可以打开Keil了新建工程菜单栏点击Project→New μVision Project会弹出窗口让我们选择位置和工程名我们定位到Project文件夹命名工程为Domo如图点击保存会弹出选择芯片的窗口这里我选择STM32F103RB点击OK弹出一个资料窗口直接点OK,干净的脸庞开始设置项点击选择Output再点击Select Folder…选择Output文件夹,如果需要生成HEX文件,就把Create HEX File勾选。

新建工程模板--基于固件库

新建工程模板--基于固件库

图3.2.1 MDK5组成从上图可以看出,MDK Core又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。

uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。

Software Packs(包安装器)又分为:Device(芯片支持),CMSIS(ARM Cortex微控制器软件接口标准)和Mdidleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。

同以往的MDK不同,以往的MDK把所有组件到包含到了一个安装包里面,显得十分“笨重”,MDK5则不一样,MDK Core是一个独立的安装包,它并不包含器件支持和设备驱动等组件,但是一般都会包括CMSIS组件,大小350M左右,相对于MDK4.70A的500多M,瘦身不少,MDK5安装包可以在:/demo/eval/arm.htm下载到。

而器件支持、设备驱动、CMSIS等组件,则可以点击MDK5的Build Toolbar的最后一个图标调出Pack Installer,来进行各种组件的安装。

也可以在/dd2/pack这个地址下载,然后进行安装。

在MDK5安装完成后,要让MDK5支持STM32F103的开发,我们还需要安装STM32F1的器件支持包:Keil.STM32F1xx_DFP.1.0.5.pack(STM32F1的器件包)。

这个包以及MDK5.14安装软件,我们都已经在开发板光盘提供了,大家自行安装即可。

3.3新建基于固件库的MDK5工程模板在前面的章节我们介绍了STM32官方库包的一些知识,这些我们将着重讲解建立基于固件库的工程模板的详细步骤。

【自写】如何使用STM32_V3.5版本固件库在Keil4下建立工程模板

【自写】如何使用STM32_V3.5版本固件库在Keil4下建立工程模板

如何使用STM32_V3.5版本固件库在Keil4下建立工程模板By 呼延靖国准备工作如下:1.下载STM32F10x_StdPeriph_Lib_V3.5.0固件库。

2.下载并安装好Keil uVision V4.10(MDK4)开始:1.首先解压STM32F10x_StdPeriph_Lib_V3.5.0固件库。

PS:保留一个备份,你懂的。

解压得到如图1所示的几个文件夹。

其中_htmresc文件夹:里面是ST的Logo图片,没有多大用,可以删除。

Libraries文件夹:是比较重要的文件包含STM32的系统文件和大量头文件,即库文件。

Project文件夹:里面为STM32F10x的例程和工程模板。

Keil对应的就是 MDK-ARM 文件下的工程模板。

也可以利用这个工程模板为原型建立自己的工程模板本文不用此法。

Utilities文件夹:里面有一些实用程序,也没多大用,可删除。

Release_Notes.html:版本注视,可删除。

stm32f10x_stdperiph_lib_um.chm:帮助文件,你懂的。

2.为了项目程序中的各部分条理清晰,我们建议工程文件夹时对其子目录子下归类建立子文件夹,例建立一个工程文件夹My Project,在其下在创建五个子文件夹如图2所示:其中:CMSIS文件夹:此文件夹从STM32F10x_StdPeriph_Lib_V3.5.0固件库中的CMSIS文件夹直接复制过来。

Libraries文件夹:此文件夹从STM32F10x_StdPeriph_Lib_V3.5.0固件库中的Libraries文件夹复制过来。

只保留当中的inc和src文件夹。

即只包含头文件。

Startup文件夹:此文件夹从CMSIS\CM3\DeviceSupport\ST\STM32F10x\Startup目录下直接将Startup文件剪切出来。

其中放置的是启动代码,具体的代码根据所用芯片的容量选择,我们用的STM32F103C8为中等容量芯片,故选择其中的startup_stm32f10x_md.s启动代码,其他不用的可以删除User文件夹:User文件夹为用户的应用程序,其中包括main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h四个文件,这四个文件可从V3.5.0固件库Project\STM32F10x_StdPeriph_Template目录下复制过来,当然main.c文件中的内容可删除。

IAR建立stm32工程

IAR建立stm32工程

IAR建⽴stm32⼯程 stm32是⼀个当下⾮常流⾏的微控制器,很多⼈都加⼊了学习stm32的⾏列中,常⽤的stm32编译器有IAR和mdk两种,接下来是利⽤stm32固件库3.5在IAR下的建⽴的⼯程模板历程: 1、在常⽤的⽂件夹下新建⽴⼀个⽂件夹,根据个⼈喜好,分别建⽴如下⼏个⽂件夹,⽤于分别存放固件库中的⽂件和⽤户⾃⼰的⽂件 2、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar⽬录下的汇编⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\Startup 3、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x⽬录下的⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\System下 4、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver⽬录下的驱动⽂件复制到模板⽬录下F:\STM32-IAR\demo\FWLIB 5、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\EWARM⽬录下的.icf⽂件复制到模板⽬录F:\STM32-IAR\demo\Config中6、将固件库⽬录E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的F:\STM32-IAR\demo\User下到此为⽌,建⼯程前的准备⼯作已经做好,接下来就是打开IAR进⾏建⽴⼯程了,打开IAR->File->New->Workspace,建⽴好⼯作空间后,选择Project->Create New Project 建⽴⼀个新的⼯程,接下来将⿏标放在界⾯左侧的⼯作空间处点击⿏标右键选择Add,添加⼯作组如下图,⽂件名模板⽂件夹中的名字相同加下来分别将模板⽂件家中的.C⽂件添加进⼯程到此为⽌需要添加的⽂件已全部添加进来了,接下来是对IAR的配置,依旧是将⿏标放在左侧的⼯作空间上点击右键选择Options进⾏配置,在General Options-Target-Device选择⾃⼰使⽤的相应芯⽚型号,General Options下其他选项保持默认即可,接下来是C\C++Compler按下图进⾏设置接下来的⼏项⼀次按接下来的图⽚设置就好接下来是最容易忽视的⼀个问题,图⽚上画圈的位置⼀定要选上,不然编译将出错最后在⼯程中加⼊main函数编译通过,⼀个模板就建好了。

Keil4.22 MDK建立stm32工程模版模版

Keil4.22 MDK建立stm32工程模版模版

MDK422&ST3.50外设库初探-----工程模版建立Keil版本:4.22 固件库版本:3.5解压固件库首先开始建立工程文件夹test然后在该文件夹下再建立两个文件夹:MDK、User。

其中MDK用于存放工程文件,而User则用于存放我们自己要编辑或修改的代码文件。

将固件库中的\Libraries\STM32F10x_StdPeriph_Driver文件夹copy到test目录下。

这个文件夹存放了外设库的源文件。

将固件库中的\Libraries\CMSIS\Core\CM3文件夹copy到test目录下。

这个文件夹存放了CM3源文件(这个我不太懂)和startup文件(启动文件)。

在MDK目录下建立两个目录:Obj和List。

Obj用于存放编译时产生的对象文件,而List用于存放编译时产生的list文件和map文件。

COPY外设库的\Project\Template下的4个文件到\test\User目录:在User文件夹中建立Readme.text文本文件,用途是对工程进行介绍。

OK,可以建立工程了~由于和51用的一个环境,所以适应起来还是挺快的^_^在MDK目录下新建工程Project-> 第一个选项工程名也用test,工程建立保存在MDK文件夹:选择MCU型号点击OK,这时会提示我们是不是自动COPYMDK自带的启动代码,选择否,因为我们要用ST的外设库里面带的启动代码:接下来点击:双击Target1可以对其进行改名;双击Source Group1改名为User,然后点击添加组添加4个组分别为::StdPeriph_Driver、CM3、StartUp、Readme。

选中User然后点击Files框架下的AddFiles添加\test\User下刚刚copy的两个C 文件。

StdPeriph_Driver中添加\test\STM32F10x_StdPeriph_Driver\src文件下的.c文件,选择那些你工程中用到的库函数,也可全部加进去,这样肯定不会漏加,但是编译时间会增长,因为在编译生成时要对每一个文件都进行操作。

通过STM32固件库V3.5.0来建立一个简单的工程模版

通过STM32固件库V3.5.0来建立一个简单的工程模版
打开 Template 文件夹后如下图所示。 然后,将
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_Stdperiph_Examples\GP IO\IOToggle 目录下 main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c 四 个文件复制到 User 目录下。 至此,文件的操作结束。 重新点击,现在我们要向各个文件组中添加文件。 首先是 User 文件组,点击 Add Files,然后添加 User 文件夹下的 3 个 C 文件,如下图所示。
在这里,选择否(N),等会我们会添加 STM32 固件库中的启动文件。
接下来,我们要建立几个文件组,用来存放不同的源文件,让整个工 程目录结构清晰,点击中的后如下图所示 点击中的可建立一个文件组,可以删除分组,下面我们将建立 User,StdPeriph_Drive,CMSIS,MDK-ARM 四个文件组,User 用来存放与 用户有关的文件,StdPeriph_Drive 用来存放库函数中的外设驱动文件, CMSIS 用来放于 Cortex_M3 内核有关的文件,MDK-ARM 用来存放启动文件, 文件组建立好后,如下图所示。 点击 OK,我们可看到下图所示)与 Template 文件夹 中的文件进行操作。 将固件库文件夹中的 Libraries 文件夹复制到工程目录下(即刚才建 立的 Template 文件夹下),并在 Template 下建立 User 与 Output 两个文件夹, User 用来放与用户代码有关的文件,Output 用来存放编译后产生的中间文件。
通过 STM32 固件库 V3.5.0 来建立一个简单的工程模

首先,打开 Keil,选择 Project-》New uVision Project,选择合适的文 件夹,输入工程名后,点击保存,建立工程。 如下图,在 Template 文件夹下建立工程名为 stm32_demo 的工程。 然后我们选择器件,以 STM32F103RB 为例(STM32 其他系列可类 推),在 STMicroelectronics 栏中选择 STM32F103RB,如下图,在图右侧我 们可看到关于芯片的描述。 点击确定后弹出如下的对话框,问需不需要添加启动文件(此启动文 件为 MDK 自带的),

如何使用STM32 v3.5固件库建工程

如何使用STM32 v3.5固件库建工程

如何使用STM32_V3.5版本固件库建立工程模板准备工作如下:1:下载STM32_V3.5的固件库去论坛上找,很多2:准备Keil uVision4 软件,并安装到电脑上。

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 下面就好。

新建基于STM32固件库V3.5的Keil工程

新建基于STM32固件库V3.5的Keil工程

* @retval None
布谷鸟@UCORTEX
CORTEX 技术之家:
第 6 页,共 7 页
新建基于
STM32 固件库 V3.5 的 Keil 工程
* @param led:指示灯编号 * * */ void LED_Off(uint8_t led) { if(led==0) else{} } /** * @brief 毫秒延时函数 * @param ms: 延时的毫秒数 * @retval None */ void Delay_ms(uint32_t ms) { ms*=12000; while(ms--); } int main(void) { LED_Init(); while (1) { //跑马灯程序 LED_On(0); LED_Off(1); Delay_ms(250); LED_Off(0); LED_On(1); Delay_ms(250); } } 好了,到这里,一个基于 STM32 固件库,实现跑跑马灯功能的工程就完成了,以后所有的项目都可以在这 个工程模版的基础上,进行修改得到。 GPIO_SetBits(GPIOB,GPIO_Pin_5);//点亮 LED0 else if(led==1) GPIO_SetBits(GPIOE,GPIO_Pin_5);//点亮 LED1 @arg 0:LED0 @arg 1:LED1
* @retval None
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 口速度为 50MHz //根据设定参数初始化 GPIOB.5 //PB.5 输出高 //开漏输出,IO 口速度为 50MHz //PE.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5 端口配置, 推挽输出

KEIL环境下利用STM32库V3.5创建工程的方法

KEIL环境下利用STM32库V3.5创建工程的方法

1,创建GPIO文件夹2,在此文件夹下创建以下文件夹:User,CMSIS,StdPeripih_Driver,StartUp,Project。

3,在Project文件夹下创建以下文件夹:Object,Listing。

**至此文件夹创建工作完成。

****以下固体库就要发挥作用了**4,将固体库里的Libraries文件夹整个拷贝到GPIO下。

5,在固体库下找到以下文件core_cm3.c,core_cm3.h,stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,拷贝到自己创建的CMSIS文件夹下。

6,在固体库Project文件夹下找到以下文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h,拷贝至自己创建的User文件夹下。

(注:这边仅以操作GPIO口为例,若是使用其他外设,方法一样,将相应文件夹下的4个文件拷贝即可。

)7,在固体库Libraries文件夹下找到startup》arm,将startup_stm32f10x_hd.s拷贝至自己创建的StartUp文件夹下。

(注:这边以stm32f107VC为例)8,在固体库下找到misc.c,stm32f10x_flash.c,stm32f10x_gpio.c,stm32f10x_rcc.c。

(注:这边仅以操作GPIO口为例,若是使用其他外设,方法一样,将stm32f10x_gpio.c替换即可)。

9,打开KEIL,创建工程,保存至自己创建的Project文件夹下。

跳出是否添加启动代码是选“否”。

10,右击Target,点击Manage Components ,如下图:先添加文件夹(尽量将文件夹名称保持和之前自己创建的几个文件一致),后将c文件添加进去。

11,右击选择弹出窗口如下。

12,设置后即可,方法如下:1》,点击,选择路径为之前自己创建的Object文件夹。

基于固件库V3.5建立STM32工程

基于固件库V3.5建立STM32工程

从零开始基于固件库V3.5建立STM32工程一、建立工程文件夹及其子文件夹,在文件夹内拷贝相应的文件,并整理好。

1、建立工程文件夹,将它命名为GPIO。

2、在GPIO下分别建立Lib、User、List及Obj这四个文件夹。

3、将固件库中Libraries文件夹下的"CMSIS"和"STM32F10x_StdPeriph_Driver"这两个文件夹拷贝至上一步建立的Lib文件夹下。

4、将固件库中Project-->STM32F10x_StdPeriph_Examples-->GPIO-->IOToggle内的全部文件拷贝至第2步建立的User文件夹下。

二、建立KELL工程。

1、Project-->New μVision Project...,将新建立的工程保存在步骤1时建立的GPIO文件夹下,并命名为GPIO。

2、在弹出的Select Device for 'Target1'...对话框中,选择相应的器件,我们选择 STM32F103ZE,确定完成后按"OK"。

3、在弹出的询问是否添加启动代码的对话框中,选"否"。

因为我们使用固件库中的启动代码,需要手动添加。

4、点击右键add group,在Target1下建立四个Groups: User 、Lib 、CMSIS、StartUp。

然后添加文件。

4.1在CMSIS Group下添加如下两个c文件:"\GPIO\Lib\CMSIS\CM3\CoreSupport\core_cm3.c"以及"\GPIO\lib\cmsis\cm3\devicesuport\st\stm32fl0x\system_stm32 f10x.c"。

4.2在User Group下添加c文件:将\GPIO\User目录下的所有C文件添加进来。

用STM32标准外设库StdPeriph_Lib V3.5在Keil上创建一个STM32工程

用STM32标准外设库StdPeriph_Lib V3.5在Keil上创建一个STM32工程

用固件库STM32F10x_StdPeriph_Lib_V3.50在Keil上创建STM32工程STM32标准外设库结构步骤:一、建立一个空的STM32工程,选好芯片类型(STM32F103ZE)。

选好芯片类型后点击“OK”,如果选择自己加载启动文件,则在弹出的对话框中点击“否(N)”。

二、在Project栏中添加子类,并加载STM32固件库中的相关文件到相应的子类中。

1.向User子类中加载文件○1加载自己建立的Application.c(如main.c) ;○2加载stm32f10x_it.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Project\Example2\User注:User文件夹中有main.c(自己建立的)及stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c、system_stm32f10x.c(来源于STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template) 2.向Startup子类中加载启动文件startup_stm32f10x_hd.s(STM32F103ZE属于High density devices系列)文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 3.向StdPeriph_Driver子类中加载misc.c及需要使用的外设的驱动文件stm32f10x_ppp.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src4.向CMSIS子类中加载core_cm3.c及system_stm32f10x.c文件路径STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport及STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x(或User文件夹)成功加载完所有相关文件后Project栏显示结果如下:三、配置路径点击进入界面后配置“Include Paths”,具体情况要以Project栏中的文件为依据。

MDK4.54和固件库3.5建立新工程

MDK4.54和固件库3.5建立新工程

MDK4.54和固件库3.5建立新工程以Keil uVision4软件和STM32F103芯片为例,固件库版本为3.5版,演示建立新工程的步骤。

1,在建立新工程之前需要一些准备工作,首先要新建一个文件夹存放工程文件(如GPIO)2,在此文件夹下新建两个文件夹:3,打开Project,建立如下两个文件夹:4,将下载的固件库Libraries下的两个文件夹CMSIS和STM32F10x_StdPeriph_Driver拷贝到GPIO文件夹下,如下图:5,在库文件的例程中找到以下几个文件main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h、system_stm32f10x.c等文件拷贝到工程下的User文件夹中:6,到此,准备工作完成。

7,打开Keil软件,点击快捷方式图标,打开界面如下图:部分工具栏如下图:8,单击上图箭头所指示的Project图标,弹出以下窗口9,然后点击上面红色箭头所指的New u Vision Project,弹出下面的窗口10,然后保存在工程下Project文件夹下,命名为GPIO,点击保存如下:11,点击保存后弹出如下窗口:12,然后选择所用的芯片,这里我们选择STM32F103VC,如下:13,点击OK后弹出如下对话框,选择否:14,工程建好后就是下面的样子了:15,在工程上右击,选择Mange Componts,如下:16,点击Mange Componts后添加文件组,如下:17,在User下添加工程文件夹下的C文件:18,点击Add,用同样的方法给StdPeriph_Driver添加文件,选择工程下STM32F10x_StdPeriph_Driver下面的src文件夹下的文件,如下(只需要添加自己需要的即可,这里我全部添加):19,然后在CMSIS下添加文件,选择工程下CMSIS文件下的CM3下的CoreSupport的文件里的文件,如下:20, 在Startup下添加工程下CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的文件,如下(前面添加的都是C文件,这里添加时,文件类型需要选择All file,可以选择芯片对应的文件,这里我们只选择第二个文件,否则在下面的程序编译中会出现重复错误):21,添加完文件后点击Ok,工程如下:22,现在右击工程选择Options for Target ‘GPIO’来配置工程:23,在output页面下点击Select Folder Objects…,选择我们在Project 目录下的Obj文件夹:24,选择Create HEX File选择项:25,在Listing页面下点击Select Folder Objects…,选择我们在Project 目录下的List文件夹:26,在C/C++页面下配置,这是预编译的定义;Define 中写入USE_STDPERIPH_DRIVER, STM32F10X_HD其中第一个“USE_STDPERIPH_DRIVER”定义了使用外设库,定义此项会包含*_conf.h文件,从而使用外设库;而第二个“STM32F10X_HD”从字面理解应该是定义了大等容量的STM32MCU,STM32F10X_MD 则为中等容量等。

STM32固件库建立工程

STM32固件库建立工程

STM32固件库建立工程首先新建四个文件夹,如图:OBJ:工程编译过程中的过程文件和一些结果文件,包括.hex文件。

FWLIB:存放固件库源码和头文件。

其中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver文件夹里的“inc”和“src”两个文件夹拷贝到该目录下。

CORE:存放核心文件和启动文件。

其中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport文件夹里的“core_cm3.c”和“core_cm3.h”两个文件核心文件拷贝到该目录下。

另STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\ arm文件夹里的startup_stm32f10x_hd.s(512k)或startup_stm32f10x_md.s(128k)启动文件拷贝到该目录下。

USER:用户自定义主函数和头文件。

其中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹里“stm32f10x.h”、“system_stm32f10x.c”和“system_stm32f10x.h”三个文件拷贝到该目录下。

另STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template文件夹里的5个.c和.h文件拷贝到该目录下。

然后建立keil c工程,在选择芯片后提示添加文件到工程中时,我们选择“否”。

然后再工程目录里新建文件夹,并添加工程文件。

其中CORE文件夹里把启动文件startup_stm32f10x_hd.s(512k)或startup_stm32f10x_md.s(128k)也添加进去。

使用STM32固件库建立keil工程详细步骤

使用STM32固件库建立keil工程详细步骤

开源电子网
9.下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。 打开官方固件库包,定位到目录 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下 面 , 将 文 件 core_cm3.c 和 文 件 core_cm3.h 复 制 到 CORE 下 面 去 。 然 后 定 位 到 目 录 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x \startup\arm 下面,将里面所有的文件同样复制到 CORE 下面。这里我们解释一下,其 实我们只用到 arm 目录下面的 startup_stm32f10x_md.s 文件,这个文件是针对中等容量 芯 片 的 启 动 文 件 。 其 他 两 个 主 要 的 为 startup_stm32f10x_ld.s 为 小 容 量 , startup_stm32f10x_hs.c 为大容量芯片的启动文件。这里 copy 进来是方便其他开发者使 用小容量或者大容量芯片的用户。 现在看看我们的 CORE 文件夹下面的文件:
8
ALIENTEK STM32 开发板资料
开源电子网
8.下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。 打开官方固件库包,定位到我们之前准备好的固件库包的目录 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面,
将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。 src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件,您不妨打开这两个文件目录 过目一下里面的文件,每个外设对应一个.c 文件和一个.h 头文件。

STM32系列之新建工程模板(三)

STM32系列之新建工程模板(三)

STM32系列之新建⼯程模板(三)今天,我将记录STM32如何新建⼀个模板步骤第⼀步:⾸先先新建⼀个⽂件夹(英⽂命名的)——作为⼯程根⽬录第⼆步;在⽂件夹中新建⼀个名为USER的⼦⽬录⽂件第三步:点击 MDK 的菜单:Project –>New Uvision Project ,然后将⽬录定位到刚才建⽴的⽂件夹 Template 之下,在这个⽬录下⾯建⽴⼦⽂件夹 USER然后定位到 USER ⽬录下⾯,我们的⼯程⽂件就都保存到 USER ⽂件夹下⾯。

⼯程命名为 Template,点击保存。

第四步:接下来会出现⼀个选择 CPU 的界⾯,就是选择我们的芯⽚型号。

如图 3.3.3 所⽰,因为 ALIENTEK 战舰 STM32F103 所使⽤的 STM32型号为 STM32F103ZET6,所以在这⾥我们选择 STMicroelectronics STM32F1 Series STM32F103 STM32F103ZET6(如果使⽤的是其他系列的芯⽚,选择相应的型号就可以了。

点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框,如图所⽰:这是 MDK5 新增的⼀个功能,在这个界⾯,我们可以添加⾃⼰需要的组件,从⽽⽅便构建开发环境,不过这⾥我们不做介绍。

所以在图 3.3.4 所⽰界⾯,我们直接点击 Cancel,即可得到如图所⽰界⾯:到这⾥,我们还只是建了⼀个框架,还需要添加启动代码,以及.c ⽂件等。

4) 现在我们看看 USER ⽬录下⾯包含 2 个⽂件夹和 2 个⽂件,如下图所⽰:第五步:接下来,我们在 Template ⼯程⽬录下⾯,新建 3 个⽂件夹 CORE, OBJ 以及 STM32F10x_FWLib。

CORE ⽤来存放核⼼⽂件和启动⽂件,OBJ 是⽤来存放编译过程⽂件以及 hex ⽂件,STM32F10x_FWLib ⽂件夹顾名思义⽤来存放 ST 官⽅提供的库函数源码⽂件。

stm32 基于3.5 库 MDK 自建工程过程

stm32 基于3.5 库 MDK 自建工程过程

stm32 基于3.5 库MDK 自建工程过程
从0 开始创建一个基于库的工程第一步:第二步:其它的就是产生hex 文件,list 文件的路径,仿真器选择下面这个单独列出来是因为没有设置,生成文件就无法烧录。

第三步尝试编译一下一下工程,报错是肯定的,来看看是什么错误。

第四步:添加启动文件第五步:添加库文件宏定义头文件路径包含穿插MDK 自带了一些头文件和库中的文件名是相同的,如果库文件没有
添加,编译器就会用自带的文件替代但是这些文件的内容和库文件中的内容有可能不太一样第六部自己写的头文件stm32f10x_conf.h 头文件之所以要自己写这个文件,是引文MDK 自带文件和库中的文件不是一个版本,对不上产生
编译错误。

最后一个stm32f10x_it.c 需要自己,就是中断服务函数文件,具体怎么写,看头文件。

tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

stm32各模块函数写法模版(基于V3.5固件库)

stm32各模块函数写法模版(基于V3.5固件库)

STM32学习笔记GPIO口GPIO初始化void GPIO_Configuration(void){GPIO_InitTypeDef GPIO_InitStructure;//声明结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//打开功能时钟(再写这句程序的时候,必须进行时钟系统初始化的操作)。

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;//指明操作对象引脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置IO口时钟为50MHz/10MHz/2MHzGPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置推挽输出/*GPIO_Mode_AIN 模拟输入GPIO_Mode_IN_FLOATING 浮空输入(一般为中断所使用)。

GPIO_Mode_IPD 下拉输入GPIO_Mode_IPU 上拉输入GPIO_Mode_Out_OD 开漏输出GPIO_Mode_Out_PP 推挽输出GPIO_Mode_AF_OD 复用开漏输出GPIO_Mode_AF_PP 复用推挽输出*/ (一般用在点灯)。

GPIO_Init(GPIOA, &GPIO_InitStructure); //执行初始化IO口}GPIO常用函数GPIO_SetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);//置高IO口GPIO_ResetBits(GPIOA,GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);//置低IO口GPIO_WriteBit(GPIOA, GPIO_Pin_4, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4)));//翻转IO口GPIOA->ODR = 0X0010 ;//IO口直接赋值语句GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)(读取该口的电压值,相当于AVR的pin)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32基于固件库V3.5版本的工程模板建立
1、建立工程文件夹
2、Project->New uVision Project…,目录定位至工程文件夹,在工程文件夹下新建USER文件
夹(存放代码工程文件),命名工程,点击保存。

3、出现选择芯片界面(Select Device for Target ’Target 1’),由于开发板使用的是
STM32F103RCT6,选择对应芯片。

出现Manage Run-Time Environment对话框,在此可以添加自己需要的组件,从而方便构建开放环境,不过这里不用,直接点Cancel即可。

4、在工程文件夹下新建3个文件夹CORE,OBJ以及STM32F10x_FWLib。

CORE:存放核心文件和启动文件;
OBJ:存放编译过程文件以及hex文件;
STM32F10x_FWLib:存放ST官方提供的库函数源码文件。

USER:除用来放工程文件外,还用来存放主函数文件main.c,以及其他包括system_stm32f10x.c等等。

5、将官方的固件库包里的源码文件复制到工程目录文件夹下面。

打开官方固件库包,定位
到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver,将src,inc 文件夹复制到刚才建立的STM32F10x_FWLib文件夹下。

STM32F10x_StdPeriph_Driver:存放的是STM32固件库源码文件
inc:存放的是stm32f10x_xxx.h头文件
src:存放的是stm32f10x_xxx.c格式的固件库文件
每一个.c文件和一个相应的.h文件对应。

这里的文件也是固件库的核心文件,每个外设对应一组文件。

Libraries文件夹里面的文件在建立工程的时候都会使用到。

STM32F10x_FWLib里面的函数可以根据需要添加和删除,但是一定要注意在头文件stm32f10x_conf.h文件中注释掉删除的源文件对应的头文件,这里面的文件内容用户不需要修改。

src存放的是固件库的.c文件,inc存放的是对应的.h文件。

6、将官方的固件库包里相关的启动文件复制到工程目录CORE之下。

打开官方固件库包,
定位到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport,将core_cm3.c和core_cm3.h复制到CORE下面。

然后定位到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\star tup\arm,由于使用的芯片为大容量芯片,所以使用startup_stm32f10x_hd.s这个启动文件,将其复制到CORE下面。

Coresupport:core_cm3.c和core_cm3.h是CMSIS核心文件,提供进入Cortex-M3内核接口,这是ARM公司提供的,对所有Cortex-M3内核的芯片都一样。

用户永远都不需要修改这个文件。

arm:存放启动文件
startup_stm32f10x_ld.s:适用于小容量产品
startup_stm32f10x_md.s:适用于中等容量产品
startup_stm32f10x_hd.s:适用于大容量产品
启动文件主要是进行堆栈之类的初始化、中断向量表以及中断函数定义。

启动文件要引导进入main函数。

7、将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
下面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h复制到USER目录之下。

然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的四个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER 目录下。

STM32F10x:主要存放一些启动文件以及比较基础的寄存器定义以及中断向量定义的文件。

system_stm32f10x.c和system_stm32f10x.h:设置系统以及时钟总线,这里面有一
个非常重要的SystemInit()函数,这个函数在系统启动的时候都会调用,用来设置
系统的整个时钟系统。

stm32f10x.h:相当重要,只要做STM32开发,几乎时刻都要查看这个文件相关的
定义。

打开这个文件可以看到,里面非常多的结构体以及宏定义。

这个文件里面主
要是系统寄存器定义申明以及包装内存操作。

STM32F10x_StdPeriph_Template:存放工程模板
以上,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入到我们的工程中。

8、右键点击Target1,选择Manage Components,将Target的名字改为自己要建的工程名,
然后再Groups一栏删掉一个Source Group1,建立三个Groups:USER,CORE,FWLIB。

然后点击OK。

9、下面往Group里添加所需的文件。

一、选择FWLIB,然后点击右边的ADD Files,定位到刚才建立的目录
STM32F10x_FWLib\src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close。

对于我们写代码,如果只用到了其中的某个外设,就可以不用添加没有用到的外设的库文件。

例如只用GPIO,可以只用添加stm32f10x_gpio.c而其他的不用添加。

这里添加进来是为了后面方便,不用每次添加,当然这样的坏处是工程太大,编译起来速度慢,用户可以自行选择。

二、选择CORE,添加的文件为core_cm3.c,startup_stm32f10x_hd.s。

三、USER目录下要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c。

编译文件
10、选择编译中间文件编译后存放目录。

点击魔术棒,然后选择Output->Select folder for
objects…,然后选择目录为我们上面新建的OBJ目录。

11、告诉MDK,在哪些路径之下寻找需要的头文件,也就是头文件路径。

点击魔术棒,
选择c/c++选项卡,然后点击Include Paths右边的按钮,弹出Folder Setup对话框,然后将上面的3个目录添加进去(\USER,\CORE,\STM32F10x_FWLib\inc)。

12、因为3.5版本的库函数是在配置和选择外设的时候通过宏定义来选择的,所以我们
需要配置一个全局的宏定义变量。

定位至c/c++界面,然后在Define中填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”。

这样一个工程模板建立完毕。

下面还需要配置,让编译之后能够生成hex文件。

13、同样点击魔术棒,进入配置菜单,选择Output。

然后勾上下三个选项。

Create HEX file:编译生成hex文件
Brower Information:查看变量和函数定义
同时就是我们要选择生成的hex文件和项目中间文件放在哪个目录,点击“Select folder for Objects…”定位到上面建立的OBJ文件夹中。

此时,一个基于固件库V3.5的工程模板就建立了。

仿真
1、配置:魔术棒->Target,芯片型号和晶振频率8.0MHz
2、魔术棒->Debug,选择Use Simulator(使用软件仿真);Run to main()(跳过汇编代码,
直接跳转到main函数开始仿真)。

设置下方的:Dialog DLL分别为:DARMSTM.DLL和TARMSTM.DLL,Parameter均为:-pSTM32F103RC,用于设置支持STM32F103RC的软硬件仿真(即可以通过Peripherals选择对应外设的对话框观察仿真结果)。

3、点击(开始、停止仿真按钮),开始仿真。

STM32程序下载
1、配置:选择:编程后执行;编程前重装文件;DTR的低电平复位,RTS高电平进
BootLoader(也就是选项第四项,这里大家千万注意,很多用户都是这里没有选对);一般选择最高的波特率:460800,让mcuisp自动去同步。

相关文档
最新文档