使用STM32库建立keil_工程详细步骤
- 格式:pdf
- 大小:508.22 KB
- 文档页数:15
此篇根据个人的mdk4.5+JlinkV8使用状况,来写的日记,我只捡一些个人碰到的一些大众化的问题来说,其他的我就贴图了(也会简单说一下),高手可以掠过。
呵呵1新建工程,和增加源代码a.创建工程:点上述的按钮后,自己输入自己的工程名称,选择路径,然后保存.b.增加一个Groupc.增加源文件:1.自己编写的源文件:File New ,Ctrl+s ,输入源文件名, 选择路径,然后保存2.复制已有的源文件到一个文件夹下,然后如下图所示, 把所有源文件增加进来.(个人比较懒,实验工程,所以就一个group把所有的源码全加进来了。
)增加所有源文件后的界面2 keil4设置,我把我的设置全部贴图,我自己碰到的问题,会提出来说下。
a.点击target option按钮,进入设置界面图1. device(我的是STM32F103ZET6芯片)图2 Target上述的注意的几个地方:Xtal :( 我用的是8M晶振)System_V iew File:根据我之前的情况来看,只要其他的选好了,keil是可以自行增加的,这里关注下,我的是手动添加的(这里用的是绝对路径,至少我尝试是无法设置成相对路径的)。
这个文件大家可以在..\Keil\ARM\SFD\文件夹下找到相应的文件ROM和RAM的设置:各自根据自己的实际情况来设置3.Output选项卡需要选中debug information,Browse information (碰到在C中无法增加断点的情况,个人误打误撞选中这两个后就可以了,后来实验过取消和增加确实和能不能增加断点有关系,还是建议勾选上)4.Listing选项卡和User选项卡,ASM选项卡我没有做任何更改,就略过.(如果用汇编的话,应该要设置的吧)5.C/C++选项卡我只修改了Inlcude Path 选项卡(包含的头文件路径)a.使用绝对路径。
点击右侧小按钮,然后挨个挨个找吧(不方便移植)。
Keil建立STM32工程1.在项目根目录下新建文件夹User存放用户代码,新建文件夹project存放keil工程。
拷贝stm32的固件库library文件夹到当前目录,在project目录下新建目录List, Obj。
拷贝用户代码到User目录下。
2.打开KEIL软件,project -> New uVision Project 选择project路径,输入工程名3.选择器件是否加载软件自带的启动文件,选择否(后面手动添加)4.重命名工程名,选中按F2改成Barcode_MCU5.选中工程右击,点击add group…, 然后重命名,一共建立4个组,如图6.选中User,右击Add Files to Groups “Users”,弹出框中选择User目录下的用户代码到User组。
同理,添加汇编启动代码Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s 到RVMDK组中,这里有三个启动代码分别对应stm32的三种类别的芯片:小容量产品:startup_stm32f10x_ld.s 16 k ~ 32 k 闪存中容量产品:startup_stm32f10x_md.s 64 k ~128 k 闪存大容量产品:startup_stm32f10x_hd.s 256 k ~ 512 k 闪存我们选择对应的中容量芯片。
在StdPeriph_Driver组,从目录Libraries\STM32F10x_StdPeriph_Driver\src下添加外设驱动代码,这个目录下包括了STM32芯片支持的所有外设驱动代码,我们只需要选择我们需要的外设驱动即可。
在CMSIS组,从目录Libraries\CMSIS\CM3\CoreSupport以及目录Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下添加ARM内核驱动代码最后的工程代码如图所示:7.配置编译选项Output 选项:点select Folder for Objects…, 选择编译的目标文件的存放位置,选择\project\Obj,点OK; 其次,勾选Create HEX File 和Browse information,前者表示程序编译后产生HEX代码供下载用,后者用于调试,比如某个函数或者变量可以通过右击选择跳转到函数定义处。
手把手教你STM32F103ZE新建keil工程接下来我将手把手的教您新建一个基于V3.5版本固件库的STM32F1工程模板。
步骤如下:1)在建立工程之前,我们先在电脑的某个目录下建立文件夹(我建在了桌面),后面所建立的工程都可以放在这个文件夹下面,这里我们建立一个文件夹为test。
2)点击MDK的菜单:Project→New Uvision Project,然后将目录定位到刚才建立的文件夹test之下,在这个目录下建立子文件夹USER(我们的代码工程文件都是放在USER目录,很多人喜欢新建“”Project“”目录下面,这也是可以的,这个就看个人喜好了),然后定位到USER目录下,我们的工程文件就都保存到USER文件夹下面。
工程命名为test,点击保存。
图1新建工程图2定义工程名称接下来会出现一个选择CPU的界面,就是选择我们的芯片型号。
如图3所示,这里我们选择STM32F103ZET6,操作:STMicroeletronics→STM32F1 Series→STM32F103→STM32F103ZET6(如果使用的是其他系列的芯片,选择相应的型号就可以了,特别注意:一定要安装对应的器件pack才会显示内容哦~)图3选择芯片型号3)点击OK,MDK会弹出Manage Run-Time Environment 对话框,如图4:图4Manage Run-Time Environment 界面这是MDK5新增的一个功能,,在这个界面,我们可以添加自己需要的组件,从而方便构建开发环境,不过这里我们不做介绍。
所以在图 4 所示界面,我们直接点击Cancel,即可,得到如图5所示的界面:图5工程初步建立到这里,我们还只是建了一个框架,还需要添加启动代码,以及.c 文件等。
4)现在我们看看USER 目录下面包含2 个文件,如下图6 所示:图6工程USER目录文件这里我们说明一下,Template.uvprojx 是工程文件,非常关键,不能轻易删除。
今天外我来教大家来怎么使用这个建工程的利器吧。
首先是新建工程吧,如下图步骤:因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图:红色框里的都是一些集成在keil 5的启动文件,arm内核的文件,st公司的库函数和一些API等等。
一个工程最起码也要选上core和startup两个选项,如下图:然后选择OK,就建好了空白的工程。
然后就要对工程做一些设置,如下图:然后在你工程的路径新建一个USE(这个大家可以随便建个文件,不一定是USE 名字的)的文件夹,然后在里面新建一个main.c的文件,如下图:然后新建的文件main.c添加到工程当中,步骤如下:然后在main.c文件中添加如下代码:到这里我们的空白工程建好了,后面我来教大家怎样加keil 5里自带的st库。
首先我点击那个绿色的小图标,如下图:点击后会弹出一个大的页面,然后找到Device->StdPeriph Drivers。
如下图:点开StdPeriph Drivers选项的加号图标,就可以看到st库目录下各外设的驱动文件,后面是他的版本说明,这是V1.3版本的,是比较新的,建议大家尽量使用新的库。
我这里就勾上了所有外设的驱动的文件,如下图:然后点击OK后,就可以看到原先工程目录下的Device添加了刚才选择外设的驱动文件。
添加完后大家不要急着编译工程,还有对工程进行相关的配置,否则如下图,编译不成功的:接下来,我来配置下工程,右击target,然后进入配置工程的面板,步骤如下:这里要填上USE_STDPERIPH_DRIVER,这就是表明编译器选择了st的库然后我们来指定编译器头文件的路径以上这两个路径是编译器编译时要找的路径,这几个头文件至关重要,这里编译器关联头文件所需要的。
当做完以上工作后,我们就可以来编译一下工程,在编译时,编译器就会根据我们的配置来编译驱动头文件和驱动的C文件。
在Keil环境下建立STM32工程一、下载ST外设库解压从ST官网下载的外设库选择一个目录建立一个文件夹Template,将刚解压文件夹中的Libraries文件夹复制到Template文件夹中,再在Template文件夹下新建四个空文件夹待用,分别为List、Obj、Project、User。
其中,User用于存放用户自定义子程序,Project用于存放建立工程时的相关文件,Obj 用于存放编译时产生的对象文件,List用于存放编译时产生的list文件和map文件。
将刚解压的StdPeriph_Lib_V3.5.0→Project→Template中的main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h四个文件复制到User文件夹下。
二、建立工程建立工程,保存在Project文件夹下,工程名按需要选取,然后选择芯片型号。
单击OK按钮,并在弹出的对话框中选择否。
在Target1上右击,选择Manage Components,如图所示对工程改名并建立四个组:首先在Groups单击选中User,在Files中单击Add Files,选择路径找到前面建立的User 文件夹,添加User中的main.c和stm32f10x_it.c。
然后在Lib中添加库文件,在路径Libraries→STM32F10x_StdPeriph_Driver→src,添加stm32f10x_gpio.c,stm32f10x_rcc.c两个文件(视具体问题而定)。
之后,在CMSIS中添加与stm32内核相关的文件,按如图所示路径添加core_cm3.c,再按如图所示路径添加system_stm32f10x.c,最后添加启动文件,按如图所示路径,添加startup_stm32f10x_md.s文件,如果是大容量flash(512KB),则选择hd,中容量(128KB或64KB),则选择md。
如何使用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 下面就好。
Keil MDK下配置stm32库开发环境(包括J-Link调试环境设置)准备:1.stm32官方固件库2.Keil MDK一、建立stm32工程当出现提示是否要添加启动文件时,选择否(因为在官方固件库中包含有启动文件)工程建立完成!二、添加官方固件库右键工程目录,选择Manage Components..第一栏表示工程名称,第二栏表示工程包含的文件夹,第三栏表示各个文件夹中包含的文件通过Add Files将固件库中的文件添加进工程中,添加过后如下这么整理是为了让工程开起来层次清晰,对于工程编译没有影响,也就是说即使工程里文件不是按照目录这么整理的,也可以正常编译,只是习惯上如此整理。
三、工程设置右键工程,选择Options for Target…需要设置的有C/C++标签页中的Include Paths,如下:点击最右边的三个点按钮,这里设置的意思是把整个工程中所有.h文件所在的目录添加进来,只有这样,编译器在编译程序时才会从这些路径中寻找头文件。
点击这个方框按钮,添加目录,本例中将./sys ./inc ./src ./usr都添加进来四、J-Link调试器在keil中的设置接着第三步,在Debug标签中选择J-Link调试器选择完成后,点击右侧Setting按钮,如下:提示:必须正确连接J-Link后才会显示这样选择Flash Downlade标签页,点击Add按钮,将对应CPU型号的flash点击ok在Utilities标签页中,选择J-Link后点击ok即完成所有工程设置在main.c中写入main函数后编译未提示错误可以直接使用下图中红色标记按钮直接下载程序,不用再打开J-Flash下载程序了。
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文件夹。