一,文件夹介绍

首先去官网过去其他地方获取到官方提供的标准库文件

下面这个我是在官网进行下载的

我们在打开keil的时候会弹出一个在线下载的框(这个框这里先不做说明,后面在继续讲解),我们不使用这个在线下载功能,直接用官方提供的外设库进行开发。

在这个文件夹中我添加了些文档方便我们后续查看文档分析问题

【固件库】STM32F10x_StdPeriph_Lib_V3.5.0这个文件夹是官方提供给我们进行开发的文档,里面有4个文件夹。

_htmresc文件夹中是官方的logo图片,

Libraries文件夹存放着内核文件,启动文件和系统文件以及外设文件(主要就是使用这个文件夹),

Project文件夹主要是存放ST公司提供的外设驱动例程和标准库工程模板

Utilities文件夹主要是存放ST官方评估板的例程,一般不需要用到

stm32f10x_stdperiph_lib_um这个是一个开发文档,里面有各种案列和函数原型供大家参考。

一下这4个文档就不介绍了,后面使用的时候边用边认识,大家可以去立创或者网上进行获取。

二,工程创建

第一步:需要创建一个工程文件夹(名字可以是中文)

第二步:进入工程文件夹创建功能子文件夹

2.1:创建存放工程文件的文件夹-Project

2.2:创建存放用户代码的文件夹-User

2.3:创建存放固件库文件的文件夹(固件库文件必须存放到工程文件夹下面,keil打开的相对路径)也可以直接复制【固件库】STM32F10x_StdPeriph_Lib_V3.5.0文件中的Libraries文件夹

2.4:创建存放外设功能和驱动文件夹-HardwareDriver

2.5:选择性创建(创建存放提示文本的文件夹)txt文本文件的文件的文件夹

第三步:创建工程,并保存到文件夹中

3.1打开keil

3.2创建工程(功能栏中的Project - > new uVision Project),弹出对话框(告诉keil工程保存的位置)

注意保存时:保存类型*.uvproj;*.uvprojx,不要去对保存类型进行改动

3.3保存完毕,工程文件后会弹出一个对话框,(选择芯片类型)

由于使用的是STM32F103C8T6,采用的F1系类的芯片这里选择STM32F1 Series 找到STM32F103C8

3.4选择完芯片后,弹出个对话框,这个对话框是在线下载官方提供的固件库文件,但是有官方提供的固件库文件压缩包,所以不用在线的模式进行一个下载,这里直接关闭即可。

3.5关闭在线下载渠道对话框,会呈现一个如下图所示的界面:

对应的文件夹中会出现如下图所示:(不要对打箭头的文件进行删除)

这个两个文件很重要这个是keil生成的快捷对应方式。

还有3个文件夹,分配是调试配置文件夹和临时文件以及输出文件存放的地方

3.6创建keil软件中工程的文件夹分类

找到功能栏中三个小正方向推挤的一个图标:

先添加工程分区文件夹然后添加文件。

文件添加位置->

添加启动文件到启动文件文件:demo\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

添加内核文件(core_cm3) 和系统文件(system_stm32f10x):

内核文件的路径:demo\LIB\CMSIS\CM3\CoreSupport

系统文件的路径:demo\LIB\CMSIS\CM3\DeviceSupport\ST\STM32F10x

添加固件库文件:demo\LIB\STM32F10x_StdPeriph_Driver\src

USER文件夹下的文件需要到固件库包中进行一个复制

路径如下:0【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\【固件库】STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

复制如下四个文件:

如何添加文件->

点击ADD FILES,进入工程文件夹中进行选择文件

添加完毕以后keil里面可以看到,工程框如下图:

LIB文件夹太多了就没截图出来,哈哈

3.7环境配置(功能栏中的魔法棒)

点击魔法棒后出现一个对话框:

(由于我使用的是最新的MDK538a,配置界面可能有些不一样)

环境配置第一步:

最新版本的外部最大晶振可以不用写,会自动匹配。

第二步:输出文件的存储改变和hex文件的添加

第三步:(可进行可不进行)

第四步:主要是进行宏定义的添加,头文件的路径

为什么要添加宏定义?

之所以添加宏定义,固件文件不只是唯一芯片的固件库,当前使用的固件库是涵盖全部F1系类的芯片,所以呢需要进行一个宏定义的添加。

由于不用的芯片选用的启动文件不一样,需要添加一个宏:STM32F10X_MD

由于使用的芯片不一致所以有一个宏定义进行区分:USE_STDPERIPH_DRIVER

宏定义的分割符是个逗号,键盘上

头文件的路径采用的是相对路径:将使用到的文件含有头文件的当前目录进行一个添加

一旦XX.h文件找不到第一个想到是否头文件的路径添加是否正确。

第五步:下载调试

要是使用的是下载器在线下载的话:点击旁边按钮Settings

使用行的环境:

1.支持汉语注释:

edit->Configuration

2.智能提示(虽然keil会人工智障,明明没有错误,它会标注这段话有问题,编译却没问题,但是还是方便的)

环境配置完毕以后需要对之前添加进来的main.C进行重构:

#include "stm32f10x.h"

int main (void)

{

return 0;

}

