怎么在keil里建立头文件

怎么在keil里建立头文件
怎么在keil里建立头文件

如何在KEIL中编写模块化的C程序

默认分类2010-11-24 13:20:59 阅读43 评论1 字号:大中小订阅

在KEIL中的模块化程序写法在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写。这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问题的。但是当程序很长的时候,比如你要用到LCD显示数据,就有几个LCD相关的函数,然后你想在LCD上显示温度,那么就要有DS18B20相关的操作,这又有几个相关的函数,如果你还想加上去DS1302的时间显示功能,那么又要多很多函数。这样的话一个程序下来几百行是很正常的事情,对于自己写的程序可能在自己的脑海中比较清晰,不会太乱,但是当把自己写的程序交给别人来看的时候,别人往往会看的云里雾里,经常会看着看着就不知道你写的是什么了。

如果大家写过类似电子钟这样的比较长的程序的话,肯定在网上下载过相关的程序看过,有没有觉得别人的程序看起来让自己觉得很郁闷呢?呵呵。现在我们来介绍一种在KEIL中C语言的模块写法。这样的写法其实也是很好用的,一些稍长的程序中经常见到。结构如下图所示:

是不是看起来不陌生?这就对了。其实如果学过PC机的C语言的话,对多文件的编译比较熟悉那么这个就不是什么问题了,因为这基本上是相同的。如果您是高手对此很熟悉的话,那么请略过本文;如果您是对此不是很熟悉并对此有点兴趣,那么本文或许对您有所帮助。如果在本文中有讲的不对的地方请跟帖提出。或者在我的主页给我留言进行交流。

因为这个教程不大容易用文字的形式来讲清楚,如果用视频来做的话效果应该好的多,但是俺没这个条件(俺普通话不好怕吓到大家,哈哈)。可能一帖会写不完,另外打字是件很痛苦的事情,所以这个请见谅。下面正式开始。

我们主的目的是学习模块化的写法,所以功能是次要的,熟悉了这个写法以后功能是大家自己控制的,我们现在将以LED灯的控制为例子讲起。

这样,我们先建立三个.c的文件,分别命名为main.c、delay.c和led_on.c,并将在建立文件的时候尽量做到看到文件名即能看出程序的功能,这样的话比较直观,不容易混乱。然后将这三个文件都添加进工程。(这个不能不会吧?)

在delay.c中我们加入如下代码:

void delay1s()

{

unsigned int m,n;

for(m=1000;m>0;m--)

for(n=20;n>0;n--);

}

当然这个延时函数的实际延时时间并不是一秒,我们暂且不用管它,知道他是起延时作用的就可以了。

在led_on.c这个文件中我们加入如下代码:

void led_on()

{

P0=0x00;

delay1s();

P0=0xff;

delay1s();

}

然后在main.c函数中我们添加如下代码:

void main()

{

led_on();

}

这个程序的功能简单的很,就是实现LED的闪烁。

下面问题来了,就是如何将这三个C文件关联起来。

其实在单个.c文件的程序中,我们在写程序的时候第一件事就是写上#include ,如果你是一个好学者,你一定问过为什么要这样写一句话,要是你上过辅导班,老师一定跟你讲reg52.h是头文件,这句话的作用的把头文件包含进来。当然这是很正确的,你可以打开reg52.h ,看一下里面的内容,里面包含了关于51单片机的一些定义,如果在这个文件中遗漏的东西可以使用命令sfr来在C文件中定义,如在STC89C52 中实用扩展RAM的时候会用到一个寄存器你可以添加到这个文件中或者在C文件中用sfr定义。进一步想一下,一个包含命令可以把一个文件包含进来,那么用不同的头文件包含不就可以把更多的文件包含进来了吗?是不是有点思路了?

先讲到这里,下次看一下具体如何将三

个文件关联起来。

我们现在讨论一下如何将三个c文件关联起来,在单文档的程序中我们使用#include这个命令将单片机的头文件与我们的程序关联起来。同理我们也将以头文件的形式把我们建立的源程序关联起来。

首先,我们需要一个新文档,这个文档的建立有两种方法(以delay1s函数为例)。第一种,在工程目录下建立一个delay1s.txt然后将其改名为delay1s.h。因为都是同编码的所以不会出现乱码,然后在工程中将其打开。第二种方法是直接在工程中新建一个文档,然后保存的时候将名字保存为delay1s.h即可。如果是需要添加很多文件的话建议使用第一种方法,这是个人建议。其次,我们需要编写delay1s.h这个文件的内容,其内容如下:

#ifndef _DELAY1S_H_

#define _DELAY1S_H_

void delay1s();//延时函数

#endif

这个是头文件的定义,作用是声明了delay1s()函数,因为如果在别的函数中如果我们需要用到delay1s()函数的话,若不事先声明则在编译的时候会出错。对于#ifndef……#define……#end if;这个结构大概的意思就是说如果没有定义(宏定义)一个字符串,那么我们就定义它,然后执行后面的语句,如果定义过了那么就跳过不执行任何语句。

关于为什么要使用这么一个定义方法,比如在led_on()函数中我们调用了delay1s()函数,然后在main()函数中我们也调用了delay()函数,那么,在led_on()函数中我就就要包含头文件delay1s.h,然后在main()函数中也要包含delay1s.h,若主函数中我们调用过led_on(),那么在编译的时候,遇到delay1s()和led_on()的时候就会对delay1s.h进行两次解释,那么就会出现错误。若有以上预处理命令的话,那么在第二次的时候这个_DELAY1S_H_已经被定义过了,那么就不会出现重复定义的问题。这就是它的作用。但是注意,在编译器进行编译的时候头文件不参与编译。

再次,我们建立一个led_on.h,起代码内容如下:

#ifndef _LED_ON_H_

#define _LED_ON_H_

void led_on();//灯闪烁

#endif

作用同delay1s.h,不理解的话可以再看一下上面的解释。

最后,将我们上次说的三个函数补充完整。

在led_on()函数中,我们用到了51单片机的一些寄存器的定义,所以我们要包含reg52.h,而且我们用到了delay1s()函数,所以我们要包含delay1s.h,故led_on()函数的代码如下:

#include

#include “delay1s.h” //注意这里没有分号

void led_on()

{

P0=0x00;

delay1s();

P0=0xff;

delay1s();

}

Main函数的代码如下:

#include

#include “delay1s.h”

void main()

{

led_on();

delay1s();//在这里其实只有第一句就可以了,这句是不必要的

led_on();//这也是不必要的

}

在这个函数中,为了再次说明一下#ifndef……#define……#endif这个结构的定义,大家可以把所有的.h文件中的这个结构去掉,然后编译一下看一下效果。

到这里相信大家对于这种模块化的写法就有大概的了解了,如果我们想添加新功能的时候,比如我们要添加一个流水灯的功能,那么,我们只需要增加一个led_circle.c和led_circle.h,然后按照上述步骤添加进工程即可,程序的其他部分不需要任何改动。显然这是很方便的。其实函数的声明可以使用extern关键字,C语言中默认都是这个类型的,所以可以不用写。

如果还有说的不清楚的请提出来,我们一起讨论。由于这些东西都是手动输入的所以难免会有错误,如果各位朋友在看这个教程的时候发现有哪里表达错误或者是不妥当的地方,欢迎指出,我会及时改正,以免误导别人,呵呵。

keil中自己编写C语言头文件

技术相关2010-03-11 20:57:05 阅读626 评论0 字号:大中小订阅

一直希望自己编写一个C语言头文件,把自己常用的一些函数放进去。上网看了很多文章,我所看到文章做法和一般C语言头文件写法基本一样,自己学着试了一下,老是不成功。后来去图书馆查书,才知道原来keil的C语言比较特别,引用同一工程其他文件中的函数需要在声明函数前加extern。

以下是一个例子:

//步骤一:建立fc.h

#ifndef FC_H

#define FC_H

#include

extern void f(void)

#endif

//步骤二:建立fc.c

#include "fc.h"

#include

//还需要什么头文件自己添加

void f(void)

{

//要什么程序自己添加

}

步骤三:将f.h和f.c放在工程的文件夹里,并在keil中将f.c添加到工程中(右键左边的Source Group n,选择Add file to group 'Source group n'),要用到f()函数的话就include“fC.h”就行了,例如:

#include

#include "fc.h"

void main()

{

f();

while(1);

}

结果大功告成,成功编译,但是并没有想象中那么实用,例如fc.c中如果定义了函数但没有被引用的话,keil会发出警告,虽然可以编译,但是一大堆警告很烦人,也和容易让人忽视其他很重要警告。我想自己编写头文件主要是适用于大型工程吧。很多人编写各自不同的函数,然后通过头文件的引用把函数给主程序或者其他子程序引用。

