【stm32】新建stm32标准库函数工程

news2024/11/15 10:26:16

新建stm32标准库函数工程

    • 一.工程必要文件创建
    • 二、新建main函数
    • 三、添加库函数文件
    • 四、补充User文件夹下的文件
    • 五、工程启动文件选择

官方提供的stm32标准外设库文件所包含的内容介绍:
在这里插入图片描述

一.工程必要文件创建

前提:先通过keil新建一个项目工程

1.在新建工程的文件夹下新建【startup】文件夹,其余为新建工程自动生成的文件
在这里插入图片描述
2.在标准外设库文件夹下找到以下文件将其拷贝到工程中新建的【start】文件夹下

  • stm32启动文件,启动文件的选择稍后介绍
    在这里插入图片描述

  • stm32f10x.h:stm32外设寄存器描述文件,描述stm32有哪些寄存器和寄存器所对应的地址

  • system_stm32f10x.c和system_stm32f10x.h:这个文件的作用是用来配置时钟,stm32f103主频72MHZ就是这两个文件配置的
    在这里插入图片描述

  • core_cm3.c和core_cm3.h:内核寄存器描述文件(stm32是由内核和内核外围的设备组成的,内核寄存器描述和外围设备的描述文件不是在一起的,所以需要添加此文件)
    在这里插入图片描述

  • 工程的必要文件拷贝完成,如下
    在这里插入图片描述

  • 把以上文件添加到keill工程中,将组名称改为【start】,双击或右键选择添加存在的文件,找到刚刚添加到【start】文件夹的文件,将以下文件选择并添加,如下
    在这里插入图片描述

  • 在工程选项里添加【start】文件夹路径,工程才可以找到此文件夹下的头文件路径
    在这里插入图片描述

二、新建main函数

1.在项目工程文件夹先新建【User】文件夹
在这里插入图片描述
2.在keil中添加组,名称为【User】,并在组内添加main.c文件,测试第一步添加的工程必要文件是否成功,出现 0error 0warning 说明添加成功
在这里插入图片描述

注意:若是使用寄存器开发,那么工程配置已经完成,下面介绍配置库函数

三、添加库函数文件

1.找到标准外设库驱动的文件夹下
在这里插入图片描述
2.将头文件和源文件都复制到项目工程中新建的【Library】文件夹下
在这里插入图片描述
3.在keil中添加组并将库函数文件添加进去
在这里插入图片描述

四、补充User文件夹下的文件

1.在标准外设库文件夹中【template】文件夹下将以下文件存放到【User】目录下,并将这3个文件添加进keil中。
\qquad stm32f10x_conf.h:配置库函数头文件的包含关系
\qquad stm32f10x_it.c和stm32f10x_it.h:存放中断函数
在这里插入图片描述
2.在keil中添加宏定义,将”stm32f10x.h“中的宏定义”USE_STDPERIPH_DRIVER“复制到工程选项中,需要定义这个宏定义才能使用标准外设库,也就是库函数,再将其余文件夹头文件路径一起添加进去,此时基于库函数的工程就建好了
在这里插入图片描述

五、工程启动文件选择

STM32F1系列的型号分类和启动文件的选取:
在这里插入图片描述

工程架构:
在这里插入图片描述

PS:建文件夹没有固定的限制,可以自定义创建
后续需要添加各外设驱动文件时,可按照以上方法进行添加

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

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

相关文章

Linux系统升级OpenSSH版本到openssh-9.8p1

1、升级OpenSSH就要对应的升级OpenSSL,所以要同时要准备openssh-9.8p1.tar.gz和openssl-3.3.1.tar.gz 2、将两个压缩包上传到/home/user目录。 3、为了防止ssh安装失败导致无法连接服务器,需要先安装并启动telnet连接协议,命令如下&#xf…

2024 微信小程序 学习笔记 第一天

微信公众平台 (qq.com) 小程序代码的构成 项目结构 JSON 配置文件 WXML 模板 WXSS 样式 JS 逻辑交互 小程序的宿主环境 宿主 通信模型 运行机制 组件 视图组件 view scrioll-view swiper swiper-item swiper属性 text button image image mode属性 小程序API 协…

[Linux]CentOS软件的安装

