keil固件库的安装 库函数的配置

news2024/11/14 15:16:21

文章目录:

第一步:下载固件库文件

第二步:创建一个新的文件夹,用来保存固件库文件。在该文件夹下新建文件夹:CMSIS、Lib、Startup、User 

第三步:把库文件中文件放入我们建立对应的文件中

1.CMSIS模块

2.Startup模块

3.Lib模块

4.User模块

第四步:新建一个工程(这才是刚刚开始)

1.选择对应型号

2.添加库文件到对应keil软件里面新建模块中

第五步:工程初始化构建配置

1.配置 Preprocessor Sysbols下的Define宏定义(和移植有关) 

2.配置lnclude Paths路径

第六步:开始测试

1.修改main.c

2.运行结果

其他


固件库:是包含微控制器所有外设性能特征的函数库,由程序、数据结构和宏组成,包括每个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API
        使用固件库可以大大减少程序编写时间,降低开发成本



工程简介:STM32工程包括多个模块,包括CMSIS、Lib、Startup、User等模块
    CMSIS模块:提供内核驱动程序
    Lib模块:提供内部功能的基本函数库
    Startup模块:提供单片机启动程序
    User模块:提供用户程序(包括主函数)
    Basic模块:内部功能的驱动程序
    Hardware模块:外部硬件的驱动程序

 

第一步:下载固件库文件

第二步:创建一个新的文件夹,用来保存固件库文件。在该文件夹下新建文件夹:CMSIS、Lib、Startup、User 

第三步:把库文件中文件放入我们建立对应的文件中

 

 方法

 

1.CMSIS模块

G:\STM32F10固件库\STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
    core_cm3.c
    core_cm3.h



G:\STM32F10固件库\STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
    stm32f10x.h
    system_stm32f10x.c
    system_stm32f10x.h

 

 

2.Startup模块

G:\STM32F10固件库\STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
    下面全部的文件

3.Lib模块

G:\STM32F10固件库\STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver
    inc文件夹
    src文件夹

4.User模块

G:\STM32F10固件库\STM32F10x_StdPeriph_Lib_V3.5.0固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
    main.c
    stm32f10x_conf.h
    stm32f10x_it.c
    stm32f10x_it.h

 

 

第四步:新建一个工程(这才是刚刚开始)

1.选择对应型号

进入keil——>projiect——> new uvision project——> 选择刚刚建立的文件夹——> 为工程取一个名字——> 保存——> 弹出窗口选择Genenic CPU Data Base (没有就不管)——> 点击OK——> 选择STMicroelectronices——> STM32F103C8(选择你自己需要对应的)——> 点击OK——> 弹出对话框选择否

2.添加库文件到对应keil软件里面新建模块中

点击品字型图标——>在Groups下新建4个文件夹名字分别是CMSIS、Lib、Startup、User——>点击add files分别往刚刚建立的文件夹里面添加第三步里面筛选过的内容文件(注意Lib模块只是添加src文件夹里的文件、Startup只是添加startup_stm32f1Ox_md.s这一个文件)添加add完点close——>点击ok退出

 

 

 现状的效果

第五步:工程初始化构建配置

1.配置 Preprocessor Sysbols下的Define宏定义(和移植有关) 

点击这个魔术棒的按钮——>点击Target 下Xtal 输入8.0 ——> 点击Output 下勾选 Create HEX File——>点击C/C++ 在Define输入USE_STDPERIPH_DRIVER,STM32F10X_MD

USE_STDPERIPH_DRIVER,STM32F10X_MD

2.配置lnclude Paths路径

点击lnclude Paths右边的三个点 ——>依次新建文件(每建立一个就选择我们上面第三步导入的库文件每级文件夹包括子文件夹)——>(.\CMSIS  .\User .\Startup .\Lib\inc .\Lib\src)——>选择完后点击OK——>再点击OK

 

 

第六步:开始测试

1.修改main.c

