STM32如何新建KEIL模板工程

STM32如何新建KEIL模板工程
STM32如何新建KEIL模板工程

7.1如何新建模板工程

大家拿ST官方提供的工程模板和市场上常见的一些工程模板进行对比分析。从各个模板的文件夹名,文件夹存放路径方面看,它们的区别是非常大的。可是从各个文件夹存放的文件来看的话,它们是大同小异的。只要了解各个文件夹存放的是什么文件,新建工程,就不会遇到什么困难。

我们以STM32神舟王407IGT开发板为例,给大家新建工程。

7.1.1获取ST库文件

在新建工程模板之前,我们首先需要获取到ST库的源码,可以在我们的光盘资料路径:“\神舟王407IGT光盘\STM32神舟王407IGT源代码”中找到。解压缩之后,可以看到该库的版本为1.3.0版本。

其中,真正的标准库函数就在Libraries文件夹中

ST库我们是从ST的官方网站下载。ST官网为我们提供许多的资料,建议对ST官网提供的资源进行了解,这个对我们的学习的大有裨益的。不过ST官网提供的资料,几乎都是英文的。

7.1.2新建工程

① 点击桌面Keilu Vision4图标,启动软件。如果是第一次使用的话会打开一个自带的工程文件,我们通过工具栏Project->Close Project选项把它关掉。

② 我们在桌面新建一个文件名为“STM32神舟开发板工程模板”的文件夹,在“STM32神舟开发板工程模板”文件夹中新建Libraries、Output、Project三个文件夹以及“删除MDK产生的过程文件.bat”文件、“readme.txt”文件。

其中,“readme.txt”文件是关于本工程的一些说明,可以不添加。“删除MDK产生的过程文件.bat”文件,顾名思义作用是删除MDK产生的过程文件。这个文件也可以不添加,添加的话,在我们提供的光盘资料的源码工程下可以找到。

③ 在MDK软件工具栏Project->New uVision4 Project…新建我们的工程文件,我们将新建的工程文件保存在桌面的\STM32神舟开发板工程模板\Project文件夹下,文件名取为

STM32-DEMO(英文DEMO的意思是例子),名字可以随便取,点击保存。

④下面我们接下来的窗口是让我们选择芯片公司跟芯片的型号,我们STM32神舟王407IGT 的板子用的主芯片是ST公司的STM32F407IGT6,有192KB SRAM,1M Flash,属于高集成度的芯片。按如下选择,点击“OK”即可。

⑤接下来的窗口问我们是否需要拷贝STM32的启动代码到工程文件中,这份启动代码在M3系列中都是适用的,一般情况下我们都点击是,但我们这里用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里我们点击否。

⑥此时我们的工程新建成功,如下图所示。但我们的工程中还没有任何文件,接下来我们需要在我们的工程中添加所需文件。

⑦往模板里添加库文件。我们从ST官网获取ST的库后,解压缩后将目录:\STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Libraries\STM32F4xx_StdPeriph_Driver下的CMSIS跟STM32F4xx_StdPeriph_Driver这两个文件夹拷贝到STM32神舟开发板模板工程\ Libraries文件夹中。

把标准库目录下的:

\STM32F4xx_DSP_StdPeriph_Lib_V1.3.0\Project\STM32F4xx_StdPeriph_Templates文件夹下的main.c、main.h、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h 拷贝到STM32神舟开发板模板工程\Project目录下。

注:stm32f4xx_it.c、和stm32f4xx_it.h这两个文件里面是中断函数,里面为空,并没有写任何的中断服务程序stm32f4xx_conf.h是用户需要配置的头文件,当我们需要用到芯片中的某部分外设的驱动时,我们只需要在该文件下将该驱动的头文件包含进来即可。

⑧回到我们刚刚新建的MDK工程中,把刚才的那些文件夹里面的内容添加进工程,这样我们在MDK工程里面就可以管理那些文件了。

● 将Target1下的子文件Source Group 1删除。将Target1的名称,双击改为“神舟王407IGT”。名称不改也是可以的,改只是为了便于顾名思义。

● 往工程里添加五个组,分别命名为User、STM32F4xx_StdPeriph_Driver、CMSIS、MDK_start_code、Doc。这些命名也是随意的,我们主要是要了解这些组包含什么文件。

User用来存放用户自定义的应用程序,STM32F4xx_StdPeriph_Driver用来存放库文件,CMSIS用来存放单片机通用的文件,MDK_start_code从名字就可以看得出我们是用它来放我们的启动代码的,Doc用来存放工程说明文件。

