Keil的stm32工程中一些文件的作用

2023-05-16

stm32工程中有一堆文件如下:

 

 

一直没搞明白他们的作用,现整理如下:

       从start文件夹开始,第一个文件startup_stm32f10x_md.s,这是启动文件,是用汇编语言编写的,里面定义了中断向量表,中断服务函数,单片机的堆栈大小等,中断服务函数里有个复位中断,这就是整个stm32程序的入口,当stm32上电复位或者按下复位键后,程序就会进入复位函数执行,复位中断函数里就做了两件事情,第一个是调用systemInit函数(用来配置时钟树的),第二个就是调用main函数。

 core_cm3.c和core_cm3.h是与内核有关的文件,core_cm3.c 里是内核的配置函数,core_cm3.h是内核寄存器的描述文件,用来描述有哪些寄存器和他对应的地址

stm32f10x.h文件是stm32芯片外设的寄存器描述文件,用来描述有哪些寄存器和相对应的地址。注意一个stm32芯片里面可以分为两个部分,一个是arm公司设计的内核部分,还有就是ST公司设计的外围电路(可以理解为内核的外设),ST公司将他们封装起来做成了stm32芯片。

system_stm32f10x.c和system_stm32f10x.h文件是用来配置时钟的,stm32的主频72mhz就是这两个文件里的函数配置的,即systemInit函数。

libaray目录下的misc文件是内核的库函数,里面主要是关于内核外设NVIC和systick的库函数,其他的就是内核外的外设库函数,比如rcc,gpio等等。

Users目录下的:两个it文件是用来存放中断函数的stm32f10x_conf.h是用来配置库函数头文件的包含关系的,使用这个文件是需要配置相关的宏,在魔术棒按钮->c/c++中的define里添加USE_STDPERIPH_DRIVER

用一张表格和一个图片总结:

startup_stm32f10x_md.s启动文件
core_cm3.c内核的配置函数
core_cm3.h内核寄存器的描述文件,用来描述有哪些寄存器和他对应的地址
stm32f10x.hstm32芯片外设的寄存器描述文件,用来描述有哪些寄存器和相对应的地址

system_stm32f10x.c

system_stm32f10x.h

配置时钟的,stm32的主频72mhz就是这两个文件里的函数配置的
library目录下的misc文件内核外设NVIC和systick的库函数
library目录下的其他文件内核外的外设库函数,比如RCC,GPIO,TIM,ADC等等

stm32f10x_it.c

stm32f10x_it.h

