keil5 --工程创建

news2025/1/20 18:33:46

一,文件夹介绍

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

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

我们在打开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就可以了,不然编译会报错。

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

第二个箭头:断点的形成

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1280184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LangChain 19 Agents Reason+Action自定义agent处理OpenAI的计算缺陷

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

配置SAP用户密码策略(不用重启服务器的方法)

最近公司审计,给我们提出了要优化密码策略的建议,原因是我们的密码策略太简单了。我稍稍研究了一下。之前是通过RZ10来配置,但是这种方法需要重启服务器,这就比较麻烦。其实有一种方法是通过配置密码策略,不要要重启的…

包装材料ERP是什么?包装材料ERP有什么用

市面上的包装材料种类多种多样,而这些差异化的包装材料对应的产成品规格、型号、质量、销售策略和生产工艺等方面存在诸多差异。 另外,通常包装材料企业的营销渠道比较广泛,不同的销售平台有多样化的业务流程和管理方式,相同的商…

8-2比较三个字符串大小(指针)

#include<stdio.h> #include<string.h>int main(){char str1[20], str2[20], str3[59];//相当于 int a,b,c;printf("please input three str:\n");gets(str1);//sacnf("%s",str1);这里str1是数组名&#xff0c;表示数组空间的起始地址&#xf…

qt 动态生成柱状图

cpp文件 #include "mform.h" #include "ui_mform.h" #include <QBarSeries> #include <QBarSet> #include <QtCharts> #include <QPushButton> #include <QtCharts/QChartView> #include <QtCharts/QPieSeries> #inc…

图解系列--功能追加协议,构建Web内容

功能追加协议 1.消除 HTTP 瓶颈的 SPDY 1.1.HTTP 的瓶颈 使用 HTTP 协议探知服务器上是否有内容更新&#xff0c;就必须频繁地从客户端到服务器端进行确认。如果服务器上没有内容更新&#xff0c;那么就会产生徒劳的通信。 若想在现有 Web 实现所需的功能&#xff0c;以下这些…

LLM | 一文搞懂Langchain的概念,相关组件,以及大模型微调~

本文主要介绍了 Langchain的概念&#xff0c;相关组件&#xff0c;以及大模型微调代码实现~ 1.什么是LangChain&#xff1f; LangChain是一个平台&#xff0c;提供工具和API&#xff0c;用于构建由语言模型&#xff08;LLM&#xff09;驱动的应用程序。它简化了 LLM 与项目的集…

自动驾驶学习笔记(十三)——感知基础

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 传感器 测距原理 坐标系 标定 同…

一个用c#瞎写的sftp工具

0.下载地址 https://wwus.lanzouj.com/iOZUv1gkgpze 密码:123456 1.能进行单个和批量下载, 没有弄上传 2.速度奇差,可能是某些地方没弄好.有一定的进度显示,但是不太准. 3.很多地方没弄好,有能力的自己弄一下 4.在app.config文件配置sftp

大小堆的实现(C语言)

目录 前言 一种完全二叉树&#xff1a;堆 堆的概念 堆的性质 建堆的时间复杂度 建堆的空间复杂度&#xff1a; 小堆的实现 必要补充 堆的初始化 堆的销毁 向上调整算法 堆的插入 向下调整算法 堆的删除 获取堆顶元素 获取堆中元素个数 堆的判空 最终代码 He…

SpringSecurity 三更草堂 学习笔记

SpringSecurity从入门到精通 0. 简介 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的…

数据结构奇妙旅程之顺序表和链表

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

第一百八十六回 DropdownMenu组件

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.1 DropdownMenuEntry 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容&#xff0c;本章回中将介 绍DropdownMenu组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 …

TeXworks 初次使用 debug方法

下载Texlive&#xff0c;打开TeXworks editor 编译排版&#xff0c;可能会报很多错&#xff1a; 1. ! Fatal Package fontspec Error: The fontspec package requires either XeTeX or (fontspec) LuaTeX. (fontspec) (fontspec) …

【前沿技术】扩散模型是什么

0. 前言 扩散模型的灵感来自非平衡热力学。他们定义了一个马尔可夫扩散步骤链&#xff0c;以缓慢地将随机噪声添加到数据中&#xff0c;然后学习逆转扩散过程以从噪声中构建所需的数据样本。与VAE或流动模型不同&#xff0c;扩散模型是通过固定程序学习的&#xff0c;并且潜在变…

【学术精选】地球系统科学顶级国际会议 IGARSS 2024

顶级会议推荐 英文名称&#xff1a;International Symposium of Geoscience and RemoteSensing, IGARSS 2024 英文简称&#xff1a;IGARSS 2024 中文名称&#xff1a;国际地球科学与遥感研讨会 ​会议信息 重要日期&#xff1a; Community Contributed Session Proposal Dea…

基于ZLMediaKit的webrtc实时视频传输demo搭建

环境 ubuntu 20.04 ​ gcc version 9.4.0 ​ cmake version 3.16.3 部署ZLMediaKit流媒体服务器 安装openssl 首先可以检查一下自己的openssl的版本如果是1.1.1以上就可以忽略这一步 wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar -xvzf openssl-1.1.1k…

基于springboot 学生学情预警系统-计算机毕设 附源码57567

springboot 学生学情预警系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运…

Python如何使用pip安装模块和包与绘图时如何显示中文

Python如何使用pip安装模块和包 使用pip安装python模块和包 方式一&#xff1a;1.进入命令行2.敲入pip命令&#xff1a;pip install 包名 。由于python官网下载速度太慢&#xff0c;可以通过添加参数从清华镜像下载包&#xff08;-i https://pypi.tuna.tsinghua.edu.cn/simpl…

Web漏洞分析-SQL注入XXE注入(上)

随着互联网的不断普及和Web应用的广泛应用&#xff0c;网络安全问题愈发引起广泛关注。在网络安全领域中&#xff0c;SQL注入和XXE注入是两个备受关注的话题&#xff0c;也是导致许多安全漏洞的主要原因之一。本博客将深入研究这两种常见的Web漏洞&#xff0c;带您探寻背后的原…