●接下来我们往我们这些新建的组中添加文件,双击哪个组就可以往哪个组里面添加文件。在User组里面添加main .c文件和stm32f4xx_it.c这2个文件。

●在StdPeriph_Driver组里面添加目录“\STM32神舟开发板工程模板\Libraries\STM32F4xx_StdPeriph_Driver\src”里面的全部驱动文件。

当然,src里面的驱动文件也可以需要哪个就添加哪个,这里将它们全部添加进去是为了后续开发的方便,况且我们可以通过配置stm32f4xx_conf.h 这个头文件来选择性添加,只有在stm32f4xx_conf.h文件中配置的文件才会被编译。

●在组CMSIS中添加目录“\STM32神舟开发板工程模板\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates”路径下添加system_stm32f4xx.c

文件。

system_stm32f4xx.c是ARM公司提供的符合CMSIS标准的库文件);注意,这些组里

面添加的都是汇编文件跟C文件,头文件是不需要添加的。

●在组MDK_start_code中添加目录“\STM32神舟开发板工程模板\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm”下的文件

startup_stm32f40xx.s。

● 在组Doc中添加目录“\STM32神舟开发板工程模板”下的readme文件。

到此文件添加结束,新建工程完成了大半。

⑨最后一步,配置MDK的配置选项。点击工具栏中的魔术棒按钮,即Target Option… 选项。在弹出的对话框的选项卡Target中,把Use MicroLIB 勾上。这是为后面串口可以使用Printf函数打印数据。

●配置Output选项卡。

们选择Output文件夹。

步骤2:把编译好的输出文件名定为STM32-DEMO

步骤3:把Create HEX FIV le这个选项框也选上,表示编译输出HEX文件

● 配置选项卡 C/C++。

步骤1:在Define 里面输入STM32F40XX, USE_STDPERIPH_DRIVER。

步骤2:将One ELF Section per Function选项勾上。

步骤3:在Include Paths栏中,添加库文件的搜索路径。

步骤1中,添加USE_STDPERIV PH_DRIV VER是为了屏蔽编译器的默认搜索路径,转而使用我们添加到工程中的ST的库,添加STM32F40XX是因为我们用的芯片是STM32F407IGT,添加了STM32F40XX这个宏之后,库文件里面为STM32F407IGT芯片定义的寄存器我们就可以用了。

步骤2中,将One ELF Section per Function选项勾上的目的是,使用软件编译代码时,对代码进行优化。

步骤3中,指定库文件的搜索路径,添加方式如下图:

添加的内容如下图:

注意:当编译器在我们指定的路径下搜索不到的话还是会回到标准目录去搜索,就像有些ANSIC C的库文件,如 stdin.h 、stdio.h。

⑩ 将stm32f4xx_it.c文件中的TimingDelay_Decrement()函数注销掉。

?将原来的main n.c函数中的代码删除,输入如下代码,并保存,然后编译代码

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

* 内容:STM32神舟开发板模板工程

* 作者:https://www.360docs.net/doc/2910141889.html,

* 版本:v1.0

* 日期:2013.1

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

int main(void)

{

}

编译结果如下图。

至此,我们的工程模板就建成了。学会新建工程,是学习stm32的第一步。

当然有一些工程,它包含更多的文件,搜索库的路径也会更多。大家对新建工程了解到一定程度之后,也就了解怎么新建更加复杂点的工程。

7.1.3使用JLIV NK V8仿真器硬件调试配置

在代码编译通过后,我们需要验证程序是否与我们的设计预期相符合,一般有几种方式来验证。

第一种,软件仿真。在没有硬件环境的情况下,我们可以使用MDK的软件仿真功能来对代码的功能进行初步验证。关于软件仿真功能的使用,在本文档中不在详细描述,有兴趣的朋友,可以常看MDK相关手册和说明文档。

第二种,在线仿真。如果硬件环境允许的情况下,建议使用在线仿真来进行调试,完全与实际应用相符。神舟王407IGT的实验程序使用JLINK仿真器仿真调试。

是一款主流的支持ARM内核芯片的JTAG仿真器,配合IAR,KEIL,WINARM, JLINK

RealView等集成开发环境,支持所有ARM7/ARM9/Cortex-M3内核芯片的仿真。在这里,我们以神舟王407IGT的入门程序为例,说明如何在MDK开发环境中,搭配JLINK 仿真器,在线仿真调试程序。

● 按下图,连接JLINK仿真器与神舟王407IGT开发板。并给神舟王407IGT上电。

这个工程默认的是软件仿真,如果开发板要用J-LINK 调试的话,还需要在开发环境中做如下修改。实际上,我们开发程序的时候80%都是在硬件上调试的。

