51单片机实训day2——创建Keil工程(一)

news2025/1/23 11:53:35

以管理员身份打开软件!!!
以管理员身份打开软件!!!
以管理员身份打开软件!!! 

内  容:Keil工程创建

学  时:2学时

知识点:开发固件库介绍、熟悉Keil功能、新建工程配置过程

重点:新建工程配置过程

难点:新建工程配置过程

时间:2022年12月20日 9:00~11:50

目录

1 开发固件库介绍 

2 工程文件添加

步骤1:

步骤2:

步骤3:

步骤4:

步骤5:

步骤6:

步骤7: 启动文件选择

步骤8:

3 工程配置 

步骤1:

步骤2:

步骤3:

步骤4:

步骤5:

步骤6:

步骤7:

步骤8:

步骤9:


1 开发固件库介绍 

        意法半导体公司(ST)为方便开发者,提供了开发函数库,称为固件库,屏蔽了很多直接操作硬件的底层操作。基于库函数的开发,可以更方便快捷。本次项目采用3.5固件库,固件库可以在提供的资料包中找到,也可以从意法半导体公司的官方网站上下载。进入库文件的根目录,根目录下有一些子目录和文件,如图1所示。

图1 库文件目录 

●Libraries目录:库文件源码和系统启动相关的文件。

●Project目录:一些开发的示例和工程模板。

●Utilities目录:官方提供的一些开发例程

●库帮助文档:库函数的功能和参数描述,是官方提供的帮助文档。

2 工程文件添加

步骤1:

        打开keil,选择Project->New uVision Project,如下图所示,选择工程的存储位置、工程名字,点击保存。

 图2 选择新建工程存储位置

步骤2:

        选择要用的CPU,自动化分拣系统中使用的是STM32F103R6,点击ok,如下图所示。

图3 选择CPU型号

步骤3:

        弹出如下Manage Run-Time Environment窗口,点击关闭。

图4 Manage Run-Time Environment窗口

步骤4及以后都是在windows上的操作

步骤4:

        在keil工程的存储目录下新建四个文件夹,如下图所示,分别为:

        cmsis: 存放ARM处理器外围标准接口;

        fwlib: 存放库文件;

        source: 存放用户编写的代码文件;

        startup: 存放开机启动文件,当STM32 芯片上电启动的时候,受限会执行启动文件的汇编程序,从而建立起来C 语言的运行环境。

图5 新建目录文件夹 

步骤5:

        将如下路径下的文件复制到fwlib文件夹复制到fwlib文件夹。

 图6 fwlib文件目录

步骤6:

        将如下图所示路径的文件复制到cmsis文件夹。【.c .h文件都要复制】

步骤7: 启动文件选择

        启动文件作用如下:

        (1)初始化堆栈指针 SP;

        (2)初始化程序计数器指针 PC;

        (3)设置堆、栈的大小;

        (4)设置异常向量表的入口地址;

        (5)配置外部 SRAM作为数据存储器;

        (6)设置 C库的分支入口__main(最终用来调用 main函数);

          STM32F103xx系列,为我们提供了四种启动文件,以适应不同flash容量的芯片。

        STM32F103R6 具有32K flash,所以启动文件选择startup_stm32f10x_ld.s,将如下图所示路径下的文件复制到startup文件夹。

 图8 startup文件目录

步骤8:

        将如下图所示路径文件复制到source文件夹。

 

图9 source文件目录 

上述步骤,确保复制粘贴时无误,仔细耐心‼️   

3 工程配置 

步骤1:

        如下图所示,点击配置文件按钮,在中间栏(Grops)使用New按钮依次添加startup、cmsis、fwlib、source文件夹。

图10 配置文件界面  

步骤2:

        在右边栏(Files)添加各目录源文件,此目录文件即为keil创建路径下各目录的源文件。         

注意fwlib里面加入的是.c文件而不是.h文件 

 图11 添加各目录源文件

步骤3:

        添加完成后,文件目录如图12所示。

图12 文件目录 

步骤4:

        设置头文件路径:根据如下路径找到添加头文件的位置:魔法棒 -> C/C++ -> Include Paths,如图13所示。点击魔法棒,选择C/C++,添加Define。

图13 设置头文件路径 

步骤5:

        点击New按钮,...按钮,添加头文件路径Include Paths。

注意不要直接手动输入,点击 ... 按钮去windows文件夹中选择路径。

 图14 添加头文件路径

步骤6:

