以GPIO控制LED为例介绍Keil下新建工程的过程,具体开发环境如下:Keil版本4.60。 注:Keil 4.60版本和CW 10.3版本以上开始支持KL系列MCU。
1. 建立新工程启动Keil之后,选择【Project】菜单中的【New μVision Project】选项来建立新的工程,如图1所示。
图1. 建立新工程 新建一个文件夹,命令为“GPIO_LED”用来保存新工程的相关文件,再在文件夹中建立Keil文件夹与Source文件夹,在Keil文件夹保存新工程并命名为“GPIO_LED”,如图2所示。
图2 保存新工程 保存工程之后,需要为工程选择对应的CPU型号。针对FRDM-KL25Z开发套件需选择MKL25Z128xxx4,如图3所示。 注:CPU型号需与实际使用型号对应。
图3 选择CPU型号 选择CPU型号之后,Keil会提示是否加载默认启动文件,选择是与否都可以,工程建立完之后会重新整理工程内的代码文件。本文档中选择是,如图4所示。
图4 是否加载启动文件 这样新工程已经初步建立完成,如图5所示。但是还缺少部分工程文件,下一步工作就是要进一步完善工程。
图5 新工程初步建立完成 2. 完善新工程首先修改工程中Target和Group的命名,点击图6中所示工具,修改“Target 1”为“DebugInFlash”,修改“Source Group1”为“StartUp”。
图6 选择图中工具
图7 修改Targets及Groups名称 然后在“Source ”目录下添加“App ”、“common ”和“Drv ”文件夹,如图8所示,其中“common ”文件夹下可单独设置“headers ”文件夹用来存放MKL25Z 相关寄存器声明头文件。相关模板内容请在www.zlgmcu.com下载并替换相关文件夹内容。
图8 在工程目录下新建文件夹 在目录中添加工程文件之后,需要在Keil工程中添加相应文件。首先在工程栏【DebugInFlash】处右键选择【Add Group】如图9所示,并将其重命名为“App”,再次添加并重命名为“Drv”,如图10所示。
图9添加组
图10 建立StartUp组 之后在“StartUp ”组中添加相应文件。在工程栏【StartUp 】处点击右键选择【Add Files to Group `StartUp` 】。分别添加“startup_MKL25Z4.s ”、“ARM_cm0.c ”和“system_MKL25Z4.c ”到“StartUp ”组,如图11 所示。
图11 添加文件到组
图12 添加相关文件
图13 文件添加完成 整个工程中还缺少用户代码及相关库函数,下一步就是在Keil中引用main.c及相关函数。同样在【App】选项中选择【Add Files to Group App】添加主函数相关模板文件,【Drv】选项中选择【Add Files to Group Drv】添加相关库函数文件,如图14与图15所示。
图14 App添加主函数文件
图15 添加GPIO库文件 完成整个工程的建立之后用户就可以在main.c中编写代码了,如图16所示。
图16 编写用户代码 完成上述过程后在Keil 选项配置中添加默认编译路径,防止编译器默认从库中调用头文件。在【DebugInFlash 】上右键选择【Op tions for Target DebugInFlash 】,在【C/C++ 】选项卡的【IncludePaths 】一栏,添加默认编译路径: “..SourceApp;..Sourcecommon;..Sourcecommonheaders;..SourceDrvGPIO”。如图17所示。
图17 选择“Options for Target”
图18 添加默认编译路径 为了使用CMSIS库,用户需要在工程中预先进行宏定义,在【C/C++】选项卡下写入“KEILFREEDOM CMSIS”宏定义信息,如图19所示。
图19 工程宏定义 在编写用户代码时,为了保持代码的整洁,可以在【Edit】选项中选择【Configuration】,修改【Editor】选项卡中的【C/C++ Files】部分,设置Tab键为4个空格模式(空格代替),这样编写的用户代码,无论放到任何一个编辑器里都不会因为Tab长度定义不一致导致错行,影响代码的美观,如图20所示。
6
|
|
|
|
辛苦辛苦,我想问的是怎样才能选上对应CUP型号,是不是我没有对应的pack?
|
|
|
|
|
没看明白,小白问下“在source目录下添加“App”、“common”和“Drv”文件夹”,请问这个source目录的路径是?还是说在Keil里面?另外zlg下载模板能否给个连接?小白没找到。。。谢谢!
|
|
|
|
|
好好............................haohao ..............好好
|
|
|
|
|
楼主辛苦,能否说明一下寄存器头文件模板在哪里,我没找到~
|
|
|
|
|
这个写得不错,可是我缺少你上面的文件,从哪里获取这些文件。
比如.c .h文件。
或者哪位有的话可以给我。
我的qq 635477196
|
|
|
|
|
没有, 我纯机械的学生,我老师硬要我搞这玩意,完全懵逼。毕业估计都难
|
|
|
|
|