清空main.c里面代码——>输入下面的代码——>点击keil左上角rebuild开始测试 

这里注意:
    1.最后面要空两行不然可能报错
    2.复制粘贴需要谨慎,因为进去很有可能会变(keil这个软件的内核原因)

#include "stm32f10x.h"


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

2.运行结果

 

 


其他

keil5固件库安装报错:在初始化里将traget标签页中的ARM Compiler改成version5

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

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

相关文章

【MIPI协议 C-PHY详解】

MIPI协议 C-PHY详解 前言一、C-PHY介绍1.1 C-PHY 与 D-PHY wire的区别1.2 3 wire的状态(states)变化1.3 C-PHY Data Mapping Between 7 Symbols and a 16-Bit Data1.3 C-PHY Lane States and Line Levels ~ LP Mode 二、C-PHY LP Package Format2.1 C-PH…

SQLI_LABS攻击

目录 Less1 首先来爆字段 联合注入 判断注入点 爆数据库名 爆破表名 information_schema information_schmea.tables group_concat() 爆破列名 information_schema.columns 爆值 SQLMAP Less-2 -4 Less -5 布尔 数据库 表名 字段名 爆破值 SQLMAP Less-6 …

​LeetCode解法汇总142. 环形链表 II

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 描述: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如…

ssl单向证书和双向证书校验测试及搭建流程

