KEIL MDK 5.12帮你快速建工程模板的技巧

KEIL 5帮你快速建工程模板的技巧

本人使用keil mdk 5.12有一段时间了,发现keil mdk 5.12里面驱动库比较方便。这个新功能可以节省我们的时间,也可以让初学者能尽快上手和掌握这个芯片。大家以后既就可以很方便的建自己的工程模板了,再也不会为了找芯片的驱动库而烦恼。

今天外我来教大家来怎么使用这个建工程的利器吧。

首先是新建工程吧,如下图步骤:

因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图:

红色框里的都是一些集成在keil 5的启动文件,arm内核的文件,st公司的库函数和一些API等等。一个工程最起码也要选上core和startup两个选项(还有选择Framework,其他的外设驱动根据需求选择就好,Framework用于生成stm32f10x_conf.h文件),如下图:

然后选择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文件。如下图:

当编译成功后会出现以下的信息:

下面我们要看看新的stm32f4xx_conf.h里的内容吧,如下图:

可以看出这跟旧版本的stm32f4xx_conf.h文件有些区别,在每个头文件这里多了个条件编译,

大家可以理解成开关吧,就是用来选择编译头文件用的,而这些开关都在RTE_Components.h

这个头文件里,如下图:

编译完成后,可以看出main.c里包含了各驱动库的头文件,如下图:

做完以上工作后,我们就建好了一个基于库函数的模板了。

注:Keil MDK 5.12建立工程的时候会自动生成Objects和Listings文件夹,所以用户使用过程中不需要考虑生成大量的编译文件,看起来不清爽的问题,编译生成的文件都在以上文件夹,清理起来比较方便,程序打包整理的时候可以将以上文件夹内的文件都删除,使得工程文件更小。

时间: 2024-12-08 11:45:53

KEIL MDK 5.12帮你快速建工程模板的技巧的相关文章

Keil MDK从未有过的详细使用讲解

转自博客:http://blog.csdn.net/zhzht19861011/article/details/5846510 这博主关于MDK 的使用的文章,写的得TM的好  TM的实用! 真心收藏! 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是

转:Keil MDK从未有过的详细使用讲解

来自:http://blog.csdn.net/zhzht19861011/article/details/5846510 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始.   首

Keil MDK下如何设置非零初始化变量(转)

源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零.如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的. 在给出方法之前,先来了解一下代码和数据的存放规则.属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢. 什么是初始化数据变量,什么又是非初始化数据变量?(因为我

Python快速建站系列-Part.Three-注册和登录

|版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登录的实现 复杂的安全cookies实现可以看这里 使用安全cookies,因为快速建站这个其实只相当于一个小demo,所以复杂的用户系统会在以后实现,现在只需要实现拥有用户名,密码,昵称和用户权限声明的一个用户系统就可以了. 看一下users的数据库规范然后再写代码 #数据库规范 codedb:us

LinqPad工具:帮你快速学习Linq

LinqPad工具:帮你快速学习Linq 参考: http://www.cnblogs.com/li-peng/p/3441729.html ★:linqPad下载地址:http://www.linqpad.net/: 一.基本操作 1.    第一步:连接数据库: 2. 进行具体的linq操作: 执行查询: 二.实战用法:Left Join和Inner Join 1. 首先建数据库: 代码: create database MyDataDemo go use MyDataDemo go dro

Keil MDK编译器的数据类型定义

1 #include "usart.h" 2 int main() 3 { 4 USART1_Config(); //串口初始化,以下信息通过串口打印 5 printf("char: %d\r\n",sizeof(char)); 6 printf("unsigned char: %d\r\n",sizeof(unsigned char)); 7 printf("short: %d\r\n",sizeof(short)); 8

有趣的keil MDK细节(转)

源:有趣的keil MDK细节 1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此,定义有符号char类型变量,必须用signed显式声明.我曾读过一本书,其中有一句话:“signed关键字也是很宽宏大量,你也可以完全当它不存在,在缺省状态下,编译器默认数据位signed类型”,这句话便是有异议的,我们应该对自己所用的CPU构架以及编译器熟练掌握.

Keil MDK最新版 5.25介绍及下载地址

看到Keil MDK又出新版咯,分享给大家 Keil MDK-ARM 5.25 uVision5开发工具下载地址:http://www.myir-tech.com/soft.asp?id=1140 Keil MDK是基于Arm的微控制器最全面的软件开发解决方案,包括创建,构建和调试嵌入式应用程序所需的所有组件. MDK v5.25通过其集成的功率测量功能引入了对ULINK plus的支持 Keil MDK-ARM 5.25新增功能介绍 新增功能:系统分析器在一个窗口中随时间显示相关的执行信息.它

Python快速建站系列-Part.One-组装开发环境

源代码都在github上:https://github.com/SSSDOG/SmallStudyStation 既然是用Python快速建站,第一步选择框架,鉴于Django有点复杂对新手不是很友好所以选择Tornado,数据库的话用MongoDB. 建站也少不了前端,我是用的bootstrap,从http://www.bootcss.com/这里下载就行,或者直接用它提供的CDN. 首先安装Python需要的模块 1 import tornado 2 import pymongo pymon