关闭

STM32 Keil5建立工程模板步骤

标签: stm32单片机gnuCoIDEKEIL
11587人阅读 评论(3) 收藏 举报
分类:

相关文章:


2017/7/9 UPDATED
强烈推荐使用CoIDE+GNU ARMg工具链开发STM32,全部是一键式点击就能新建完整的工程,不会像在KEIL MDK修改这个修改那个那么麻烦,最最重要的是CoIDE和GNU ARM Embedded Tooltrain都是免费的,不存在侵权问题,几乎所有的KEIL下的工程都能方便快捷移植到CoIDE中


前不久了解了下STM32单片机,用keil建立项目(Project)折腾了一段时间,感觉比51单片机难多了,现在记录一下基于keil5的STM32工程的建立。

  • KEIL安装

遇到的第一个问题就是C51和MDK的共存问题,如果不按一定方法安装的话keil只能打开一种类型的project,下面介绍我自己的解决方案。

我安装的版本是C51V954a和mdk511a,需要的点击这里下载,安装的时候先建立一个文件夹,我的在E盘建立了keil这个文件夹,然后先安装C51V954a,把安装路径选择之前建立的 E:\keil 这个文件夹里,安装完成后先不要激活(KEIL_Lic Activator.exe这个是激活工具,仅供学习使用,,如有商业需要请购买正版),然后安装mdk511a,同样把安装路径指向 E:\keil 这个文件夹,这时候安装的时候会提示是否复制并替换的,选择不替换,保存两个文件,这个安装在同一个文件夹的方法是我网上找到的最方便的方法。最后的安装目录文件如下:
这里写图片描述

然后打开keil5,新版本的会有Pack Installer弹出来,下载自己对应的型号即可,选择新建project,这时就可以在device那里选择建立51或STM32的project了
这里写图片描述

  • 建立project模板

我用的是最新固件库3.5版本的,主要要用到 Libraries 和 Project 这两个文件夹下的文件。
这里写图片描述

在自己想保存文件的地方新建一个文件夹,命名为 Template4(名字随意,最好英文名,中文名不知道会不会出错,我自己也没去试过),在 Template4 下面再建立三个子文件夹,分别命名为 CMSIS(存放内核支持文件和设备支持文件)、FWLIB(存放外部设备驱动文件)、USER(存放自己的文件,如主函数等),接下来的步骤就是把库函数3.5里的文件复制到刚才建立的子目录下面
这里写图片描述

1)、CMSIS

库函数3.5\Libraries\CMSIS\CM3\CoreSupport下的这里写图片描述这两个文件复制到CMSIS目录下, 还有把库函数3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10X 文件夹下面的文件这里写图片描述 复制到CMSIS,最终CMSIS里的文件有这里写图片描述

2)、FWLIB

库函数3.5\Libraries\STM32F10x_StdPeriph_Driver 文件夹里面的这里写图片描述 两个文件复制到 FWLIB 下面

3)、USER

库函数3.5\Project\STM32F10x_StdPeriph_Template 目录的圈起来的文件复制到USER目录下
这里写图片描述

4)、在keil5 里新建工程

点击工具栏的New Project新建工程,主要要把project放在刚才建立的Template文件夹下面,这样才方便稍后的操作,同时选择自己芯片的型号,完成后在刚才的文件夹下会有以下文件
这里写图片描述 注意到多了三个文件夹,是用来放一些编译过程产生的文件的,最终生成的HEX文件也会默认在Objects目录下。

5)、配置相关文件

点击配置的按钮这里写图片描述 ,打开如下界面,添加相应的组名,其中CMSIS,FWLIB,USER和之前建的文件是一样的,多了个STARTUP,这个是用来存放启动文件的,启动文件放在CMSIS\startup\ARM 里面,后缀是.s ,配置的时候要选择所有文件格式才能看到,最终的配置如图:
这里写图片描述

FWLIB的添加的文件只需要src 目录下的.c 后缀的文件即可,编译的时候会自动把头文件包括进去的

6)、这里完成之后还要修改一处,点击这里写图片描述 ,在Define 那里写上USE_STDPERIPH_DRIVER,STM32F10X_MD (我的STM32型号是F103RB,64KB闪存,所以选择的是中容量的启动文件STM32F10X_MD ,另一个单片机型号F103RC选择的是STM32F10X_HD ,这个可根据自己的需要修改)

这里写图片描述

同时要在Include Path 那里选择头文件的位置

这里写图片描述

7)、编译的时候可能会出错,因为main函数是直接复制库函数版本的,可以自己修改后编译


2017/4/19更新

用KEIL是目前大部分教程提供的构建STM32工程的方法,今天学习了用免费的IoIDE和ARM嵌入式GNU工具链来开发,第一次了解,但是也觉得比KEIL简单,而且最重要的免费的,不存在侵权问题,有兴趣的可以阅读我的另一篇博客:
CoIDE+GNU工具链构建STM32F103xx工程

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:153810次
    • 积分:2161
    • 等级:
    • 排名:第19758名
    • 原创:71篇
    • 转载:2篇
    • 译文:0篇
    • 评论:16条
    最新评论