一、Linux 软件包管理器 yum 1.Linux安装软件的方式 在linux中安装软件常用的有三种方式: 源代码安装(我们还需要进行编译运行后才可以,很麻烦) rpm安装(Linux的安装包,需要下载一些rpm包,但是…

SpringBoot+Vue实现简单的文件上传(txt篇)

SpringBootVue实现简单的文件上传 1 环境 SpringBoot 3.2.1&#xff0c;Vue 2&#xff0c;ElementUI 2 页面 3 效果&#xff1a;只能上传txt文件且大小限制为2M&#xff0c;选择文件后自动上传。 4 前端代码 <template><div class"container"><el-…

MySQl高级篇 -索引优化篇

索引 InnoDB采用了一个B数来存储索引&#xff0c;使得在千万级数据量的一个情况下&#xff0c;树的高度可以控制在3层以内&#xff0c;而层高代表磁盘IO的一个次数&#xff0c;因此基于索引查找可以减少磁盘IO的次数 MySQL的索引是在存储引擎层实现的&#xff0c;不同的存储引…

AI 歌词创作:突破想象,惊艳听觉

在音乐的世界里&#xff0c;歌词是触动心灵的钥匙&#xff0c;是引发共鸣的桥梁。而如今&#xff0c;AI 歌词创作正以其惊人的力量&#xff0c;突破我们的想象&#xff0c;为我们带来前所未有的听觉盛宴。 “妙笔生词智能写歌词软件&#xff08;veve522&#xff09;”便是这场…

Prometheus 云原生 - Prometheus 数据模型、Metrics 指标类型、Exporter 相关

目录 开始 Prometheus 数据类型 简单理解 时序样本 格式 和 命名要求 Metrics 指标类型 Counter 计数器 Gauge Histogram Summary Exporter 相关 概述 Exporter 类型 Exporter 规范 开始 Prometheus 数据类型 简单理解 a&#xff09;安装好 Prometheus 后会暴露…

tomcat的优化、动静分离

tomcat的优化 tomcat自身的优化 tomcat的并发处理能力不强&#xff0c;大项目不适应tomcat做为转发动态的中间件&#xff08;k8s集群&#xff0c;pytnon rubby&#xff09;&#xff0c;小项目会使用&#xff08;内部使用的&#xff09;动静分离 默认配置不适合生产环境&…

基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现

注&#xff1a;每个学校每个老师对论文的格式要求不一样&#xff0c;故本论文只供参考&#xff0c;本论文页数达到60页以上&#xff0c;字数在6000及以上。 基于SpringBootVueJS微信小程序技术的图书森林共享小程序设计与实现 目录 基于SpringBootVueJS微信小程序技术的图书森…

自动驾驶-端到端分割任务

上采样 bed of nails interpolation transposed convolutions 1. 上采样 (Upsampling) 上采样是一种技术&#xff0c;用于增加数据集中的样本数量或是提高信号的分辨率。在图像处理中&#xff0c;上采样通常指的是增加图像的像素数量&#xff0c;从而使图像变得更大。这可…

MySQL 中的几种锁

MySQL 中的锁 #按锁粒度如何划分? 按锁粒度划分的话&#xff0c;MySQL 的锁有&#xff1a; 表锁&#xff1a;开销小&#xff0c;加锁快&#xff1b;锁定力度大&#xff0c;发生锁冲突概率高&#xff0c;并发度最低;不会出现死锁。行锁&#xff1a;开销大&#xff0c;加锁慢…

Prometheus 云原生 - 基于 file_sd、http_sd 实现 Service Discovery

目录 开始 为什么需要服务发现机制 File Service Discovery&#xff08;file_sd&#xff09; 基本概念 配置方式 使用案例 HTTP Service Discovery&#xff08;http_sd&#xff09; 基本概念 配置方式 使用案例 开始 为什么需要服务发现机制 我们知道在 Prometheus …

【Linux】:文件fd

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家带来关于文件fd的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据…

Java二十三种设计模式-单例模式(1/23)

引言 在软件开发中&#xff0c;设计模式是一套被反复使用的、大家公认的、经过分类编目的代码设计经验的总结。单例模式作为其中一种创建型模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。本文将深入探讨单例模式的概念、实现方式、使用场景以及潜…

C语言 ——— 模拟实现strcpy函数

目录 strcpy函数功能介绍 strcpy函数的模拟实现 strcpy函数功能介绍 学习并使用strcpy函数-CSDN博客 strcpy函数的模拟实现 代码演示&#xff1a; #include<stdio.h> #include<assert.h> char* my_strcpy(char* destination, const char* source) {assert(des…

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测3d bev cam范式1 Transformer attention is all you need 20172 ViT vision transformer ICLR 2021google3 swin transformer 2021 ICCV bestpaper MS4 DETR 20205 DETR3D 20216 PETR 20227 bevformerLSSbevdetcaddn指标 mAP NDS标注&#xff1a…

kubernetes——Istio(三)

一、安全 将单一应用程序分解为微服务可提供各种好处&#xff0c;包括更好的灵活性、 可伸缩性以及服务复用的能力。但是&#xff0c;微服务也有特殊的安全需求&#xff1a; 为了抵御中间人攻击&#xff0c;需要流量加密。为了提供灵活的服务访问控制&#xff0c;需要双向 TL…

【P2P_BMA_P2MP_NBMA】

基本概念介绍 1. BMA&#xff08;Broadcast&#xff09; 广播型多路访问技术&#xff0c;在一个MA&#xff08;多路访问&#xff0c;在一个网段内的节点数量不限制。&#xff09;网络中同时存在广播机制。 特点&#xff1a; 允许将数据包广播到网络上的所有主机。路由器之间…

科普文:微服务技术栈梳理

概叙 如上两图所示&#xff0c;微服务架构下&#xff0c;需要的组件很多&#xff0c;上面中也并未列全。下面将梳理一下国内微服务架构下&#xff0c;用到的技术栈&#xff0c;仅供参考。 科普文&#xff1a;12种常见的软件架构-CSDN博客 没有最好的架构&#xff0c;只有最适…

开启音乐新纪元,AI人工智能创新歌词

在音乐的漫长历史长河中&#xff0c;每一次的创新都如同璀璨星辰&#xff0c;照亮了前行的道路。如今&#xff0c;人工智能的崛起正引领着音乐创作步入一个全新的纪元&#xff0c;为歌词领域带来了前所未有的变革。 “妙笔生词智能写歌词软件&#xff08;veve522&#xff09;”…