Keil5新建stm32工程
Keil5新建stm32工程1
文章目录
- Keil5新建stm32工程[^1]
- 1. 新建一个工程,搭建框架
- 2. 向框架里面注入官方的固件库里的源码文件
- 3. 将注入的文件加入工程
- 4. 设置编译输出文件的目录
- 5. 添加头文件
- 6. 配置全局的宏定义变量
- 7. 替换main文件
- 8. 生成hex文件
1. 新建一个工程,搭建框架
在计算机某个目录下面新建一个目录(我的是keilProjects),该目录下面新建四个文件夹(USER、CORE、STM32F10x_FWLib、SYSTEM)
在USER目录下面,Project–>New Uvision Project
在弹出的对话框里面选择对应的芯片型号(我的是F103)
这时会弹出一个窗口,直接关闭即可
这样我们搭好了一个框架,其中:
- USER目录用于存放工程文件
- CORE用于存放启动文件
- STM32F10x_FWLib用于存放程序运行所需要的库文件
- SYSTEM则用于存放原子哥封装的一些常用函数
2. 向框架里面注入官方的固件库里的源码文件
- STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面, 将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。 src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件
- 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 下面。
- 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 目录下面。
- 最后将现成的SYSTEM目录直接替换成白嫖的原子哥SYSTEM目录
3. 将注入的文件加入工程
- Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况。
- 下面我们往 Group 里面添加我们需要的文件。我们按照步骤 10 的方法, 右键点击点击 Tempate,选择选择 Manage Components.然后选择需要添加文件的 Group,这里第一步我们 选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定 位 到 我 们 刚 才 建 立 的 目 录 STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close. 可以看到 Files 列表下面包含我们添加的文件。
- 用同样的方法,将 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)]
本文内容参考原子哥在线平台 ↩︎
Keil5新建stm32工程相关推荐
- Keil5新建STM32工程(二)
接下来将会讲到如何在keil5加入我们新建好的文件... 一起来看看吧~~~ 1.首先我们打开keil5软件并新建工程 然后选择之前我们在电脑新建好的文件夹,放到Project文件夹里边 文件名需要重 ...
- STM32F103标准库开发:Keil5新建STM32工程
STM32标准库版工程模板链接 STM32F103标准库开发-目录 首先需要搭建Keil5编译环境,才可以新建STM32工程. Keil5编译环境搭建流程----STM32和GD32 新建STM32工 ...
- keil5新建STM32工程文件--实践篇手把手教学(以STM32F103为例)
目录 一.文件与文件夹创建 1.1 CMSIS文件夹创建 1.2 FWLIB文件夹创建 1.3 Project文件夹创建 1.4 startup文件夹创建 1.5 user文件夹创建 1.6 read ...
- MDK Keil5创建stm32工程出现 Error: L6200E: Symbol HAL_MspDeInit multiply defined
MDK Keil5创建stm32工程出现 -\OBJ\Template.axf: Error: L6200E: Symbol HAL_MspDeInit multiply defined(bystm3 ...
- Keil5新建STM32工程模板
学习逻辑 为了达到高效.快速的学习,在学习stm32时,制定的方法是阅读别人的代码,和动手练习代码实验为主. 如果纯看视频,一方面注意力达不到最高效,另一方面在实验测试时同样会遇到很多问题,卡主耽误时 ...
- IAR新建stm32工程,完美移植stm32标准库(附源码)
开发环境:Window 10 64bit 开发工具:IAR Embedded Workbench 硬件:stm32f103c8t6 基于IAR 开发工具,新建立STM32F1系列的最小开发例程,并加入 ...
- 【沧海拾昧】Keil uVision5新建stm32工程并联合Proteus 8 Professional简单仿真
#C0101 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题必是本集记录有谬, ...
- 用keil5新建一个工程(STM32F407ZGT6)
声明:MDK5的安装和使用对路径要求较为严格,也就是说你的电脑用户名和安装路径一定不要出现中文.一般我们买回来电脑都不太懂,直接就用中文来作为微软账户用户名,所以导致以后在学习的过程中,需要安装一些国 ...
- 新建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 ...
最新文章
- 北京大学年度人物揭榜!发论文、搞科研,看“学神打架”!
- 爱与恨的抉择:ASP.NET 5+EntityFramework 7
- menu.php,menu.php
- 已知两个时间戳判断这两个时间是否在同一天
- [Python学习笔记]h5py入门讲解
- html5 indexeddb 排序,HTML5 IndexedDB,Web SQL数据库和浏览器大战
- limitBy过滤器是配合数组使用的,限制数组元素的个数,话不多说,来个小例子。...
- linux内核中led驱动的分布,Linux内核模块驱动之---led驱动
- java 命令行工具_分享java自带命令行工具jmap、jhat与jinfo的方法详解
- 使用vim 改变文件编码格式
- Python 实现端口扫描器
- python每日一小记(2)--字符串和编码
- dspic33 怎么C语言编程,Microchip工程师社区 - dsPIC33汇编指令 - 16位MCU及DSC - 麦田论坛...
- Qt编程中的信号和槽机制
- 搭建SpringBoot+Vue 项目 完整流程
- 机器学习笔记七——特征工程之特征处理
- 邢台计算机编程培训学校,邢台有几家计算机培训中心
- 分页计算总页数的算法
- 【毕业设计之微信小程序系列】基于APP的微信点餐小程序的设计与实现
- mobaxterm使用教程