嵌入式——新建STM32工程(标准库)

这篇具有很好参考价值的文章主要介绍了嵌入式——新建STM32工程(标准库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、初识标准库

1.CMSIS标准及库层级关系

2.库文件介绍

(1)Libraries文件夹

①CMSIS文件夹

②STM32F10x_Std_Periph_Driver文件夹

③ 在用库建立一个完整的工程时,还需要添加stm32f10x_it.c、 stm32f10x_conf.h 和 system_stm32f10x.c文件

(2)Project文件夹

(3)Utilities文件夹

3.库各文件之间的关系

二、使用帮助文档

1. 《STM32F10x-中文参考手册》

2.《STM32规格书》

3.《Cortex-M3 内核编程手册》

4. 《Cortex-M3权威指南》

三、新建工程步骤

1.在本地电脑上新建一个“工程模板”文件夹,在它之下再新建6个文件夹。

2.把准备好的库文件添加到相应的文件夹下。

3.打开keil5,新建一个工程。

(1)选择CPU型号。

(2)在线添加库文件,这里单击关闭按钮。

(3)添加组文件

  (4)添加文件。

4.配置魔术棒选项卡

5.仿真器配置

6.选择CPU型号


一、初识标准库

1.CMSIS标准及库层级关系

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

        基于 Cortex系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,而这些差异却导致软件在同内核、不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的 Cortex微控制器软件的兼容性问题,ARM与芯片厂商建立了 CMSIS标准(Cortex Micro Controller Software Interface Standard)。所谓 CMSIS标准,实际是新建了一个软件抽象层

CMSIS标准中最主要的是CMSIS核心层,它包括:

内核函数层:其中包含用于访问内核寄存器的名称、地址定义,主要由 ARM公司提供。

• 设备外设访问层:提供了片上的核外外设的地址和中断定义,主要由芯片生产商提供。

2.库文件介绍

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记​​​​​​​

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(1)Libraries(CMSIS和STM32F10x_Std_Periph_Driver):文件夹下是驱动库的源代码及启动文件,要使用的固件库就在这个文件夹里。
①CMSIS文件夹

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

1)内核相关文件

        在CoreSupport文件夹中有 core_cm3.c和 core_cm3.h 两个文件。core_cm3.h头文件里面实现了内核的寄存器映射对应外设头文件 stm32f10x.h,区别就是一个针对内核的外设,一个针对片上(内核之外)的外设。core_cm3.c文件实现了操作内核外部寄存器的函数,用得比较少。

2) 启动文件

        启动文件放在 startup/arm文件夹下,里面启动文件有很多个,不同型号的单片机用的启动文件不一样。嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

3)  stm32f10x.h

        这个头文件实现了片上外设的所有寄存器的映射,是一个非常重要的头文件,在内核中与之相对应的头文件是 core_cm3.h。

4) system_stm32f10x.c

        该文件实现了STM32的时钟配置,操作的是片上的RCC这个外设。系统在上电之后,首先会执行由汇编编写的启动文件,启动文件中的复位函数中调用的 System_Init 函数就在这个文件里面定义。调用完之后,系统的时钟就被初始化成72M。如果后面我们需要重新配置系统时钟,我们就可以参考这个函数重写。为了维持库的完整性,不会直接在这个文件里面修改时钟配置函数。

②STM32F10x_Std_Periph_Driver文件夹

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

        inc (include 的缩写)与src(source的缩写)这两个文件夹,属于CMSIS之外的、芯片片上的外设部分。src里面是每个设备外设的驱动源程序,inc则是相对应的外设头文件。src及inc文件夹是ST标准库的主要内容。

        在src和inc文件夹里的就是ST公司针对每个 STM32 外设而编写的库函数文件,每个外设对应一个.c和.h后缀的文件。我们把这类外设文件统称为 stm32f10x_ppp.c或 stm32f10x_ppp.h文件,ppp表示外设名称。

        这两个文件夹中,还有一个很特别的 misc.c文件,这个文件提供了外设对内核中的NVIC(中断向量控制器)的访问函数,在配置中断时,必须把这个文件添加到工程中

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

③ 在用库建立一个完整的工程时,还需要添加stm32f10x_it.c、 stm32f10x_conf.h 和 system_stm32f10x.c文件

1) stm32f10x_it.c

        这个文件是专门用来编写中断服务函数的,在我们修改前,这个文件已经定义了一些系统异常(特殊中断) 的接口,其他普通中断服务函数由我们自己添加。函数接口可以在汇编启动文件中找到。

2) system_stm32f10x.c

        这个文件包含了 STM32芯片上电后初始化系统时钟、扩展外部存储器用的函数。鉴于保持库的完整性,在做系统时钟配置的时候会另外重写时钟配置函数

3) stm32f10x_conf.h

        这个文件被包含进stm32f10x.h文件。当使用固件库编程的时候,如果需要某个外设的驱动库,就需要包含该外设的头文件:stm32f10x_ppp.h。包含一个还好,如果用了多个外设,就需要包含多个头文件,这不仅影响代码美观,而且也不好管理。现我们用一个头文件 stm32f10x_conf.h把这些外设的头文件都包含在里面,让这个配置头文件统一管理这些外设的头文件,在应用程序中只需要包含这个配置头文件即可。因为这个头文件在 stm32f10x.h 的最后被包含,所以最终我们只需要包含stm32f10x.h这个头文件即可。

