Keil5新建stm32工程1

文章目录

  • Keil5新建stm32工程[^1]
    • 1. 新建一个工程,搭建框架
    • 2. 向框架里面注入官方的固件库里的源码文件
    • 3. 将注入的文件加入工程
    • 4. 设置编译输出文件的目录
    • 5. 添加头文件
    • 6. 配置全局的宏定义变量
    • 7. 替换main文件
    • 8. 生成hex文件

1. 新建一个工程,搭建框架

  1. 在计算机某个目录下面新建一个目录(我的是keilProjects),该目录下面新建四个文件夹(USER、CORE、STM32F10x_FWLib、SYSTEM)

  2. 在USER目录下面,Project–>New Uvision Project

  3. 在弹出的对话框里面选择对应的芯片型号(我的是F103)

  4. 这时会弹出一个窗口,直接关闭即可

  5. 这样我们搭好了一个框架,其中:

    • USER目录用于存放工程文件
    • CORE用于存放启动文件
    • STM32F10x_FWLib用于存放程序运行所需要的库文件
    • SYSTEM则用于存放原子哥封装的一些常用函数

2. 向框架里面注入官方的固件库里的源码文件

  1. STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面, 将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。 src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件
  2. 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\startup\a rm 下面,将里面 startup_stm32f10x_hd.s 文件复制到 CORE 下面。
  3. 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 下面的 4 个文 件 main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。
  4. 最后将现成的SYSTEM目录直接替换成白嫖的原子哥SYSTEM目录

3. 将注入的文件加入工程

  1. Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况。
  2. 下面我们往 Group 里面添加我们需要的文件。我们按照步骤 10 的方法, 右键点击点击 Tempate,选择选择 Manage Components.然后选择需要添加文件的 Group,这里第一步我们 选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定 位 到 我 们 刚 才 建 立 的 目 录 STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close. 可以看到 Files 列表下面包含我们添加的文件。
  3. 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里 我们的 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s (注意,默认添加的 时候文件类型为.c,也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型 为 All files 才能看得到这个文件),USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c, system_stm32f10x.c.


4. 设置编译输出文件的目录

​ 编译之前我们首先要选择编译中间文件编译后存放目录。 方法是点击魔术棒,然后选择“Output”选项下面的“Select folder for objects…”,然后选 择目录为我们上面新建的 OBJ 目录。这里大家注意,如果我们不设置 Output 路径,那么 默认的编译中间文件存放目录就是 MDK 自动生成的 Objects 目录和 Listings 目录


5. 添加头文件

我们要告诉 MDK,在哪些路径之下搜索需要的头文件,也就是头文件目录。这里大 家要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到 进来。回到工程主菜单,点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击 Include Paths 右边的按钮。弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添 加进去。记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path 一定要定位到最后一级子目录。然后点击 OK


6. 配置全局的宏定义变量

定位到 c/c++界面,然后填写 “STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面。 这里解释一下,如果你用的是中容量那么 STM32F10X_HD 修改为 STM32F10X_MD,小容 量修改为 STM32F10X_LD. 然后点击 OK


7. 替换main文件

在编译之前,我们记得打开工程 USER 下面的 main.c,复制下面代码到 main.c 覆盖已 有代码,然后进行编译。(记得在代码的最后面加上一个回车,否则会有警告),可以看到, 这次编译已经成功了。

#include "stm32f10x.h"/************************************************ALIENTEK 精英STM32F103开发板实验0工程模板注意,这是手册中的新建工程章节使用的main文件 技术支持:www.openedv.com淘宝店铺:http://eboard.taobao.com 关注微信公众平台微信号:"正点原子",免费获取STM32资料。广州市星翼电子科技有限公司  作者:正点原子 @ALIENTEK
************************************************/void Delay(u32 count){u32 i=0;for(;i<count;i++);}int main(void){ GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);     //使能PB,PE端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;             //LED0-->PB.5 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //IO口速度为50MHzGPIO_Init(GPIOB, &GPIO_InitStructure);                 //初始化GPIOB.5GPIO_SetBits(GPIOB,GPIO_Pin_5);                    //PB.5 输出高GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                //LED1-->PE.5推挽输出GPIO_Init(GPIOE, &GPIO_InitStructure);             //初始化GPIOGPIO_SetBits(GPIOE,GPIO_Pin_5);              //PE.5 输出高       while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_5);GPIO_SetBits(GPIOE,GPIO_Pin_5);Delay(3000000);GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO_ResetBits(GPIOE,GPIO_Pin_5);Delay(3000000);}}

8. 生成hex文件

下面还需要配置,让编译之后能够生成 hex 文件。同样点击 魔术棒,进入配置菜单,选择 Output。然后勾上下三个选项。 其中 Create HEX file 是编 译生成 hex 文件,Browser Information 是可以查看变量和函数定义