● 具体配置如下图所示:点击“Target Options...”选项,弹出的对话框中选择,Debug选项里 。点上Use,在Use的方框中选择“J-LINK/J-Trace Cortex”。在Run to main 前面的打勾。

● 点击Debug选项卡里的Settings按钮,查看是否识别到了目标板CPU(注意,此处目标板应该上电,并将JLINK V8与模板连接好,JLINK V8也需要上电)

设置完成,点确定。

● 下面设置Utilities选项卡

下面的设置步骤如下图:

因为STM32F407IGT芯片的内部ROM大小是1M 点击“Add”后,一直选择“确定”,“OK”即可。

●编译全部代码,然后点LOAD下载程序到目标板

到了这里就算是大功告成了。

在完成以上操作以后,一个MDK工程就设置完成了,只需要依据实际应用要求编写相关

的代码即可。

keil工程文件的建立以及简单代码的编写

KEIL工程的建立以及简单程序的编写下载   相关软件及硬件实验平台 单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。这次教程开发程序所用到的软件为keil uVision2 下面分别介绍这keil uVision2和 实验板的使用方法,在程序编写完成后需把程序烧写到单片机中,我们是用ISP在线下载工具,这里一并进行介绍。 为了便于大家学习,这里我们写一个以1602液晶为显示器件的可显示时、分、秒的电子时钟程序为例介绍整体程序从编辑、编译到下载的全过程。(具休程序已事先写好并经正常调试无误,后面课程会具体介绍,这里暂不作讲解) 在正式的写程序之前,需进行keil uVision2软件的安装和实验板驱动程序的安装,相关的软件及驱动程序请大家直接在实验室网站下载中心进行下载,这里给出下载地址。keil uVision2软件件及安装方法、实验板驱动程序及安装方法。 安装安成后,即可按下面的步骤进行。 1、KEIL软件的使用及工程文件的建立 51单片机程序设计所用到的开发软件主要是keil uVision,它是由德国Keil Software公司开发的,2005 年Keil公司被ARM公司收购,并于2009年发布了keil uVision4,这个版本的软件支持ARM系列的芯片,如现目前流行的STM32等芯片 ,我们这里使用的是uVision2版本。 (1)、打开KEIL软件 双击keil快捷方式图标(软件安装好后,一般在桌面上会有快捷方式,双击即可),出现启动界面如图1,紧接着出现编辑界面如图2。 图1 启动keil软件时的界面

STM32建工程详细方法步骤

1、首先找到ST官方最新版本的固件库:STM32F10x_StdPeriph_Lib_V3.5.0 STM32F10x_StdPenph_Ub_V3.5. 0 文件实 2、新建一个工程文件夹:比如led工程文件夹 3、在led工程文件夹中新建 5个文件夹:COREHARDWARESTM32F10x_FWL、 SYSTEM USER COR用来存放启动文件等 HARDWARE来存放各种硬件驱动代码 STM32F10x FWLi文件夹顾名思义用来存放ST官方提供的库函数源码文件 SYSTEM文件夹下包含了delay、sys、usart等三个文件夹。分别包含了delay.c、sys.c、usart.c 及其头文件 delay.h、sys.h、usart.h

USER用来存放我们主函数文件 main.c ,以及其他包括system_stm32f10x.c 等 4、将固件库包里面相关的启动文件复制到我们的工程目录COR之下 打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下面,将文件core_cm3.c和文件core_cm3.h复制到COR下面去。然后定位到目录 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\S TM32F10x\startup\arm 下面,将里面 startup_stm32f10x_md.s、 startup_stm32f10x_ld.s 、startup_stm32f10x_hd 复制到 COREF面。这里我们解释一下,其实我们只用到 arm目录下面的startup_stm32f10x_md.s 文件,这个文件是针对中等容量芯片的启动文件。其他两个主要的为 startup_stm32f10x_ld.s 为小容量,startup_stm32f10x_hd.s 为大容量芯片的 启动文件。这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户。现在看看我们的CORE文件夹下面的文件:

一步步建立 STM32 UCOS 模板