注:fc.h也可以放在keil/C51/INC下,引用时变为#include

最近在学模块化编程。要自己写头文件。看了一下别人的头文件,无非就两种。

一种是只有一个.h文件,把函数的定义及函数的具体实现都放在一个.h文件中。

另外一种是一个.c文件,一个.h文件。.c是函数的具体实现,而.h只是定义函数。

这两种谁优谁劣?

第二个比第一个稍微好点。

第二个的修改:C文件中定义函数和变量及函数的具体代码,在H文件做变量和函数的声明以及其他的宏定义,不应该涉及具体的代码实现和函数定义等。

C51编程:头文件条件编译

程序移植到另外一个CPU上,其中头文件要更改。如想做一个兼容的,可用条件编译来控制头文件的编译。

假如有两个头文件my1.h和my2.h,在CPU1上编译my1.h,在CPU2上编译my2.h,则:

#define CPU1 // 在使用CPU1时打开该定义,反之关闭该定义;该定义放在公共入口头文件的顶头

#ifdefine CPU1

#include "my1.h"

#else

#include "my2.h"

#endif

如还有更多文件呢,如system.h,hard.h,这些在两个系统中都要有的,则有区别的就放在这里面,相同的就放在外面#ifdef CPU1

#include "my1.h"

#include "system1.h"

#include "hard1.h"

#else

#include "my2.h"

#include "system2.h" 也可以是system1.h

#include "hard2.h"

#endif

#include "Public1.h"

...

也可以在各个头文件中把有差异的地方用

#ifdef CPU1

#else

#endif

来区分开来

不仅仅是头文件,其他输出设备以及电路板的不同版本都可采用条件编译

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…来新建工程。

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文件实现。

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文件打开。点击图标,将程序烧录到单片机。

ARM的KEIL工程建立及编译过程

ARM 的KEIL 工程建立及编译过程 精简: 1)添加:Ext_RAM.ini 和RuninRAM.sct; 2)选中 ,去掉 3)注意LOAD 1.axf INCREMENTAL // Download program 这个名要与工程名保持一致。 第一步:新建工程 点击Project-new uvision Project 新建工程,注意工程名没有后缀。 点是,自动生成启动代码,否,要自己写启动代码。 第二步:自己写c 程序(用户程序): 点击File-New 新建文件:注意文件名尾缀为.c。 U n R e g i s t e r e d

第三步:添加C 文件 选中Source Group1点击右键,进行文件添加。 第四步:COPY 三个文件:(第一个是用户程序,自己写就不需要添加,最后一个如果自动生成启动代码也不需要添加)Ext_RAM.ini 和RuninRAM.sct 必须添加。 Ext_RAM.ini :J-LINK 初始化脚本,必须添加。 代码执行前必须要初始化CPU 内部的一些寄存器。该文件就是做初始化工作,给J-LINK 用。J-LINK 通过读取该配置文件,初始化目标板主CPU 相关的寄存器。 RuninRAM.sct:代码编译时需要的链接文件,其主要作用就是组织代码的到该脚本指定的地址。 S3C2440A.s:初始化代码(启动代码) 小知识点:RuninRAM.sct:代码分析 U n R e g i s t e r e d

; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAM LR_ROM1 0x30000000 { ; load region 程序运行起始地址。内存起始地址固定0x30000000 ER_ROM1 0x30000000 0x0040000 { // 0100 ; load address = execution address 程序的下载地址,及程序容量 *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_RAM1 0x30040000 0x0040000 { ; RW data RW 段起始地址 .ANY (+RW +ZI) } RW_IRAM1 0x40000000 0x00001000 { //芯片内部4k sram 空间,固定式0x40000000开始。 .ANY (+RW +ZI) } } 第五步:配置 U n R e g i s t e r e d

第2课 keil软件及工程文件的建立

第2 课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 软件时的界面图2进入

keil5如何建工程

北京科技大学 Keil5工程创建及程序 下载 创建工程;下载程序 北京科技大学MEI团队 作者:解乃颖联系方式:ny_xie@https://www.360docs.net/doc/b113474997.html,日期:2014-08-20

目录内容 创建工程: __________________________________________________________________ 步骤一:创建文件夹和相应的库文件________________________________________ 1步骤二:创建工程文件__________________________________________________ 1步骤三:添加库函数____________________________________________________ 3步骤四:选择输出路径__________________________________________________ 7步骤五:添加路径和定义_________________________________________________ 9 程序下载: ________________________________________________________________ 联系信息 __________________________________________________________________ 12

创建工程: 步骤一:创建文件夹和相应的库文件 新建工程文件夹目录如下 其中,文件夹Prj 包含以下文件夹: 之后添加常用文件,如main.c bsp.c function.c Global.h Config.h 等 步骤二:创建工程文件 打开keil5,创建新工程。 “需要向您的读者 指出某些极其重要的内容吗?请使用边栏突出该内容。”

MDK5新建工程步骤

首先,打开MDK(以下将MDK5简称为MDK)软件。然后点击Project New uVision Project 桌面新建一个TEST的文件夹,然后在TEST 文件夹里面新建USER文件夹,将工程名字设为test,保存在这个USER文件夹里面。 STM32F103 所使用的STM32 型号为STM32F103ZET6(如果使用的是其他系列的芯片,选择相应的型号就可以了)。

点击OK,MDK会弹出Manage Run-Time Environment对话框,直接点击Cancel,即可。此时我们只是建立了一个框架结构。 还需要添加启动代码,以及.c 文件等这代码主要作用如下: 1、堆栈(SP)的初始化; 2、初始化程序计数器(PC); 3、设置向量表异常事件的入口地址; 4、调用main函数。 ST公司提供了3个启动文件给我们,分别用于不同容量的STM32芯片,这三个文件是: startup_stm32f10x_ld.s startup_stm32f10x_md.s startup_stm32f10x_hd.s 其中,ld.s适用于小容量产品;md.s适用于中等容量产品;hd适用于大容量产品; 这里我们把startup_stm32f10x_hd.s 拷贝到刚刚新建的USER 文件夹里面。 我们找到Target1→Source Group1→双击→设置打开文件类型为Asm Source file→选择startup_stm32f10x_hd.s→点击Add,

在USER 文件夹下,startup_stm32f10x_hd.s(启动文件)和test.uvprojx(MDK5工程文件)是我们必须用到的2个文件,然后Listings和Objects文件夹是MDK5自动生成的,如果打开Listings和Objects文件夹,就可以看到里面多了一些文件,这就是MDK编译过程产生的中间文件,如果工程量大,产生的文件更多(多的可达100 MB 以上!!)。MDK5.14 已经默认将这些文件生成在了Listings和Objects文件夹里面,但是MDK5.11A及之前版本是不会自动生成这两个文件夹的,所有中间文件都是生成在工程同面目录下,也就是USER 文件夹下,这样会显得比较混乱。 这里,我们不用MDK5 自己生成的这两个文件夹来存放中间文件,而是在TEST 目录下新建一个新的OBJ 文件夹来存放这些中间文件。 然后在Target目录树上点击右键 Manage Project Items,在上面对话框的中间栏,点新建(用红圈标出)按钮(也可以通过双击下面的空白处实现),新建USER和SYSTEM两个组。然后点击Add Files按钮,把SYSTEM文件夹三个子文件夹里 面的:sys.c、usart.c、delay.c加入到SYSTEM组中。 接着,我们新建一个test.c文件,并保存在USER文件夹下。然后双击USER组,会弹出加载文件的对话框,此时我们在USER目录下选择test.c文件,加入到USER组下。

keil创建arm工程操作步骤

Keil创建ARM工程操作步骤 1、双击keil uvision4,打开keil开发环境 2、选择project—> new uvision project 创建新项目,在创建新项目时,最好先新建一个文件夹,把新项目创建在新文件夹里,这样项目所生产的文件都在该文件夹下,便于项目的管理。 3、在弹出的对话框中选择芯片类型 芯片选择好后,点击OK退出。这时弹出一个对话框,询问是否添加启动代码到新项目中,选择“是”。 4、选择file-->new,新建文件。在文件输入主函数程序代码。输入完

后,点击保存,假设命名为main.c 。注意保存路径,要和项目在同一文件夹下。 5、右键点击source group1,选择add file to source group1. 添加mail.c文件。若项目中包含文件较多,均可采用该方法添加文件。 6、配置相关选项。点击红框的target options 弹出

选择output标签 然后点击“select folder objects”,弹出一对话框,在这里新建一个文

件夹,命名为“obj”,然后双击进入obj文件夹。然后点击ok退出。本步骤的目的是将生产的目标文件都放在obj文件夹里。 7、选择listing标签,点击select folder for listings ,新建文件夹list,并双击进入该文件夹,然后点击ok直接退出。 8、选择linker标签,勾掉use memory layout from target dialog,选择Scaterfile 后面的第一个按钮,选择文件。然后点击编辑。

Keil5新建工程步骤(图文)

新建工程 第一步:创建一个工程目录 第二步:在刚才新建的文件夹中再新建两个文件夹 System---用于存放stm32 系统文件 User --用于存放我们自己编写的文件 第三步:在user文件夹中还要建两个文件夹src和inc分别用来存放我们自己写的C文件和头文件.h文件 第四步:找出系统文件 1.内核文件:把内核文件拷贝到system文件夹中 M3资料\STM32 固件库使用参考资料 \STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3 \CoreSupport 2.stm32 时钟初始化文件 M3资料\STM32 固件库使用参考资料 \STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\De viceSupport\ST\STM32F10x 3.启动文件—用于初始化芯片环境 hd— md— ld— 开发板用的是高容量的STM32,所以这里选择hd M3资料\STM32 固件库使用参考资料

\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM 3\DeviceSupport\ST\STM32F10x\startup\arm 完成后的system文件夹 第五步:新建keil工程 1.打开 2 2.选择保存的路径—第一步建的文件夹

STM32F4(KEIL5函数版)工程模板建立方法

1.下载对应型号的STM32固件库 2.建立好对应的文件夹 2.1 建立文件夹 工程说明 主要存放stm32f429的官方固件库 存放编译产生的调试信息,hex文件,预览信息,封装库扥文件 主要存放内核文件和启动文件 存放main函数,中断函数,配置函数,429系统函数 2.2 在文件夹里放对应的固件库文件 1. STM32F429I-Discovery_FW_V1.0.0\Libraries\STM32F4xx_StdPeriph_Driv er。将inc,src文件夹放入。 2. STM32F429I-Discovery_FW_V1.0.0\Libraries\CMSIS\Device\ST\STM32F4 xx\Source\Templates\arm找到startup_stm32f429_439xx.s 放入 STM32F429I-Discovery_FW_V1.0.0\Libraries\CMSIS\Include 找到core_cm4,core_cm4_simd,core_cmFunc,core_cmInstr放入

3. STM32F429I-Discovery_FW_V1.0.0\Projects\Template将里面所有的文本文件放入user文件夹。 STM32F429I-Discovery_FW_V1.0.0\Libraries\CMSIS\Device\ST\STM32F4 xx\Include将stm32f4xx.h和system_stm32f4xx.h放入user文件夹。 3.打开Keil建立工程模板 一

找到对应的STM32芯片型号 二

实验一keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

keil 工程模版建立

本来之前打算是讲课的时候开始讲的,各位现在在尝试了,所以就截图做了一个演示。当然,如果之前建立好工程模版且可以使用的话,不需要按照这个再重复一次,毕竟是无意义的操作。 首先是我个人的看法。就基础的讲,对于一个stm32工程,需要整理成以下模块:1)官方提供的库——这个肯定必须具备,就像C语言里面的#include”stdio.h”等等一样,我们需要一个能够对stm32固件进行操作的库。 所以把这个库作为一个模块放置。 2)硬件初始化——大家以后学习了单片机或者stm32或者其他的嵌入式芯片之后自然会知道什么是硬件的初始化,现在我们简单理解成“想要修一座小区的时候,拿到在小区内修建一座房子的许可证。 底层驱动函数——这个可以简单理解成“需要修一座小区的时候,封装一个在小区内修建一座房子的函数”。 因为硬件初始化和底层驱动函数息息相关,且意义相似,所以把硬件初始化和底层驱动函数作为一个模块放置。 3)软件驱动——这里的软件驱动无法很好的解释。可以说是“修建小区内房子的时候需要用到的工具”吧。(其实并不是必须的,但是是一个好的小区所必须的)本科同学中很多人都没有这一板块的概念,这里大概可以这样想:当我们传输数据的时候,为了更稳定,更面向对象化编程,搭建了一个循环链表或者消息队列,那么这种独立于硬件的逻辑、算法、规划工具可以视为软件上的驱动。(比如FreeRTOS、ucOS等嵌入式操作系统,也可以视为软件驱动。 所以把软件驱动作为一个模块放置。 4)APP应用程序——上层的代码实现。这个可以简单理解成“当我们拿到在小区内修建一座房子的许可证,封装好在小区内修建一座房子的函数后。安排如何修建这个小区”。当然,如果你有能够安排、规划整个修建过程的工具(软件驱动),那这个工程会更漂亮。 所以把APP应用程序作为一个模块放置。 以上是工程的大致规划,把工程分为了四个模块(个人见解,仅供参考)。 我所示例的工程建立也是如此。下面开始截图说明:

用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》这一章。

基于STM32固件库V3.5建立keil工程详细步骤

建立基于STM32固件库的工程模版(ALIENTEK) 这是一个独立的建立工程的资料,如果您手头没有我们ALIENTEK STM32开发板的源码和资料,请您到我们ALIENTEK官方技术论坛:https://www.360docs.net/doc/b113474997.html,下载, 下载地址为:https://www.360docs.net/doc/b113474997.html,/posts/list/565.htm所有资料均免费提供。 初学者搭建开发环境建立工程模版大约需要2-3个小时,请耐心按照手册的讲解来。一.需要准备的资料: 1. STM32F10x_StdPeriph_Lib_V3.5.0 (这是ST官网下载的固件库完整版) 我们官方论坛下载地址:https://www.360docs.net/doc/b113474997.html,/posts/list/6054.htm 2. MDK 3.8a (我们的板子的开发环境目前是使用这个版本) 二.安装MDK3.8a (Keil):这个在我们不完全手册中已经讲解,这里重复一次。 1.找到MDK的安装文件并点击安装: 文件在我们光盘的目录: ALIENTEK 开发板资料\软件\MDK3.80A 2.点击之后出现界面,选择Next 3.选择”I Agree…Licence agreement”同意协议:

4.选择安装目录,这里用户自行选择安装的目录后,点击Next即可: 5.随便输入邮箱之类的信息即可,点击Next开始安装:

6.按图配置,然后点击Finish,左面会出现keil快捷图标。

三.注册License(破解,如果不破解只能支持32K的代码) 步骤简介: 在MDK针对每台机会有一个CID,copy这个CID到注册机处生成License Key,然后再将这个License Key添加到MDK里面去注册。 1.右键点击左面的MDK快捷方式,选择“以管理员身份运行”,因为注册license需要管理员权限。然后会打开MDK,然后默认会有一个名字叫“LPC2129 simulator”的Project,暂时我们可以不用理会。 2.点击:File->License Management,弹出一个License Management 界面,copy界面中的(CID):

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

建立基于STM32固件库的工程模版(ALIENTEK 这是一个独立的建立工程的资料,如果您手头没有我们ALIENTEK STM32开发板的源码和资料,请您到我们ALIENTEK 官方技术论坛:https://www.360docs.net/doc/b113474997.html,下载, 下载地址为:https://www.360docs.net/doc/b113474997.html,/posts/list/565.htm所有资料均免费提供。 初学者搭建开发环境建立工程模版大约需要2-3个小时,请耐心按照手册的讲解来。 一.需要准备的资料: 1. STM32F10x_StdPeriph_Lib_V3.5.0(这是ST 官网下载的固件库完整版 我们官方论坛下载地址:https://www.360docs.net/doc/b113474997.html,/posts/list/6054.htm 2. MDK 3.8a (我们的板子的开发环境目前是使用这个版本 二.安装MDK3.8a (Keil:这个在我们不完全手册中已经讲解,这里重复一次。1. 找到MDK 的安装文件并点击安装: 文件在我们光盘的目录:ALIENTEK 开发板资料\软件 \MDK3.80A 2. 点击之后出现界面,选择Next

3. 选择”IAgree…Licenceagreement”同意协议: 4. 选择安装目录,这里用户自行选择安装的目录后,点击Next 即可:

4.随便输入邮箱之类的信息即可,点击Next 开始安装: 5.按图配置,然后点击Finish,左面会出现keil 快捷图标。

三.注册License(破解,如果不破解只能支持32K 的代码 步骤简介: 在MDK 针对每台机会有一个CID,copy这个CID 到注册机处生成License Key,然后再将这个License Key 添加到MDK 里面去注册。 1.右键点击左面的MDK 快捷方式,选择“以管理员身份运行”,因为注册license 需要管理员权限。然后会打开MDK,然后默认会有一个名字叫 “LPC2129simulator”的Project,暂时我们可以不用理会。 2.点击:File->LicenseManagement,弹出一个 License Management 界面,copy界面中的(CID:

Keil-uVision4-第一个工程的建立和环境设置

Keil uVision4 第一个工程的建立和环境设置(02)分类: ARM_DSP_MCU_BUS_OTHER 发布: mckeeqin 浏览: 242日期: 2010年6月19日 建立一个工程,效果是让NUC100 (48脚的芯片) PC3口LED闪烁, 第1步:点击Project --->New uVision Projiect 第2步:输入工程名字:test (最好事先建立一个工程文件夹) 第3步:选择对应公司的芯片

第4步:点击“是”,添加启动代码段 第5步:新建一个文档,输入如下代码(注 main的返回值是int型),并保存文件为test1.c 到工程文件夹下,然后添加到本工程下,效果如下图 第6步:把厂家提供的基本驱动程序添加到工程中,下面四个文件夹一起复制到test工程文件夹下,并在test工程文件夹下,新建两个文件夹分别命名为list和obj(分别用于放置编译过程中产生的文件,这样工程编译后,工程文件夹下才不会显的乱七八糟),效果如下面第二个图所示。

第7步:为工程建立2个相应的文件夹,并分别命名为“nuc”和“gpio”用于放置相应的库文件,然后把工程名Target 1重新命名为“test”, 源文件夹命名为“main”。(命名的方法是选中文件夹,按下F2键) 效果如下图第二张

第8步:分别右击“nuc”文件夹和“gpio”文件夹,选择“Add Files to Group...”把相应的库文件添加到相应文件夹下面,效果如下图第二张所示,(这里添加的仅仅是.c文件,至于.h文件在编译时自动添加其中),好,完成此步后,整个工程文件建立完毕,下面几步就是设置编译环境的参数了。

建立keil工程步骤

1、新建立工程 双击启动桌面的Keil uVision2,进入下面的界面 1、1点击“Project->New Project…”菜单,出现对话框,要求选择保存工程的 文件夹并给将要建立的工程起一个名字,这里选择文件夹ex1_1,并起名为ex1_1;(可用其他的)不需要输入扩展名。输入之后点击保存。这个时候就将刚才保存到文件夹ex1_1里。

1、2点击上面的保存之后跳出如下的对话框,这个时候需要我们对我们的单片机的型号进行选择,我们就选Atmel的AT89C51.选择之后点击“确定”。

1、3 接上一步点击“确定之后”,跳出如下的对话框。这个时候是问我们是否添加那个仿真配置文件的,我们就选择“否(N )”。

好了。我们的工程已经建立成功。如下图 2、1 有了工程之后,我们需要给我们的工程写程序。 那就点击“File New…”在工程管理器的右侧打开一个新的文件输入窗口Text1,在这个窗口里输入例1-1 中的源程序, 输入例1_1的程序如下:

2.2输入完毕之后,选择“File Save”,给这个文件取名保存,取名字的时候必须要加上扩展名,一般C 语言程序均以“.C”为扩展名,这里将其命名为ex1_1.c,保存完毕后可以将该文件关闭。

好了,到这里。我们就已经建立好c语言的文件了。 3 建立好工程、建立好c语言的文件之后,我们就需要将这个c语言的文件添加到我们的工程来。 3.1点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图所示,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件ex1_1.c。

keil MDK建立工程步骤方法

KEIL工程建立步骤 KEIL MDK开发工具源自德国Keil 公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。KEIL MDK集成了业内最领先的技术,包括μVision4集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3/M1/M0 内核处理器,自动配置启动代码,集成Flash 烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。KEIL MDK出众的价格优势和功能优势,已经成为ARM软件开发工具的标准,目前,KEIL MDK在国内ARM开发工具市场已经达到90%的占有率。 使用MDK前当然要先把KEIL MDK安装好。读者首先要从 https://www.360docs.net/doc/b113474997.html,/下载到最新的KEIL MDK,笔者使用的是KEIL MDK V4.13a。下载完毕之后双击开始安装。首先看到欢迎界面: 点击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 的用户界面。

相关主题
相关文档
最新文档