零、前提准备 说明: 50.50.1.118作为服务端,系统是 linux,openssl版本是:OpenSSL 1.1.1f 31 Mar 2020。 50.50.1.116是客户端,系统是Windows,openssl版本是:OpenSSL 3.0.5 5 Jul 2022 (Library…

Day07-作业(MySQL查询设计)

作业1: 根据如下需求完成SQL语句的编写 【仔细阅读题目需求】 数据准备: 创建一个数据库 db02_homework 执行如下SQL语句,准备测试数据 -- 员工管理(带约束) create table tb_emp (id int unsigned primary key auto_increment comment ID,username …

这款轻量级规则引擎,真香!

大家好,我是老三,之前同事用了一款轻量级的规则引擎脚本AviatorScript,老三也跟着用了起来,真的挺香,能少写很多代码。这期就给大家介绍一下这款规则引擎。 简介 AviatorScript 是一门高性能、轻量级寄宿于 JVM &…

阿里云率先荣获容器集群稳定性先进级认证

7 月 25 日,由中国信通院发起的“2023 稳保体系”评估结果在可信云大会现场公布,阿里云容器服务 ACK 成为首批通过“云服务稳定运行能力-容器集群稳定性”评估的产品,并荣获“先进级”认证。 云原生技术正在激活应用构建新范式,构…

数据结构初阶--树和二叉树的概念与结构

目录 一.树 1.1.树的概念 1.2.树的相关概念 1.3.树的表示 1.4.树在实际中的运用 二.二叉树 2.1.二叉树的概念 2.2.特殊的二叉树 满二叉树 完全二叉树 2.3.二叉树的性质 2.4.二叉树的存储结构 顺序存储 链式存储 一.树 1.1.树的概念 树是一种非线性的数据结构&am…

【SVN】merge 合并trunk branch代码,解决冲突

在命令行模式下进入待merge的项目根目录 1.将指定url上的代码merge到本地当前文件夹下(--dry-run表示test merge) E:\project\ry\trunk\ees-tem>svn merge http://192.168.0.2/svn/repo/ProD/JinZay/EE S/code/ees-tem/branches/develop -c 1149491 …

5个方法!轻松提升Windows Server 2016性能!

​Windows Server 2016性能降低 ​“我们在使用Windows Server 2016时遇到了卡顿不流畅的问题,服务器(300GB硬盘、16GB内存、4核CPU)主要用于使用Office(Word、Outlook、Excel)和上网,客户表示很慢&…

顺序表小项目---通讯录的实现

文章目录 前言一、静态通讯录的需求分析与实现1.通讯录的结构体需求2.通讯录的功能需求3.通讯录的主函数创建4.通讯录的所用函数的实现1.通讯录的初始化2.通讯录的增加联系人3.通讯录的查找联系人4.通讯录的删除联系人5.通讯录的修改联系人6.联系人的排序 二、静态通讯录的需求…

使用Debate Dynamics在知识图谱上进行推理(2020)7.31+8.1

使用Debate Dynamics在知识图谱上进行推理 摘要介绍背景与相关工作我们的方法状态行为环境policiesDebate Dynamics 摘要 我们提出了一种新的基于 Debate Dynamics 的知识图谱自动推理方法。 其主要思想是将三重分类任务定义为两个强化学习主体之间的辩论游戏,这两…

n位的二进制可以表示多少个小数?

文章目录 导论推理过程结论练习 导论 首先来思考一个十进制小数是如何被转化成二进制的。它使用的方式:乘基取整。你想把它化成n进制,基数就是n。以小数0.6875为例,将它化成二进制 那么它化成二进制0.1101。以原码或补码表示成01101。 并不…

Gis入门,使用起止点和两个控制点生成三阶贝塞尔曲线(共四个控制点,线段转曲线)

前言 本章讲解如何在gis地图中使用起止点和两个控制点(总共四个控制点)生成三阶贝塞尔曲线。 二阶贝塞尔曲线请参考上一章《Gis入门,如何根据起止点和一个控制点计算二阶贝塞尔曲线(共三个控制点)》 贝塞尔曲线(Bezier curve)介绍 贝塞尔曲线(Bezier curve)是一种…

用Delphi编写一个通用视频转换工具,让视频格式转换变得更简单

用Delphi编写的简单视频格式转换程序,它使用TComboBox、TOpenDialog和TSaveDialog组件来选择转换格式、选择源视频文件和选择目标视频文件。程序还使用TEdit组件允许用户输入参数,然后将这些组件中的信息拼接成转换命令并在DOS窗口中运行它。 procedure…

认识springboot 之 了解它的日志 -4

前言 本篇介绍springboot的日志,如何认识日志,如何进行日志持久化,通过日志级别判断信息,了解Lombok插件的使用,通过Lombok自带注释更简洁的来完成日志打印,如有错误,请在评论区指正&#xff0…

动手学深度学习—深度学习计算(层和块、参数管理、自定义层和读写文件)

目录 1. 层和块1.1 自定义块1.2 顺序块1.3 在前向传播函数中执行代码 2. 参数管理2.1 参数访问2.1.1 目标参数2.1.2 一次性访问所有参数2.1.3 从嵌套块收集参数 2.2 参数初始化2.2.1 内置初始化2.2.2 自定义初始化 2.3 参数绑定 3. 自定义层3.1 不带参数的层3.2 带参数的层 4. …

【PWN · 栈迁移】[BUUCTF][Black Watch 入群题]PWN

记一道栈迁移题目 前言 【PWN 栈迁移】[BUUCTF]ciscn_2019_es_2_Mr_Fmnwon的博客-CSDN博客 一、代码审计 总结信息如下: 1. 第12行存在栈溢出漏洞,刚好可以溢出覆盖到ebp和ret 2. 第9行可输入大量数据到bss段 二、思路过程 1.栈迁移 进能够覆盖e…

Nodejs 第八章(npm搭建私服)

构建npm私服 构建私服有什么收益吗? 可以离线使用,你可以将npm私服部署到内网集群,这样离线也可以访问私有的包。提高包的安全性,使用私有的npm仓库可以更好的管理你的包,避免在使用公共的npm包的时候出现漏洞。提高…

SAM(Segment Anything)大模型论文汇总

A Comprehensive Survey on Segment Anything Model for Vision and Beyond 论文:https://arxiv.org/abs/2305.08196 25页综述,198篇参考文献!52个开源项目!本文第一个全面回顾了分割一切模型(SAM)的研究和应用进展,…