uCOS学习随笔 StepbyStep‐1 ——构建模板(基于STM32控制的第四代圆梦小车) 一、序 基于第四代圆梦小车 —— FIRA 设计了一个使用STM32的控制板(详细介绍见项目中的说明: Introduction B ‐ Hardware of the Smart Car.pdf )。 既然硬件从51升级到ARM,软件也应该相应升级,似乎不能再编写那种简单的轮询调度程序,也应该相应升级到基于操作系统编程。 按STM32的规模和性能,以及小车的控制需求,实时多任务操作系统 uCOSII 应该是不二的选择,不论从其性能和功能考虑,还是从学习角度考虑,uCOSII 都很适合。 首先,它是开源的,有丰富的资源。 其次,它是可靠的,符合正式的工业控制、产品设计需求。 小车所面对的是那些学习相关专业的大学生,作为他们学习的辅助工具,趣味性只是为了降低学习的枯燥性,不是目的。他们借助这个平台是为了积攒应付未来工作的能力,所以,学习内容的实用性是必须考虑的。 本人从未基于操作系统编写嵌入式程序。 开始使用 MCU的时候,MCU的内存太小,256字节 RAM ,2K字节 ROM,能勉强把程序装入就不错了,连 C语言都不敢选择。 而且,那时好像也没有 RTOS(Real Time Operation System),或者是由于信息交流渠道匮乏,不知道有 RTOS。 既然我提供了这个平台,也借此机会尝试一下,和大家一起学习使用 uCOSII。(从单片机应用升级为嵌入式应用 ^_^)

二、Step1想要得到什么?(需求分析) 第一步我想得到的是: 1)如何建立一个基于 uCOSII 的编程环境(目录、文件组织); 2)如何基于IDE(IAR或RvMDK)建立一个工程,能够产生可以运行的程序; 3)得到一个“干净的”、可以作为模板的uCOSII程序组(Project); 4)通过上述过程初步理解在 uCOSII 下如何编写应用程序。 之所以要把“如何建立……”作为需求,而不是找一个现成的模板或示例程序修改、添加自己的功能,是因为看了许多这种程序,感觉“极不可靠”!因为程序中有太多的东西不知道为何而存在?不知道为何而被注释掉?似乎这些东西都像“定时炸弹”,早晚会给你的程序带来麻烦。 同时,也给自己理解程序的构成和运行机制带来困扰,既然是学习,就应该知其然、知其所以然,否则也谈不上“掌握”,更不敢在日后的工作中应用(如果是打工,也许还敢试试,如果是用自己的钱做产品、项目,我想你一定不敢用),如此则和做此事的初衷相悖了。 三、如何入手? uCOS的书有很多,也看了许多,但多数都是解析操作系统本身的,或者是如何移植,鲜有书籍、资料教你如何在操作系统下编程。 实际上,对于学习者,特别是初学者,更多需要的是学会如何在一个移植好的系统下编程,等到能基于操作系统实现自己的功能后,才会有心思去探究操作系统是如何在自己的 MCU上运行的(移植),以及那些神秘的系统功能是如何实现的(了解系统函数及运行机制)。 而且这种探究也是有选择性的,首先是自己用到的功能才有兴趣去研究,否则如坠云雾。其次,取决于自己所扮演的角色,如果只是学习一下,那只需泛泛了解,有个定性的认识即

STM32的Keil工程文件建立过程

固件库采用3.5.0版本 USE_STDPERIPH_DRIVER,STM32F10X_CL 1.首先建立工程文件,将固件库中的文件复制过来 建立工程文件夹project,包含文件夹 user:用户可自己修改的文件 CMSIS:Cortex-M3内核相关文件 startup:启动单片机的汇编文件 driver:外设操作的驱动文件 具体向工程文件夹中添加的文件为: 将路径:固件库文件夹\Project\STM32F10x_StdPeriph_Template中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h文件添加到user文件夹,再在其中建立一个main.c主文件 将路径:固件库文件夹\Libraries\CMSIS\CM3\CoreSupport中的core_cm3.c、core_cm3.h 文件,以及固件库文件夹\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h文件添加到CMSIS文件夹 将路径:固件库文件夹\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 中的startup_stm32f10x_cl.s(互联型启动文件)文件添加到startup文件夹 将路径:固件库文件夹\Libraries\STM32F10x_StdPeriph_Driver中的src和inc文件夹全部复制到driver文件夹

2.在Keil中建立工程并管理工程文件

STMv3.5固件库在keil4中建立工程的具体过程

首先建立一个文件夹用来装工程(文件夹名自定,笔者建立的文件名为“ggyy_Proj”文件夹)。 在“ggyy_Proj”文件夹下,建立两个文件夹“User”和“Project”。 将库文件STM32F10x_StdPeriph_Lib_V3.5.0下的“Libraries”文件夹全部拷入“ggyy_Proj”文件夹下。 将“ggyy_Proj”文件夹下的“Project”文件夹下建立三个文件夹“List”、“Obj”和“Pro”。其中Pro用来存放工程。 将“ggyy_Proj”文件夹下的“User”文件夹下建立两个文件夹“inc”和“src”。