添加宏,两个宏中间使用逗号 , 隔开(英文模式下输入)

STM32F10X_LD:告诉STM32标准库,我们使用的芯片类型是小容量的,使STM32标准库根据我们选定的芯片型号来配置。

USE_STDPERIPH_DRIVER:使stm32f10x.h头文件包含标准外设头文件stm32f10x_conf.h,

图15 添加宏

步骤7:

精简main函数。

#include "stm32f10x.h"
#include <stdio.h>

int main(void)
{
	while(1)
	{
	}
}

图16 精简main函数 

步骤8:

修改频率。

 图17 修改system_stm32f10x.c

步骤9:

点击编译按钮,编译工程。0 error

上午学习任务已完成! 

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

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

相关文章

【Linux】进程替换与shell的模拟实现

目录 一、进程替换 1.1 进程替换的概念 1.2 替换函数 二、命令行解释器-Shell 2.1 shell的实现与运行 2.2 步骤讲解 一、进程替换 1.1 进程替换的概念 当我们使用 fork 函数创建子进程后&#xff0c;父子进程各自执行父进程代码的一部分。那如果创建的子进程想要执行一…

UG/NX二次开发Siemens官方NXOPEN实例解析—2.4 File2Points

列文章目录 UG/NX二次开发Siemens官方NXOPEN实例解析—2.1 AssemblyViewer UG/NX二次开发Siemens官方NXOPEN实例解析—2.2 Selection UG/NX二次开发Siemens官方NXOPEN实例解析—2.3 Selection_UIStyler UG/NX二次开发Siemens官方NXOPEN实例解析—2.4 File2Points 前言 随着…

Python开发的编译神器PyCharm----测试从业来编写Python脚本最钟意的工具

目录 前言&#xff1a; 一、PyCharm简介 二、PyCharm下载与安装 1、下载 2、安装 三、PyCharm新增Python项目 步骤1、新增 步骤2、路径配置 步骤3、环境选择 步骤4、 项目运行 四、画圣诞树 前言&#xff1a; 本文将为大家介绍PyCharm下载安装与初步的使用&#xff0c;初…

外汇天眼:美国11月独栋房屋建设跌至两年半低点!

美国商务部周二公布了这份令人沮丧的报告&#xff0c;此前周一有消息称&#xff0c;12月份房屋建筑商信心连续第12个月出现创纪录的下滑。美国11月独栋房屋建设跌至两年半低点&#xff0c;未来建筑许可大幅下滑&#xff0c;因抵押贷款利率上升继续打压楼市活动。 具体数据显示&…

(十九)Vue之组件和模块概念

文章目录传统编程组件化编程模块模块化组件化Vue学习目录 上一篇&#xff1a;&#xff08;十八&#xff09;Vue之生命周期 传统编程 一个html引入大量的CSS、JS文件&#xff0c;使得结构混乱、代码复用率低 传统方式编写应用存在的问题&#xff1a; 1.依赖关系混乱、不好维护…

某讯滑块验证码反汇编分析-第三章

某讯滑块验证码反汇编分析-第三章collect明文处理vData明文处理collect明文处理 上一篇已经跟到明文的拼接函数&#xff0c;接下来看看get函数的返回值&#xff0c;对什么进行拼接。 在这一次运行中&#xff0c;第一次get返回的是一个10&#xff0c;是怎么计算出来的呢&#x…

[XCTF]red_green(难度2)

得到一个乱码的图片&#xff0c;查看信息&#xff0c;联系“red_green” 目录 前言 一、题目重述 二、解题思路 1.套路来一遍 2.过程中注意到以下两点&#xff1a; &#xff08;1)stegsolve图层中只有red/green&#xff0c;与题目暗合 &#xff08;2)zsteg查看隐写信息发…

springboot+jsp实验室管理系统fu1ju-

目录 第一章 绪论 5 1.1 研究背景 5 1.2系统研究现状 5 1.3 系统实现的功能 6 1.4系统实现的特点 6 1.5 本文的组织结构 6 第二章开发技术与环境配置 7 2.1 Java语言简介 7 2.2JSP技术 8 2.3 MySQL环境配置 8 2.4 MyEclipse环境配置 9 2.5 mysql数据库介绍 9 2.6 B/S架构 9 第三…

2022年度安徽省职业院校技能大赛中职组“网络搭建与应用”赛项竞赛试题