重构完后进行编译;

第一个箭头:只针对当前修改过的段落进行编译,前面没有没问题的地方不用进编译,提高编译速度

第二个箭头:全盘编译,不关你改或者没改都会从头到尾进行一场编译。

第三个箭头:进行使用在线下载器进行下载按钮

使用最新版本的KEIL需要去将编译器去进行更改

选择V6.19或者V5.06update7就可以了,不然编译会报错。

第一个箭头:进入调试模式

第二个箭头:断点的形成

这个警告是大家经常遇到的,就那个文件的最后一行没有以空格结尾。

知道出现没有错误没有警告就可以了。

keil5 --工程创建相关推荐

  1. 华大(小华)HC32L130工程创建

    一.我们先来认识一下华大驱动库包下的文件功能.注意,华大提供的包是没有M0+内核标准文件的,(HC32L130 是M0+)ST提供的驱动库包是有的,就是CORE文件夹. 第一步:创建文件夹目录 具体这 ...

  2. Keil5: 如何创建一个工程模板

    我们在开发一个项目时,大多时候是将准备已久的代码片段(或者是临时从网上找的)添加到自己的工程里面.如果直接将一大堆乱七八糟的文件堆到一个文件夹,非常不便管理.使用工作模板额好处是,让你的代码看起来更爽 ...

  3. [Cocoa]为已有的XCode工程创建Git仓库

    [转]为已有的XCode工程创建Git仓库 原文链接:点击这里 XCode 会自动为新建的工程创建本地 Git 仓库,但是如何为已有的工程创建 Git 仓库呢?Google 到下面这篇文章,贴在下面了 ...

  4. U-Boot源码目录分析(VScode工程创建及文件夹过滤)

    参考:U-Boot工程目录介绍 作者:一只青木呀 发布时间: 2020-10-21 14:47:30 网址:https://blog.csdn.net/weixin_45309916/article/ ...

  5. Android NDK工程创建与编译运行

    首发地址:http://www.eoeandroid.com/thread-201993-1-1.html 一. 工程创建 1. 创建一个Android工程 配置好开发环境并加载好对应版本sdk后,选 ...

  6. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之工程创建

    这节课你将会学到: - 使用Android Studio创建一个工程. - 使用命令行工具创建一个工程. 你也应该阅读: - 安装SDK - 管理工程 安卓项目包含了包括源代码在内的所有文件.Andr ...

  7. N76E003 工程创建教程

    一.准备工作: 1.下载编译工具keil c51 2.下载N76E003提供的板级支持包(BSP),可到nuvoton上下载 二.开发环境搭建 1.安装keil c51,然后和谐...不能随便发链接所 ...

  8. PCL——1.介绍及工程创建与测试

    目录 pcl介绍 工程创建与测试 CMakeLists.txt内容解释 pcl介绍 对于3D点云处理来说,PCL完全是一个模块化的现代C++模板库.其基于以下第三方库:Boost.Eigen.FLAN ...

  9. idea maven 删除dependencies_使用IDEA创建Maven工程 创建javase工程

    5. 使用IDEA创建Maven工程 - 创建javase工程 1.目标 能够使用IDEA创建javase的Maven工程 2.路径 创建java工程 java工程目录结构 编写Hello World ...

最新文章

  1. Spring.NET学习笔记(5)-对象生命周期和创建者对象
  2. ASP.NET MVC 4高级编程(第4版)
  3. 指针数组(主要用于二维的数组)
  4. QT的QSetIterator类的使用
  5. vue的双向绑定原理及实现
  6. python bool转string_Python:可以返回boolean和string吗?
  7. 深度学习弯道超车,领先行业不止一点点
  8. html动画曲线快速结束,CSS3 animation动画
  9. Tomcat学习总结(17)—— Tomcat生产环境中域名访问和连接MySQL
  10. hive中实现行转列_Hive之行转列lateral view用法
  11. 通俗易懂理解Attention机制
  12. Hibernate不能自动建表解决办法【转载】
  13. Python核心编程(第二版)【人民邮电出版社】
  14. 产业分析:阿里巴巴碳中和行动报告
  15. acer4752g笔记本opensuse 12关闭独立显卡
  16. vue中使用微信聊天表情
  17. php读取移动硬盘数据,什么是移动硬盘
  18. win10 服务(本机)在哪里打开? 怎么样打开系统服务窗口?
  19. 酷派android4.4.4到5.0,酷派大神F2和大神F1安卓5.0系统升级将到来
  20. linux编辑lnk文件,如何打开和编辑Windows .lnk快捷方式文件? | MOS86

热门文章

  1. 贾扬清离职 Facebook,即将加盟阿里硅谷研究院
  2. 独孤思维:赚钱,需要细水长流
  3. 关于用OC创建的项目调用swift代码
  4. 关于企业微信和钉钉的国际化条款收集
  5. SAKURA--博客园主题
  6. Java版赫夫曼编码字节和赫夫曼解码
  7. 学习 HTML+CSS 这一篇就够了
  8. 极光推送-一条消息被推送了两次解决办法
  9. Asp.net实现即时消息通讯(Ajax)
  10. 刷题记录(NC20115 [HNOI2015]菜肴制作)