然后将需要用到的文件拷贝到相应的文件夹中: 将以下5个.h文件考进ggyy_Proj下User下的inc文件夹中: ···ggyy_Proj\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h ···ggyy_Proj\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h \stm32f10x.h 固件库中: ·STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h \stm32f10x_it.h 将以下2个.c文件考进ggyy_Proj下User下的src文件夹中: 固件库中: ···STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c \main.c 现在打开keil,并点击在Project菜单栏下的New uVision Project…来新建工程。

STM32工程模板

你是问有官方固件库创建工程吧?我这里给你说说MDK的创建方法,如果你用的时IAR环境也差不多。 1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。最新标准库版本为3.5.0 2.创建一个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文件夹。

keil添加文件建立一个最简单工程

建立一个最简单工程-基于StdPeriph_Lib 第一步: 新建一个工程文件: 并选择CPU型号: 询问是否复制自带的启动文件,选择否即可,我们使用ST固件库中的.

第二步: 对源文件分组管理 新建三个组: user Libraries(ST固件库) CMSIS(CM系列通用库) 分组管理源文件可以使程序结构变成清晰

第三步: 开始添加源文件 User 目录添加main.c it.c(包含最基本的中断处理函数) Libraries 目录添加ST固件库的所有文件(可以只添加需要的,但一起添加比较省事,且链接时并不会链接不使用的函数,所以并不会使目标变大) CMSIS添加CMSIS中STM32需要的部分 Libraries/CMSIS/CM3/CoreSupport/core_cm3.c

Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/arm/startup_stm32f10x_hd.s (启动文件,但STM32各系列兼容性较好,如果不用特殊功能,各启动文件区别不大)

第四步: 设置项目的头文件搜索目录及目标输出目录 1.设置全局定义: USE_STDPERIPH_DRIVER 用来定义使用ST的固件库 STM32F10X_HD 设置目标芯片的类型 其它的有STM32F10X_MD和STM32F10X_CL有等.与启动文件对应. 同时勾上one elf section per function,即相同的段只链接一次.然后开始设置头文件搜寻目录.

GD32 Keil5工程创建步骤

第一步:安装DFP软件包 (1)按照Keil uVision5, 步骤略。我的keil版本如下: (2)下载GD3210X的DFP软件包。 下载地址: 插件包下载完成后,有3个文件。 (3)安装DFP软件包。双击.pack文件进行安装,如下图所示:

点击next,将包文件复制到上面的路径位置。如下图: GigaDevice文件夹就是安装好的软件包。 第二步:创建Keil工程 (1)通常要新建3个文件夹。如下图所示: (2)打开keil5,新建project.将工程文件放到Mdk-Arm目录下面。弹出器件选择界面:在Device下拉框,选择Software Packs,选择GD32F103RB,点击OK

接着弹出Mannage RTM界面,选中CMSIS的CORE和设备外围库文件,如下所示: 点击OK,CMSIS工具自动添加库文件到./Mdk-Arm/RTE目录中,工程目录如下所示:

(3)在Keil5中,打开文件管理界面: 依次创建文件组:Application/Utilites/Documents (4)将main.c gd32f10x_it.c sysstick.c相关文件拷贝到userr文件夹,并添加到Application 文件组中。 (5)设置编译的头文件目录:将DFP包的CMSIS相关头文件路径都加进去,将 RTE_Components.h配置头文件路径加进去。如下图所示:

Main文件内容如下: 注意: (1)此项目是用MDK CMSIS配置工具建立的,CMSIS配置工具会自动将选用的标准库源码的C文件从Kiel5的DFP包标准库目录下拷贝到当前的项目中:./Mdk-Arm/RTE路径下,但是没有将头文件拷贝过来。所以此项目的编译依赖实际的Keil5安装环境:没有安装DFP包或头文件目录跟工程设置的包含路径不对应的话,就会出现编译失败。也就是说,将一个项目拷贝到另一台电脑时,编译可能失败。 (2)main.c/systick.c和gd32f10x_it.c是从例程中拷贝过来的. (3)头文件的前面出现感叹号,表示没有正确的引用。 (4)也可以不用MDK CMSIS配置工具,手动拷贝相应的CMSIS库文件,进入DFP软件包目录下,将GD32F10x_DFP文件夹整体拷贝到过来。再将 C:\Keil_v5\ARM\PACK\ARM\CMSIS\4.5.0\CMSIS目录下的Include目录拷贝过来。再将启动文件也拷贝过来,(注:位置应该是GD32F10x_DFP\2.0.0\Device\Source\ARM, 此处我选的MCU 是GD32F103RB,所以用md.s),将其拷贝到过来。手动拷贝库文件建立工程的方法跟用CMSIS 配置工具建立工程的方法大同小异,只是工程里面添加了标准库文件之后,记得要手动配置对应的头文件。而借助CMSIS工具,则会自动通过更改RTE_Components.h文件实现。