ation 是可以查看变量和函数定义

[外链图片转存中…(img-NatJpZBq-1642395820757)]



  1. 本文内容参考原子哥在线平台 ↩︎

Keil5新建stm32工程相关推荐

  1. Keil5新建STM32工程(二)

    接下来将会讲到如何在keil5加入我们新建好的文件... 一起来看看吧~~~ 1.首先我们打开keil5软件并新建工程 然后选择之前我们在电脑新建好的文件夹,放到Project文件夹里边 文件名需要重 ...

  2. STM32F103标准库开发:Keil5新建STM32工程

    STM32标准库版工程模板链接 STM32F103标准库开发-目录 首先需要搭建Keil5编译环境,才可以新建STM32工程. Keil5编译环境搭建流程----STM32和GD32 新建STM32工 ...

  3. keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)

    目录 一.文件与文件夹创建 1.1 CMSIS文件夹创建 1.2 FWLIB文件夹创建 1.3 Project文件夹创建 1.4 startup文件夹创建 1.5 user文件夹创建 1.6 read ...

  4. MDK Keil5创建stm32工程出现 Error: L6200E: Symbol HAL_MspDeInit multiply defined

    MDK Keil5创建stm32工程出现 -\OBJ\Template.axf: Error: L6200E: Symbol HAL_MspDeInit multiply defined(bystm3 ...

  5. Keil5新建STM32工程模板

    学习逻辑 为了达到高效.快速的学习,在学习stm32时,制定的方法是阅读别人的代码,和动手练习代码实验为主. 如果纯看视频,一方面注意力达不到最高效,另一方面在实验测试时同样会遇到很多问题,卡主耽误时 ...

  6. IAR新建stm32工程,完美移植stm32标准库(附源码)

    开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...

  7. 【沧海拾昧】Keil uVision5新建stm32工程并联合Proteus 8 Professional简单仿真

    #C0101 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题必是本集记录有谬, ...

  8. 用keil5新建一个工程(STM32F407ZGT6)

    声明:MDK5的安装和使用对路径要求较为严格,也就是说你的电脑用户名和安装路径一定不要出现中文.一般我们买回来电脑都不太懂,直接就用中文来作为微软账户用户名,所以导致以后在学习的过程中,需要安装一些国 ...

  9. 新建STM32工程报错 warning: At end of source: #12-D: parsing restarts here after previous syntax error

    类似这样的问题: ..\..\Codes\Main\Main.c(29):: warning: At end of source:  #12-D: parsing restarts here afte ...

最新文章

  1. 北京大学年度人物揭榜!发论文、搞科研,看“学神打架”!
  2. 爱与恨的抉择:ASP.NET 5+EntityFramework 7
  3. menu.php,menu.php
  4. 已知两个时间戳判断这两个时间是否在同一天
  5. [Python学习笔记]h5py入门讲解
  6. html5 indexeddb 排序,HTML5 IndexedDB,Web SQL数据库和浏览器大战
  7. limitBy过滤器是配合数组使用的,限制数组元素的个数,话不多说,来个小例子。...
  8. linux内核中led驱动的分布,Linux内核模块驱动之---led驱动
  9. java 命令行工具_分享java自带命令行工具jmap、jhat与jinfo的方法详解
  10. 使用vim 改变文件编码格式
  11. Python 实现端口扫描器
  12. python每日一小记(2)--字符串和编码
  13. dspic33 怎么C语言编程,Microchip工程师社区 - dsPIC33汇编指令 - 16位MCU及DSC - 麦田论坛...
  14. Qt编程中的信号和槽机制
  15. 搭建SpringBoot+Vue 项目 完整流程
  16. 机器学习笔记七——特征工程之特征处理
  17. 邢台计算机编程培训学校,邢台有几家计算机培训中心
  18. 分页计算总页数的算法
  19. 【毕业设计之微信小程序系列】基于APP的微信点餐小程序的设计与实现
  20. mobaxterm使用教程

热门文章

  1. __repr__ 方法的作用
  2. 几种常见的排序方法整理
  3. 同一网络(局域网)下远程控制另一台电脑
  4. CNN——对文章类型进行分类
  5. 小学计算机科学技术,关于小学计算机科学与技术课改分析的几点思考
  6. 服务器系统eos升级,佳能EOS R固件更新,自动对焦功能升级
  7. 小程序“成语猜题”兑换页面wxml源码分享
  8. 【VS2012】通过VS连接Access
  9. 开发H5时背景照片兼容不同手机屏幕处理的最佳实践
  10. 40系笔记本(可不联网激活)深度学习生产力(环境配置和简单训练测试)