(2)Project:文件夹下是用驱动库写的例子和工程模板,其中那些为每个外设写好的例程非常有用,学习的时候可以参考这里面的例程,非常全面,简直就是穷尽了外设的所有功能。
(3)Utilities:包含了基于ST官方实验板的例程,不需要用到,略过即可。

3.库各文件之间的关系

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

二、使用帮助文档

1. 《STM32F10x-中文参考手册》

        这个手册全方位介绍了 STM32芯片的各种片上外设,它把STM32的时钟、存储器架构,以及各种外设、寄存器都描述得清清楚楚。

2.《STM32规格书》

        本文档相当于STM32的数据手册,包含了STM32芯片所有的引脚功能说明,以及存储器架构、芯片外设架构说明。

3.《Cortex-M3 内核编程手册》

        本手册由ST公司提供,主要讲解STM32内核寄存器相关的说明,例如系统定时器、NVIC等核外设的寄存器。这部分的内容是对《STM32F10X-中文参考手册》没涉及的内核部分的补充。相对来说,本文档虽然介绍了内核寄存器,但不如以下两个文档详细,要了解内核时,可作为以下两个手册的配合资料使用。

4. 《Cortex-M3权威指南》

        这个手册是由 ARM公司提供的,它详细讲解了 Cortex内核的架构和特性,要深入了解 Cortex-M内核,这是首选。

三、新建工程步骤

1.在本地电脑上新建一个“工程模板”文件夹,在它之下再新建6个文件夹。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

2.把准备好的库文件添加到相应的文件夹下。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

3.打开keil5,新建一个工程。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(1)选择CPU型号。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(2)在线添加库文件,这里单击关闭按钮。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(3)添加组文件

        在新建的工程中添加5个组文件夹,用来存放各种不同的文件。文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件路径的菜单,然后选择文件即可。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

  (4)添加文件。

        先把需要用到的文件从ST标准库中复制到工程模板对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

4.配置魔术棒选项卡

(1)在 Output 选项卡中把输出文件夹定位到工程目录下的“Output”文件夹,如果想在编译的过程中生成hex文件,那么把Create HEX File 选项勾选上。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(2)在Listing 选项卡中把输出文件夹定位到工程目录下的“Listing”文件夹。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

(3)在C/C++选项卡中添加处理宏及编译器编译时查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错“找不到头文件”。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

STM32F10X_HD宏:它告诉STM32标准库,我们使用的芯片类型是 STM32型号,是大容量的,使STM32标准库根据我们选定的芯片型号来配置。

USE_STDPERIPH_DRIVER 宏:让stm32f10x.h包含stm32f10x_conf.h这个头文件。

5.仿真器配置

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记

6.选择CPU型号

        这一步的配置常常会因为各种原因需要重新选择。当下载的时候,若提示“说找不到Device”,应查看该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也要再次查看这里的 “Reset and Run”配置是否失效。因为用的STM32的 Flash大小是 512KB,所以选择512k的容量,如果使用的是其他型号的,要根据实际情况选择。

嵌入式——新建STM32工程(标准库),stm32,嵌入式硬件,单片机,笔记文章来源地址https://www.toymoban.com/news/detail-818104.html

到了这里,关于嵌入式——新建STM32工程(标准库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(45)
  • 嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月20日
    浏览(36)
  • 嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

    核心:本文共4个小实验: 第一个:LED灯闪烁 第二个:LED流水灯 第三个:按键控制LED 第四个:光敏传感器控制蜂鸣器 1.1 LED、蜂鸣器、面包板 LED:发光二极管,正向通电点亮,反向通电不亮。 有源蜂鸣器(本实验):内部自带振荡源,将正负极接上直流电压即可持续发声,频

    2024年01月21日
    浏览(54)
  • 嵌入式毕设分享 stm32 RFID智能仓库管理系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(55)
  • 嵌入式毕设分享 stm32智能鱼缸监控投喂系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年03月17日
    浏览(61)
  • 嵌入式系统开发笔记104:在STM32CubeIDE中导入工程

      本文讲述如何在STM32CubeIDE中导入现有工程。

    2024年02月16日
    浏览(39)
  • 【嵌入式开发工具】STM32+Keil实现软件工程搭建与开发调试

    本篇文章介绍了使用Keil来对STM32F103C8芯片进行初始工程搭建,以及开发与工程调试的完整过程,帮助读者能够在实战中体会到Keil这个开发环境的使用方法,了解一个嵌入式工程从无到有的过程,并且具备快速搭建一个全新芯片对应最小软件工程的基本能力思路。文章首先介绍

    2024年02月05日
    浏览(46)
  • 通信工程毕设 Stm32酒驾检查系统 - 单片机 嵌入式 物联网

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(47)
  • 通信工程毕设 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(39)
  • 通信工程毕设 stm32智能运动计步系统 - 物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月21日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包