STM32工程建立(F4系列)

使用MDK(Keil)建立一个STM32工程模板的流程如图所示: 一.获取ST库源码。到ST公司的官网进行查找并下载,如图所示: 1.新建工程文件夹——《STM32工程模板》。首先,新建工程文件夹《STM32工程模板》,然后再在该文件夹下新建6个文件夹,分 别:《Doc》、《BSP 》、《Listing》、《Output》、《Project》和《User》。其中, 2.《Doc》用于存放各种说明文档; 《BSP 》用于存放各种库文件; 《Listing》用于存放编译时产生的中间文件; 《Output》用于存放生成的下载所需的文件; 《Project》用于存放工程文件; 《User》用于存放用户文件,即我们自己编写的各种源文件。具体情况如下图所示: 具体步骤,以KEIL5 MDK5.18中建立STM32F417工程为例: 二.STM32工程建立(F4系列) 2016年4月13日16:57

将下载的stm32f4_dsp_stdperiph_lib_zip 压缩包中的文件复制到工程模板文件 夹下的STM32F4XX_StdPeriph_Driver 文件夹。如下图: 1)将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1 \Libraries\CMSIS\Include 文件夹中对应的core_cm 文件复制到工程模板文件夹下的CMSIS文件夹。具体操作情况如下图: 2)向建立的工程文件夹中添加库文件。 3.

将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1 \Libraries\CMSIS\Device\ST\STM32F4xx\Include 文件夹中文件复制到工程模板文件夹下的CMSIS 文件夹。具体操作情况如下图: 3)将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1 \Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 文件夹中对应芯片的startup 文件复制到工程模板文件夹下的CMSIS 文件夹。具体操作情况如下图: 4)将库文件中Project文件夹下的相关文件复制到工程模板文件夹下的User文件 夹中。具体操作情况如下图: 5)

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了

Keil4 建立STM32工程详解

Keil4 建立STM32工程详解 1:安装mdk412,用注册机注册,这个过程不详细叙述了。 2:在本地某个路径下建立STM32工程文件夹,命名:my_STM32,并在my_STM32下建立rvmdk文件夹,并在rvmdk文件夹内建立 obj,list两个文件夹。 3: 打开Keil4. 4: 选择Project菜单->New uVision Project...,选择.../my_STM32/rvmdk文件夹的路径,并命名工程文件:my_STM32,回车 5:选择器件名称,见图1

图1 单击OK。 6:如图2所示:选择否,不添加Startup.s,以后自己添加。 图2 7:如图3,建立几个Group:startup(即将装入启动文件等),usr(即将装入应用程序文件),FWlib(即将装入库文件的.c文件),doc(即将装入说明文档)

图3 8:右键单击FWlib,Add Files to Group 'FWlib',选择库文件的路径下的src 文件内的所有文件,并点击Add,如图4所示:

图4 9:将cortexm3_macro.s,stm32f10x_vector.s,stm32f10x_it.c, stm32f10x_it.h,stm32f10x_conf.h,main.c,readme.txt拷贝到my_STM32文件夹内。 10:右键单击usr,Add Files to Group 'usr',选择main.c,stm32f10x_it.c,stm32f10x_it.h,stm32f10x_conf.h,并Add,如图5所示

用KEIL5新建工程模版

第1章用KEIL5新建工程模版 版本说明:MDK5.15 1.1新建工程 1.1.1新建本地工程文件夹 为了工程目录更加清晰,我们在本地电脑上新建6个文件夹,具体如下: 表格1工程目录文件夹清单 名称作用 Doc用来放对程序说明的文件,由写程序的人添加 Libraries存放是库文件 Listing存放编译器编译时候产生的c/汇编/链接的列表清单Output存放编译产生的调试信息、hex文件、预览信息、封装库等Project用来存放工程 User用户编写的驱动文件 图10工程文件夹目录 在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下: 表格2工程目录文件夹内容清单 名称作用 Doc readme.txt Libraries CMSIS:里面放着跟CM3内核有关的库文件

