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

news2025/1/31 18:58:52

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

内  容: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及以后都是在window上的操作

步骤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创建路径下各目录的源文件。         

 图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/104694.html

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

相关文章

从英语翻译到人工智能:我如何用两年时间跨界转行

在这两年里&#xff0c;我经历了以下大大小小的里程碑&#xff1a; 2016 年初&#xff1a;在德国刚开始读英语语言学硕士没多久&#xff0c;萌生了转方向到计算机语言学&#xff08;Computational Linguistics&#xff0c;后来我才知道那与自然语言处理 Natual Language Proces…

【树莓派不吃灰】兄弟连篇⑦ 日志管理

目录1.日志管理1.1 日志文件的功能和分类1.2 日志文件保存位置和文件介绍1.3 内核及系统日志1.4 日志消息的级别1.5 日志记录的一般格式1.6 用户日志分析1.6.1 users 查看能登录的用户1.6.2 who,w查看在线登录的用户1.6.3 last,lastb查看登录成功的用户和登录失败的用户1.7 日志…

为什么现在Python在量化交易中这么火?

前言 Python作为发展较快的编程语言&#xff0c;可以让程序员更加高效地工作和集成系统。Python的语法也是优先考虑了可读性&#xff0c;同时支持较少的代码行。 一般来说&#xff0c;Python语言是中低端量化交易平台最普遍的选择。中低端量化交易平台&#xff0c;支持复杂度…

40 CPP函数模板高级

#include "iostream" using namespace std; template <typename T1, typename T2> void func(T1 a, T2 b) {//其它代码??? tmp a b; //返回值该用什么呢?//其它代码 } void test() { } int main() {test();return 0; } 1 decltype关键字 在C中&#xf…

工控CTF之协议分析1——Modbus

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

猿如意中的【Parrot-树莓派-5.0 arm64位 】工具框架的介绍详情

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意&#xff1f; 2.2 如何下载猿如意&#xff1f; 三、工具介绍 四、Parrot-树莓派-5.0 arm64位功能介绍 五、软件安装过程 5.1 如何在猿如意中下载开发框架Parrot-树莓派-5.0 arm64位&#xff1f; 5.2 下载完成的Pa…

JMeter中如何简单地使用cookie

JMeter是一个集接口调试和性能测试于一体的测试工具&#xff0c;是很多技术型测试人员的必备工具&#xff0c;下面介绍一个如何简单地在JMeter中使用cookie登录一个网站并进行简单断言&#xff0c;拿广大测试人员最熟悉的51testing论坛来举例~ 一、收集登录数据 1.用Chrome打…

真正“自学”入门编程/程序员是一种怎样的体验

当年没考上大学&#xff0c;读了自考。 从那以后就开始了自学生涯&#xff0c;第一年还乖乖的去听课&#xff0c;第二年就完全放弃课堂了。 后来考本&#xff0c;读研&#xff0c;中间穿插学点通信&#xff0c;画图什么的&#xff0c;全部自己来。 仔细想想&#xff0c;读研…

我转行前端花了11个月

当你看到这行文字时&#xff0c;我假设你是一个准备转行前端&#xff0c;或者正在转行前端的人。我刚花了11个月转行前端。和你聊聊我的故事吧。 转行花了多久&#xff1f;11个月 准备转行前端时&#xff0c;我看了很多过来人写的转行经验。别人什么条件&#xff0c;转行花了…

SpringBoot3.0整合chatGPT

导读 导读 | 12月总体来说互联网的技术圈是非常热闹的&#xff0c;chatGPT爆火&#xff0c;SpringBoot3.0发布等重磅陆消息续进入大家的视线&#xff0c;而本文作者将以技术整合的角度&#xff0c;带大家把最火的两个技术整合在一起。读完本文&#xff0c;你将熟悉SpringBoot3…

(2022年12月最新)SpringBoot远程代码执行whitelabel error page SpEL RCE漏洞复现

1、 漏洞原理 spring boot 处理参数值出错&#xff0c;流程进入org.springframework.util.PropertyPlaceholderHelper 类中 此时 URL 中的参数值会用 parseStringValue 方法进行递归解析。其中 ${} 包围的内容都会被org.springframework.boot.autoconfigure.web.ErrorMvcAutoC…