2022年度安徽省职业院校技能大赛 中职组“网络搭建与应用” 赛项竞赛 &#xff08;总分1000分&#xff09; 竞赛说明 一、竞赛内容分布 “网络搭建与应用”竞赛共分三个部分&#xff0c;其中&#xff1a; 第一部分&#xff1a;网络搭建及安全部署项目&#xff08;500分&…

SpringCloud-Feign远程调用

&#x1f341;Feign的介绍 Feign是一个声明式的http客户端&#xff0c;官方地址: https://github.com/0penFeign/feign作用就是帮助我们优雅的实现http请求的发送&#xff0c;解决上面提到的问题。 &#x1f341;定义和使用Feign客户端 1.引入依赖 在order-service服务的po…

【PyTorch Geometric】工具包安装部署 过程记录(图模型学习 需要安装的工具包);图神经网络 工具包安装过程记录

目录 部署过程下载别的版本试试部署过程 在常规的安装过程中,若直接通过pip,老师讲 大概率无法成功安装。比较正规的安装方法是,下载好工具包,手动安装。 首先通过 Jupyter Notebook打开配置文档: 有些步骤在该文档中。 点击上图中的超链接,进入对应的 GitHub。 进去…

Linux进程间通信(一):匿名管道的原理和使用

文章目录一、前言二、什么是匿名管道&#xff1f;三、匿名管道的原理三、匿名管道的创建四、匿名管道实现数据传输五、匿名管道实现进程控制六、匿名管道特点总结一、前言 &#xff08;在阅读本文前&#xff0c;需要具备Linux基础IO的基本知识&#xff09;  在某些特定情况下…

【Linux】Linux下基本指令(二)

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《Linux》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1. Linux基本指令&#xff1a;&#xff08;续&#xff09; 1.1man指令&am…

英国访问学者AV签证超期怎么办?

英国AV签证只给12个月整&#xff0c;关于 AV签证超期怎么办&#xff1f;知识人网访问学者老师和大家聊一聊&#xff1a; 一、呆不满一年(360天)会遇到的问题主要有&#xff1a; 1、无法申请留学回国科研启动基金。 2、需要向CSC返还一定的资助费用。 3、国内一些地方判断一个…

数字化转型如何认清本质少被忽悠:小步快跑看到项目效果再推下一步

这些年&#xff0c;我们见识了太多新概念&#xff1a;数据智能、Data Fabric、数据虚拟化还有最著名的“数据中台”。 然而&#xff0c;跟几年前疯狂追逐这些热词不同&#xff0c;或者说因为已经踩坑踩到晕厥。动辄一个千万的中台项目投入进去&#xff0c;上线后高层看数还是要…

【网络安全】Redis未授权访问查看敏感文件

前言 什么是未授权访问漏洞呢&#xff1f;也就是没有权限&#xff0c;但是可以访问站点或者服务器的漏洞&#xff0c;称之为未授权访问漏洞&#xff0c;这个属于高危漏洞。比如我们常见的路由器未授权访问等等。 一、准备阶段 service httpd.service start 开启apache服务se…

【文档编辑】积累

文章目录WordExcel填充表格样式函数Markdownsublime搜索jsonhexWord Word 2016 撰写论文(1): 公式居中、编号右对齐 Excel 填充 EXCEL excel中运用ctrlD、ctrlenter、ctrlE批量填充数据 表格样式 Excel技法&#xff1a;三招实行Excel隔行填色 函数 COUNTA 函数 step1&…

最小生成树算法:Kruskal 与 Prim算法

Ⅰ. 最小生成树 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成树就不再连通&#xff1b;反之&#xff0c;在其中引入任何一条新边&#xff0c;都会形成一条回路。 若连通图由 n 个顶点组成&…

向前主动防御 | 云蜜罐年底感恩回馈活动

安全事件频发&#xff0c;防御能力备受考验2022年接近尾声&#xff0c;回顾全年&#xff0c;数据泄露、网络攻击、漏洞发现等各个层面呈爆发态势&#xff0c;无论在数量还是影响面上&#xff0c;均超过以往任何年度。信息泄露创历史新高&#xff0c;2022年仅上半年泄露或被盗的…

计算机组成原理——期末复习题

113、计算机系统如何进行多级划分&#xff1f;这种分级观点对计算机设计会产生什么影响&#xff1f;答案&#xff1a;计算机系统通常由五个以上不用的级组成&#xff0c;具体如下&#xff1a; 第1级是微程序设计级或逻辑电路级&#xff0c;该级由硬件直接执行&#xff1b; 第…