FWlib:STM32外设库文件 Listing暂时为空 Output暂时为空 Project暂时为空 User stm32f10x_conf.h:用来配置库的头文件 stm32f10x_it.h stm32f10x_it.c:中断相关的函数都在这个文件编写,暂时为空 main.c:main函数文件 1.1.2新建工程 打开KEIL5,新建一个工程,工程名根据喜好命名,我这里取LED-LIB,保存在Project\RVMDK(uv4)文件夹下。 1.选择CPU型号 这个根据你开发板使用的CPU具体的型号来选择,MINI选STM32F103VE,ISO选STM32F103ZE。如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加device库,KEI5不像KEIL4那样自带了很多MCU的型号,KEIL5需要自己添加,关于如何添加请参考《如何安装KEIL5》这一章。

keil_MDK建立工程步骤方法

KEIL工程建立步骤点击Next,勾选安装协议:

下一步,选择安装路径(笔者因硬盘空间不足安装在E盘,但若读者硬盘资源充裕,则建议安装在C盘,跑起来快些): 下一步,填写用户信息,个人用户随意填入即可:

点击Next 就进入实质的安装过程啦,Wait for a Whle…… 很快安装完毕,看到2 个可选项: 1、保持当前uVision 的设置。 2、载入以下选择的工程实例,默认即可。

点击Next,来到最后一个安装界面: 1.是否安装ULINK Pro Driver V1.0驱动? 2.是否显示软件发布说明? 读者可以按照自己的需求勾选。 点击Finish,KEIL MDK就完成安装了,可以发现桌面上生成了名为“Keil uVision4”的可执行文件快捷方式。双击“Keil uVision4”图标打开Keil uVision4开发环境,此时Keil uVision4会自动载入一个工程项目(依安装的倒数第二步勾选而定),我们就此可以简单地看看KEIL MDK 的用户界面。

如图所示,KEIL MDK的基本用户界面也是很简洁的,也是由一些菜单栏,工具栏,状态栏等区域构成。当然KEIL MDK的软件界面远远不止这么简单,读者可以在日后漫长的工程师生涯逐一熟悉。 至此,KEIL MDK的安装工作已经完毕了。接下来我们要开始建立我们的第一个工程。在开始之前,请读者先从网上获取ST公司提供的STM32固件库“stm32f10x_fw_archive v2.0 (May 2009)”,然后将其解压。 首先请读者在任意一个地方建立一个空文件夹,并将其命名为“STM32_FW”。然后在STM32_FW 里新建6个文件夹,分别命名为“boot”、“library”、“src”、“obj”、“list”、“library”。 如下图所示: 接下来请执行如下操作:

STM32单片机实习,第一课,工程模板建立篇

第一天学习笔记 序号:06 班级:232183 姓名:王猛一、实训项目 基于STM32的智能小车。 二、基本原理 1、嵌入式与STM32 A.什么是嵌入式? 简单的说,除了PC和服务器之外,所有的控制类设备都是嵌入式。 B.嵌入式的特点 硬件特点: ◆体积小、集成效率高; ◆面向特定的应用; ◆功耗低、电磁兼容性好; 如图:

软件特点: 嵌入式软件的开发和硬件紧密相连;

?软件代码效率高并且可靠性好; ?软件一般固化在FLASH和ROM中; ?软件系统要有高实时性; ?一般用c语言开发; 如图: C.主流嵌入式芯片的架构 ARM————英国的一家公司(只设计芯片的IP内核,授权给其他半导体公司)ARM————是一款功耗很低、性能很高的处理器芯片的架构; ARM以前的架构:ARM7、ARM9、ARM11(已经不用); ARM现在的架构:cortex A\R\M; Cortex A系列:开放式操作系统的高处理器(A8\A9\A53\A72); 应用产品:上网本、数字电视、家用网关等

Cortex R系列:面向实时应用; 应用产品:汽车制动系统、航空、动力传输系统等;

Cortex M系列:面向确定性的成本敏感的产品; 应用产品:门禁、扫地机器人、平衡车、无人机、手环等;

D.C51和STM32 51单片机是嵌入式学习中的一款入门级MCU,51单片机诞生于70年代,属于传统的8位单片机,51单片机不能满足市场需求,所以需要新的MCU,也就是STM32; ARM公司推出了基于ARMv7架构的32位的cortex M3\M4的微控制器内核,ST(意法半导体)公司就推出了基于cortex M3\M4内核的MCU,也就是STM32,性价比很高,成本低,简单易用的库函数开发。 E.STM32的应用领域 STM32属于微控制器,自带了很多常用的通信接口(UART\IIC\SPI),可以接非常多的传感器,可以控制很多的设备。 如:无人机、平衡车、智能水杯等

Keil 工程文件的建立