用来存放中断函数
stm32f10x_conf.h配置库函数头文件的包含关系

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keil的stm32工程中一些文件的作用 的相关文章

  • HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践

    转自 xff1a OpenAtom OpenHarmony 作者 xff1a yuanbo xff0c 华为高级工程师 在IoT时代下 xff0c 终端设备差异较大 形态各异 尺寸各异 交互方式各异 xff0c 解决设备适配问题无疑是实现万
  • UR5+robotiq_85_gripper GAZEBO模拟视觉抓取平台仿真-2

    6 视觉算法 这里我以OpenCv中的SIFT描述子检测目标物体相对于相机的位姿 这里有个开源的包 find object 2d是ROS平台下一个功能强大的识别物体的功能包 由于对于纯颜色物体具有很少的特征 xff0c 所以我决定把另外两个
  • 浅析ros下修改订阅话题

    通过rostopic list 可以查看发布的话题 xff0c 可以看到有 tag detections和 tf话题 xff0c 那麽我们先编写订阅 tag detections xff0c 然后根据此模板订阅成 tf 1 xff0c 首先
  • 软件正在改变世界,程序员应该得到足够尊重

    软件无处不在 xff0c 越来越多的人离不开软件 xff0c 你打开电脑 xff0c 你使用手机 xff0c 你购物娱乐 软件一直在帮你 xff0c 软件已经渗透到我们的工作 生活 娱乐的方方面面 xff0c 软件每一天都在改变着这个世界
  • Ubuntu20.04 通过DD命令克隆自动驾驶开发环境

    第一 准备环境 双硬盘 xff08 Ubuntu20 04系统盘 存储镜像文件盘 xff09 说明 xff1a 本人机器是自动驾驶环境 xff0c 所以系统有些大 xff0c 约180G 第二 命令执行 xff1a 进入命令控制台 xff1
  • Gazebo学习笔记4:模型编辑器

    原文链接 xff1a http gazebosim org tutorials cat 61 guided b amp tut 61 guided b3 文章目录 模型编辑器 Model Editor 用户界面选项板 左面板 Palette
  • error while loading shared libraries的解決方法

    自己编译一些程序 xff0c 而程序难免会引用到别的so文件 xff0c 但是有些so问总是找不到 报 xff1a error while loading shared libraries 类似的错误 Rserve error while
  • Android 使用自定义字体

    Android 使用自定义字体 自定义字体介绍 Android在早期的时候 xff0c 没有使用自定义字体的方案 xff0c 设备只能使用原生字体 xff0c 想要使用自定义字体必须编写大量的代码 最近 xff0c Google为Andro
  • SpringBoot整合MyBatis-Plus实现分页

    使用MyBatis Plus实现分页 配置MyBatis Plus分页插件 span class token annotation punctuation 64 Configuration span span class token key
  • Shiro+JWT实现前后端分离登录验证

    Shiro 43 JWT实现前后端分离登录验证 导入相关的jar包 span class token generics span class token punctuation lt span dependency span class t
  • 过两小时后,自动更新mysql中的字段

    现在的项目中有一个需求 xff0c 就是扫码支付的二维码有效期只有两个小时 xff0c 两个小时后二维码就会失效 xff0c 想要记录这个失效的状态 xff0c 就要用mysql中的定时器来自动更新字段 创建存储过程 span class
  • 微信扫码支付

    微信扫码支付用的是apiv3接口 xff0c 点击查看微信扫码支付官方文档 编写微信支付封装实体类 span class token comment 微信平台证书VO 64 author shenlu 64 date 2020 12 21
  • MongoDB查询时根据对象中的对象的属性进行判断

    接受同事留下来的项目 xff0c 没想到运行的时候还有bug xff0c 无法对对象的对象的属性进行条件查询 xff0c 非常操蛋 xff0c 琢磨了一下午终于解决了 话不多说 xff0c 贴代码 span class token anno
  • 解决Nacos服务注册使用Docker容器内网ip问题

    一 问题 使用docker部署的jar启动时注册到nacos上的ip会使用docker的内网ip跟端口作为注册地址 xff1a 这样会导致使用gateway路由转发时报错 xff1a span class token class name
  • Dubbo3.0 整合 Nacos

    首先呢 xff0c 这个项目分为provider提供者和consumer消费者 xff0c 使用的版本是dubbo3 0 7 xff0c nacos是2 0 4 xff08 注意 xff1a 要使用dubbo3 xff0c nacos的版本
  • Kafka动态启用消费者

    1 设置监听器禁止自启动 span class token class name KafkaListenerContainerFactory span span class token generics span class token p
  • Gazebo 学习笔记之构建一个Robot 1:模型目录的结构和要求

    文章目录 概述1 模型数据库存储库2 模型数据库的结构2 1 插件目录2 2 Meshes 目录2 3 Material 目录2 4 数据库配置 Database Config2 5 模型配置 Model Config2 6 模型 SDF2
  • 已解决:Android Studio 报错No IDEA annotations attached to the JDK 1.8, some issues will not be found

    今天把sdk删了 xff0c 重装 xff0c 然后打开AS后发现 No IDEA annotations attached to the JDK 1 8 some issues will not be found 的警告 项目无法运行 x
  • Android Studio配置模拟器AVD移动至其他盘

    平时我们在Android Studio中使用的模拟器 xff0c 这些模拟器会在C盘中创建模拟器镜像文件 在C Users UsersName android中 xff0c avd文件夹就是用来存放模拟器镜像文件的 xff0c 为了节省c盘
  • Python3 虚拟环境激活

    如果你正在使用Python3 xff0c 虚拟环境已经成为内置模块 xff0c 可以直接通过如下命令来创建它 xff1a python3 m venv venv 注 xff1a 这个命令不一定能够执行成功 xff0c 比如译者在Ubuntu