电机分类和原理

一&#xff1a;核心原理 电生磁。 电机&#xff08;英文&#xff1a;Electric machinery&#xff0c;俗称“马达”&#xff09;是指依据电磁感应定律实现电能转换或传递的一种电磁装置。分为电动机&#xff08;符号为M&#xff09;和发电机&#xff08;符号为G&#xff09;。…

如何做好预算管理?预算上接战略,下接绩效,如何形成战略-计划-预算-绩效的闭环?

如何做好预算管理&#xff1f; 以前觉得经营是对净利润负责&#xff0c;年底有钱赚就可以&#xff0c;从未考虑过如何才能赚更多的钱&#xff0c;也未考虑过经营是对股东负责。 现在觉得经营的门道确实很大&#xff0c;以前看的面窄&#xff0c;并没有真正理解预算的意义&…

WPF中如何实现页面的切换

总目录 文章目录总目录前言一、准备工作1.搭建一个简单的mvvm项目结构二、实现1.使用Frame控件的方式实现2.使用反射的方式实现3.实现效果总结前言 本文主要讲述如何在同一个窗体内&#xff0c;实现不同功能模块的页面切换。 一、准备工作 1.搭建一个简单的mvvm项目结构 首先…

『纯canvas实现』你可能想象不到,粒子效果配合时钟还能这么玩?

前言 大家好&#xff0c;我们知道一般学习 canvas 时&#xff0c;做的最多的莫过于各种时钟&#xff0c;像下面这样的&#xff1a; 亦或是这样的&#xff1a; 或是这样的&#xff1a; 上面给大家展示了三种风格各异的时钟效果&#xff0c;但都没有让人眼前一亮的感觉&#xff…

一颗红心,三手准备,分别基于图片(img)/SCSS(样式)/SVG动画实现动态拉轰的点赞按钮特效

华丽炫酷的动画特效总能够让人心旷神怡&#xff0c;不能自已。艳羡之余&#xff0c;如果还能够探究其华丽外表下的实现逻辑&#xff0c;那就是百尺竿头&#xff0c;更上一步了。本次我们使用图片、SCSS样式以及SVG图片动画来实现“点赞”按钮的动画特效&#xff0c;并比较不同之…

CLM陆面过程模式

NCAR陆面模式CLM (Community Land Model)是地球系统模式CESM (Community Earth System Model)中的陆面过程模式分量&#xff0c;是在结合了BATS、LSM和IAP94等众多陆面模式的优点后&#xff0c;加入水文过程而开发出的综合性陆面模式&#xff0c;是目前国际上发展最为完善且得到…

java实现每日给女友微信发送早安等微信信息

大家好&#xff0c;我是雄雄。 前言 据说这个功能最近在抖音上很火&#xff0c;我没有抖音&#xff0c;没有看到。 但是我在掘金和CSDN上看了&#xff0c;相关案例确实很多&#xff0c;但是大家都是借助于了微信服务号&#xff0c;在我看来&#xff0c;效果很不佳。 其实我原…

如何在 Ubuntu 上将 ONLYOFFICE 文档集成至 Redmine

ONLYOFFICE 文档是一款符合 GNU AGPL v3.0 的开源办公套件。其中包含基于 Web 的查看器和协作编辑器&#xff0c;可用于处理文本文档、电子表格以及与 OOXML 格式高度兼容的演示文稿。 ONLYOFFICE 文档可与 Nextcloud、ownCloud、Seafile、Alfresco、Plone 等多种云服务进行集…

RabbitMQ(消息中间件)入门

目录 一. 什么是MQ&#xff1f; 二. 应用场景 三. 主流MQ框架 四. Docker安装部署RabbitMQ 1.查询镜像 2.获取镜像 3.运行镜像 四.进入RabbitMQ管理平台进行相关操作 五. RabbitMQ管理平台 1.Virtual Hosts 2.RabbitMQ关键名词 六. MQ的核心概念 七. springboot整合ra…