Keil 工程文件的建立、设置与目标文件的获得 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 我们将通过一些实例来学习 Keil 软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图 1 所示电路图使用89C51 单片机作为主芯片,这种单片机性属于 MCS-51 系列,其内部有 4K 的 FLASH ROM,可以反复擦写,非常适于做实验。89C51 的 P1 引脚上接 8 个发光二极管,P3.2~P3.4 引脚上接 4 个按钮开关,我们的第一个任务是让接在 P1 引脚上的发光二极管依次循环点亮。 一、Keil 工程的建立 首先启动 Keil 软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击 uVision 的图标以启动该软件。 UVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有 3 个标签,分别是Files、Regs、和 Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选 CPU 的附加说明文件,如果是第一次启动 Keil,那么这三个标签页全是空的。 1、源文件的建立 使用菜单“File->New ”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入以下汇编语言源程序,例 1:

keil编程步骤

-、双击打开keil编程软件,图标如下图所示 二、新建工程:在“菜单栏”-“Project”-“New”-“μvision Project”-输入要保存的工程名。

根据单片机的型号选择CPU,然后点击“确定”。 选择“否”。 三、新建文件 点击新建文件。 四、保存文件 注意:文件名要带扩展名。用C语言编写的程序,扩展名为“.c”;用汇编语言编写的程序,扩展名为“.asm”。点击“保存”。

五、添加文件到工程 在工程管理器中,用鼠标右键点击“Source Group 1”,选择“Add File to Group ‘Source Groutp 1’”,如果要添加的文件是汇编文件,文件类型选择如下图所示的类型;如果是C语言文件,文件类型选择“*.c”。双击要添加文件,然后点击”close”。

在工程管理器中,可以看到刚刚添加的文件 六、编写程序 七、编译当前文件 点击按钮 八、修改错误 根据输出框里的提示信息修改程序中的错误 九、生成烧录文件 在工程管理器中,鼠标右键单击,按下图操作。

将“create HEX file”前复选框前选上。“02”是文件名,可以改成其他的名,文件名前“select folder for objects”是此文件要保存的位置,默认情况下和当前工程保存在同一目录下,如果要保存在其他位置,可以点击此外进行修改。 点击编译工程图标,在输出框里会有提示信息 ,说明生成了hex文件。注意:必须在编译当前 文件没有错误的情况下才能生成hex文件。 十、将程序下载到单片机

双击烧录软件图标,打开软件。按下图所示设置“编程器及接口”、“编程”。“选择芯片”:根据你当前的单片机选择型号。 点击图标, 找到生成的HEX文件打开。点击图标,将程序烧录到单片机。

(仅供参考)STM32F105RBT6最小系统原理及工程的建立

市面上的许多stm32开发板都是使用ULINK2作为调试仿真工具,鉴于ULINK2所需引脚过多在学习时还可以,但应用于实际电路设计生产会造成许多硬件资源的浪费。鉴于此,本人经实验得出利用ST-LINK作为仿真下载工具的实验最小系统电路。希望给大家作为参考。 一、最小系统原理图 二、建立工程的步骤 1、先在一个文件夹内建6个子文件夹: DOC:放说明文件 Libraries:放库文件(CMSIS、FWlib) Listing:放编译器的中间文件 Output:放编译器的输出文件 Project:放项目工程 User:放自己编写的程序、main、stm32f10x_conf、stm32f10x_it.C、stm32f10x_it.h

2、双击桌面UV4图标启动软件,,---NWE uVision Project--选择保存地方----选择芯片型号------在左边处建立5个GOP(STARTUP放启动文件)、(CMSIS放内核文件)、(FWLIB放库里面的src的.C文件)、(USER 放自己写的程序文件及stm32f10x_conf.h、stm32f10x_it.h、stm32f10x_it.c、main.c)

3、将Output重置到一开始时所建的“Output”文件夹中。 4、将Listing重置到一开始时所建的“Listing”文件夹中。 5、在C、C++处的“Define”输入:STM32F10X_HD,USE_STDPERIPH_DRIVER。对于不同的芯片容量,可对HD进行更改(LD、MD、HD、XL、XC)。然后在“Include Paths”处指定相关的搜库位置。 6、Debug处选好下载器

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

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:设置系统以及时钟总线,这里面有一

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目录下直接将Sta rtu p文件剪切出来,放在Libraries目录下,其他的不需要动。里面存放的就是重要的系统文件,先不要理会是什么作用吧,慢慢就明白了。 Startup 就是从上面粘贴来的。我们要用的比如是:STM32F103VC,只要把startup\arm目录下的startup_stm32f10x_hd.s文件剪切出来,放到Startup 下面就好。Startup只要这个文件,

相关文档
最新文档