一篇文章带你搞懂stm32工程文件

这篇具有很好参考价值的文章主要介绍了一篇文章带你搞懂stm32工程文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文以stm32f4为例,讲解stm32标准库工程中各个文件的作用,学艺不精,如有错误,望大家私信或评论指出。

先看思维导图

一篇文章带你搞懂stm32工程文件,stm32,嵌入式硬件,单片机

启动文件

startup_stm32f427xx.s 

一篇文章带你搞懂stm32工程文件,stm32,嵌入式硬件,单片机
该文件是stm32的启动文件,由汇编语言编写,主要是做stm32上电时的配置设置(如堆栈指针,时钟数)并跳转到main函数中,执行c代码。

stm32从该文件开始执行,单独包含该文件时(使用寄存器编程时),需在外部文件声明两个函数分别是void SystemInit(void) 和 int main();是因为startup_stm32f4xx.s文件中调用了上述两个函数用来配置芯片时钟树,main()函数执行用户代码。

时钟配置文件

system_stm32f4xx.h  和 system_stm32f4xx.c

一篇文章带你搞懂stm32工程文件,stm32,嵌入式硬件,单片机

这俩文件主要用于stm32的时钟管理,该文件会根据不同的芯片,配置不同的内核时钟。

文件提供了四个函数,其中最重要的便是SystemInit()函数,该函数用于配置芯片时钟。

外设相关文件

stm32f4xx.h

一篇文章带你搞懂stm32工程文件,stm32,嵌入式硬件,单片机

类似于51单片机的头文件#includ <reg52.h>        stm32也有对应的头文件#includ“stm32f4xx.h”(注意,头文件用尖括号引出,编译器会直接到安装目录寻找头文件,若用双引号引出,编译器会先在工程目录下寻找头文件(注意在魔法棒中包含头文件),若工程中没找到头文件,再会到安装目录下寻找)。

该文件实现对所有(片外)外设寄存器的定义和地址映射,时钟的晶振频率数据也保存在该文件中。

stm32f4xx_xxx.c 和stm32f4xx_xxx.h

_xxx : gpio,i2c, usart,spi...一系列外设

 .h文件:外设固件库函数的声明,外设结构体的定义,初始化结构体时所需的参数列表。

.c文件:主要是固件库函数的实现。

内核相关文件

core_cm4.h 和 core_cm4.c

这俩文件由arm提供实现对所有片内外设的寄存器定义和描述。

misc.c 和 misc.h

这俩文件由ST提供用来配置NVIC(嵌套向量中断控制器)和Systick(滴答定时器)

其他文件

stm32f4xx_it.c 和 stm32f4xx_it.h

这俩文件由ST提供,用于用户集中管理系统中断,用户可以讲中断服务函数写在任何位置,也可以集中写在stm32f4xx_it.c文件中。

stm32f4xx_conf.h

头文件的头文件,包含了所有外设的头文件

如你需要在一个文件中包含多个外设(如 gpio ,usart,flash,dma等)那么你可以直接包含stm32f4xx_conf.h文章来源地址https://www.toymoban.com/news/detail-831735.html

到了这里,关于一篇文章带你搞懂stm32工程文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 颠覆世界的“数字孪生”到底是什么?这篇文章带你搞懂全部内涵!

    在春节很火的电影《流浪地球2》中,已经去世的小女孩图丫丫,被她的父亲重新将其个人的信息模型导入最强大的计算机而“复活”了。屏幕中的丫丫就是一个数字孪生体。我们可以看到她的一颦一笑,听到她跟你的对话,看到她做出反应。这就是数字孪生的另一特色,数字

    2024年02月01日
    浏览(68)
  • 一篇文章带你搞懂spring6的概念、spring入门与容器IoC详解(尚硅谷笔记)

    Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架

    2023年04月16日
    浏览(25)
  • 一篇文章让你搞懂内存函数

    库函数memcmp介绍 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 ‘\\0’ 的时候并不会停下来。 如果source和destination有任何的重叠,复制的结果都是未定义的。 库函数memcmp的代码形式 看代码 memcmp将arr1中的内容拷贝到arr2中,总共

    2024年02月17日
    浏览(34)
  • 一篇文章让你搞懂自定义类型-----结构体

    结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 例如描述一个学生 在声明结构的时候,可以不完全的声明 比如 上面的两个结构在声明的时候省略掉了结构体标签(tag) 那么问题来了 警告: 编译器会把上面的两个声明当成完全不同的两个

    2024年02月16日
    浏览(30)
  • 一篇文章让你搞懂TypeScript中的typeof()、keyof()是什么意思

    知识专栏 专栏链接 TypeScript知识专栏 https://blog.csdn.net/xsl_hr/category_12030346.html?spm=1001.2014.3001.5482 有关TypeScript的相关知识可以前往TypeScript知识专栏查看复习!! 最近在 前端的深入学习过程 中,接触了与 网络请求 相关的内容,于是计划用三个专栏( HTTP 、 Axios 、 Ajax )和零碎

    2023年04月21日
    浏览(42)
  • 【运维知识高级篇】一篇文章带你搞懂Git!(Git安装+全局配置+Git初始化代码仓库+Git四大区域+Git四种状态+Git常用命令+Git分支+Git测试代码回滚)

    版本流程控制系统(version control system)是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统,它会记录文件的所有历史变化,我们可以随时恢复到任何一个历史状态,同时支持多人协作开发。 目录 常见的版本管理工具 Git安装与全局配置 Git初始化

    2024年02月02日
    浏览(35)
  • 【操作系统】一篇文章带你快速搞懂用户态和内核态

    目录 一、指令划分 二、特权级别 三、操作系统需要两种CPU状态 四、CPU状态之间的转换 4.1 CPU状态转换的途径 4.2 CPU状态转化流程 4.3 什么情况会导致用户态到内核态切换 通常来说,以下三种情况会导致用户态到内核态的切换 1、系统调用 2、异常 3、外围设备的中断 五、为什

    2024年02月05日
    浏览(33)
  • 【Spring框架】一篇文章带你彻底搞懂Spring解决循环依赖的底层原理

    目录 一、前言 二、什么是循环依赖 三、Spring Bean 的循环依赖问题 3.1 Bean 的创建步骤 3.2 为什么 Spring Bean 会产生循环依赖问题? 3.3 什么情况下循环依赖可以被处理? 四、Spring 如何解决循环依赖问题? 4.0 什么是三级缓存 4.1 简单的循环依赖(没有AOP) 4.1.0 创建Bean的前期流

    2024年04月17日
    浏览(42)
  • 《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的循环语句的全面讲解!    ⛳️ 历时一天终于给肝出来了,本文详细讲解了wh

    2024年02月15日
    浏览(37)
  • 一篇文章带你走进测试工程师的世界

    1、 国内定位和发展前景: 测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。 目前传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包