随机推荐

  • 培训机构众多,如何选择优秀嵌入式培训机构?

    为什么说选择一个优秀的 专业的嵌入式培训学校很重要 xff1f 选择优秀的嵌入式培训学校 xff0c 学习嵌入式技术 xff0c 您将可能找到一份好工作 xff0c 得到10倍 xff0c 甚至100倍价值回报 xff1b 从此你将有独立生
  • 接口防重方案设计

    幂等性原理 xff1a 前台的多次请求 xff0c 对于后台 xff0c 也是同一次请求 xff1b 通常接口设计方式 xff1a 1 前端的页面提交按钮置灰 xff0c 防止用户重复点击 xff1b 2 对前端提交的token进行校验 x
  • 微信小程序-轮播图实现

    好久不见 xff0c 今天小h来分享一下如何实现一个微信小程序的轮播图实现方式 xff1a 前提条件是具有微信开发者工具 xff0c 还有对应的开发者ID xff0c 这些基础条件我这边就直接跳过了哈 xff0c 直接进入正题 xff1a
  • 所以,到底什么是微服务?

    1 微服务是一种软件架构 xff0c 是聚焦在单一的职责和业务功能 xff0c 具有独立的进程 xff0c 能够单独运行的服务 xff0c 并且与外部服务是通过HTTP进行交互通信的服务 2 微服务比较常见的特性是 xff0c 具有单一职责
  • 关于云服务Bmob的使用方法(上)——上传数据

    关于第三方云服务平台Bmob是怎样使用的 xff1f 我们从两个方面来写 xff0c 一个是传输数据 xff0c 一个是传输文件 第一个是关于bmob传输数据的 xff0c 首先我们在官网http www bmob cn 上面注册我们自己的
  • 关于云服务Bmob的使用方法(下)——上传文件

    上一篇我们说了如何传输数据 xff0c 那么这一篇我们进阶一下 xff0c 来谈谈如何传输文件 xff0c 比如图片 关于如何在bmob上注册和申请 xff0c 上一篇已经有说明 xff0c 不懂的读者可以去看看 xff0c 然后我们直接进
  • 使用栈模拟递归的算法

    这一篇笔者要讲的是如何用栈来模拟递归 xff0c 或者说替代递归的算法 xff0c 现在我们假如要算从三角形数的叠加 xff0c 比如输入10 xff0c 输出是55 xff0c 输入是100 xff0c 输出是5050 xff0c 等等
  • 使用 catkin 的方式创建自定义的 ros 消息

    文章目录 1 写在前面2 创建自定义消息2 1 创建 ros 包2 2 创建 msg 文件2 3 修改 package xml 文件2 4 修改 CMakeLists txt 文件 3 生成 msg 代码文件 1 写在前面 消息文件是描述R
  • "我"与AI

    有人说过 xff0c 在这世界上 xff0c 一共有10种人 xff0c 一种是懂二进制的 xff0c 一种是不懂的 其实 xff0c 在不远的未来 xff0c 这个世界多了两种机器 xff0c 懂AI的 xff0c 以及不懂的 在如今的互
  • java集合篇(一)——ArrayList扩容原理

    相信大家都对ArrayList相当熟悉了 xff0c 今天笔者就对ArrayList的源码进行解读 xff0c 讲解一下对ArrayList扩容的基本原理 虽然大家都有用过 xff0c 但还是简单介绍一下吧 xff0c ArrayList实
  • 怎样快速开发一个 Dubbo 应用?

    背景 本文将以 Dubbo 为例 xff0c 介绍如何快速开发一个 Dubbo 应用 为了便于读者理解 xff1a 首先会介绍一下传统的 RMI 的基本概念 然后比较下现代的 RPC 框架与 RMI 的区别 再基于 Dubbo 提供的 AP
  • 百度历届笔试题(1)

    题目描述 牛牛和妞妞正在玩一个猜数游戏 xff0c 妞妞心里想两个不相等的正数 xff0c 把这两个正数的和y告诉牛牛 妞妞声称这两个数都不超过x xff0c 让牛牛猜这两个数是多少 牛牛每猜一次 xff0c 妞妞会告诉他猜对了还是猜错了
  • 最佳线性无偏估计BLUE

    最佳线性无偏估计BLUE 1 定义 xff1a 线性估计是参数估计最重要的一类 xff0c 应用 广泛 如果对参数x 的估计可以表示成为量测信 息的线性函数就是线性估计 而线性无偏最小方差估计称为BLUE Best Linear Unbia
  • 手把手教你使用CMake自动编译中CMakeLists.txt 怎么写

    背景 CMake 一直都是用别人的开源项目来编译 Makefile都是自己写 最近看zlm源码 里面用的CMake编译 比较简洁易懂 所以有尝试给现有项目也写个CMakeList txt来使用cmake自动编译 跟它耍耍 基础语法介绍 主要
  • 巧用snprintf动态打印任意长度的buf

    Q xff1a 调试程序的时候 xff0c 经常需要对传入的连续地址空间或数组进行打印 xff0c 常规做法是起一个for循环 xff0c 在每次循环中调用printf依次打印每个数组下标的值 就像这样 xff1a char Buf 99
  • 仿滴滴抢单倒计时的Demo

    滴滴里面有一个下单完成之后等待界面的倒计时转圈的视图 就是这个 原理 xff1a 通过CAShapeLayer层添加到自己自定义的视图layer上 设置ShapeLayer的path 他的路劲绘制一般通过UIBezierPath配合设置 通
  • 电机PID控制补充篇-野火上位机串口协议介绍

    0 引言 之前介绍的电机PID控制的系列文章 电机控制与PID实践 得到不少电子爱好者的关注 xff0c 不过也收到一些关于串口通信的疑问反馈 之前的一系列文章 xff0c 确实没有着重介绍串口软件的使用细节以及通信协议的具体格式 本篇就来
  • 【Ubuntu】修改ubuntu和windows双系统启动顺序

    目录 一 问题描述二 背景知识1 GRUB是什么2 GRUB配置文件3 96 etc default grub 96 主配置文件 二 问题分析三 解决方案1 修改grub主配置文件2 更新grub配置文件 一 问题描述 Ubuntu 43
  • STM32状态机编程实例——全自动洗衣机(上)

    前面几篇文章 xff0c 以按键功能 xff0c 介绍了状态机的原理与按键状态机实例 xff0c 实现按键单击 双击 长按等状态的检测 本篇 xff0c 继续使用状态机编程 xff0c 来实现一个更有趣的功能 全自动洗衣机 1 全自动洗衣机
  • Keil的stm32工程中一些文件的作用

    stm32工程中有一堆文件如下 xff1a 一直没搞明白他们的作用 xff0c 现整理如下 xff1a 从start文件夹开始 xff0c 第一个文件startup stm32f10x md s 这是启动文件 xff0c 是用汇编语言编写的