STM32官方固件库下载并且新建自己的工程

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

1 固件库下载和新建工程


这里记录一下怎么从ST官网下载固件包并新建一个属于自己的工程模板,这里以STM32F103系列为例

一、怎么下载官网固件库

1、打开ST官网:https://www.st.com/content/st_com/en.html,选择Tools & Software

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2、点击Embedded Software,选择STM32 Embedded Software

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

3、选择STM32 Standard PeripheralLibraries

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

4、选择F1系列

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

5、下载固件包,这里版本我们选择3.5.0,下载固件包需要先注册一个ST的账号,这里我已经注册好了,直接下载stm32固件库下载,STM32学习笔记,stm32,学习,笔记### 6、解压文件如下

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

二、固件库

1.固件库文件分类

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

  • Libraries:文件夹下是驱动库的源代码及启动文件,这个非常重要,我们要使用的固件库就在这个文件夹里面

  • Project:文件夹下是用驱动库写的例子和工程模板,其中那些为每个外设写好的例程对我们非常有用,我们在学习的时候就可以参考这里面的例程

  • stm32f10x_stdperiph_lib_um.chm:库帮助文档,这个很有用,不喜欢直接看源码的可以在合理查询每个外设的函数说明,非常详细,这是一个已经编译好的HTML文件,主要讲述如何使用驱动库来编写自己的应用程序

2.文件说明

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
图片来源于网络,上图中红色部分是我们新建工程需要用到的文件,下面我们简要说明一下其中的几个文件

2.1启动文件startup_stm32f10x.s

在固件库如图所示的路径下,找到启动文件startup_stm32f10x.s,我们需要选择对应芯片容量的启动文件

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

不同芯片对应的FLASH大小是不一样的,选择启动文件的时候,也需要按照相应芯片的FLASH选择对应的启动文件,以STM32F103RCT6芯片为例

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

FLASH大小为256KB,对照下表,属于中容量型芯片,所以等会新建工程的时候,我们需要添加startup_stm32f10x_hd.s文件

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

单片机上电后,进入startup_stm32f10x_hd.s启动文件,启动文件是用汇编写的,启动文件内定义了中断向量表,中断服务函数等。中断服务函数中有个复位中断。这就是整个程序的入口;当STM32上电复位或者按下复位键之后,程序就会进入复位中断函数执行;复位中断函数主要就做了两件事情。第一个是调用SystemInit函数,第二个是调用main函数

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2.2 stm32f10x.h

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

2.3 system_stm32f10x.c

system_stm32f10x.c文件实现了STM32的时钟配置,操作的是片上的RCC这个外设。系统在上电之后,首先会执行由汇编编写的启动文件,启动文件中的复位函数中调用的SystemInit()函数就在这个文件里面定义。调用完之后,系统的时钟就被初始化成72M。如果后面我们需要重新配置系统时钟,我们就可以参考这个函数重写。

Systemlnit()函数就是定义在这个文件里面,上面的brief说明了函数的功能
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2.4 stm32f10x_conf.h

这个stm32f10x_conf.h的文件就是用来配置头文件的包含关系的,stm32f10x_conf.h里面indlude了所有的库函数头文件,同时我们在stm32f10x.h的最后包含了stm32f10x_conf.h,所以在使用这些库函数时,我们只需要包含stm32f10xh这一个头文件,就相当于包含了所有的库函数头文件。这样我们就可以任意地调用库函数了

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2.5 每个文件之间的联系

每个文件之间的联系如下图,参考了江科大的PPT
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

三、 新建工程

下面是新建工程具体操作步骤

1、新建Templete文件夹,如下所示

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2、复制相应文件

2.1STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport目录下的core_cm3.ccore_cm3.h两个文件复制到文件夹Templete\Libraries\CMSIS目录下

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2.2 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x路径下的4个文件复制到文件夹Templete\Libraries\CMSIS目录下,对于startup文件夹,只需要startup/arm路径下的文件,把该路径下的文件移动到startup文件夹下面,其余全部删掉

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

此时,Templete\Libraries\CMSIS文件夹包含文件如下

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
Templete\Libraries\CMSIS\startup文件夹包含文件如下
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

2.3 把固件库STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下的inc和src两个文件夹复制到Templete\Libraries\STM32F10x_StdPeriph_Driver

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
stm32固件库下载,STM32学习笔记,stm32,学习,笔记
2.4 把固件库STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的4个文件复制到Templete\User
stm32固件库下载,STM32学习笔记,stm32,学习,笔记
stm32固件库下载,STM32学习笔记,stm32,学习,笔记
到此,我们需要的文件就已经添加好了,总的来说,添加了3次文件

3、在工程中包含文件

3.1 打开Keil,新建工程,工程保存在Project文件夹下面

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
3.2 选择芯片,这里我们选择STM32F103RCT6
stm32固件库下载,STM32学习笔记,stm32,学习,笔记
3.3 新建如图的4个分组,然后添加文件

startup添加文件如下,三个文件都位于Templete\Libraries\CMSIS目录下

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
Driver文件夹里面添加所有外设的源文件,文件路径Templete\Libraries\STM32F10x_StdPeriph_Driver\src,源文件里面是ST写好的各个外设的驱动
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

User文件夹里面添加文件如下
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

3.4 点击魔术棒,包含文件头路径

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
包含头文件路径如图
stm32固件库下载,STM32学习笔记,stm32,学习,笔记

3.5 把main.c文件里面的内容删除,填入如下内容

#include "stm32f10x.h"                 

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

3.6 对魔术棒所做的一些更改

3.6.1 因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。定位到魔术棒 c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面(请注意,两个标识符中间是逗号不是句号),这里解释一下,如果你用的是中容量那么STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD,然后点击 OK。

  • STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是大容量的,使 STM32标准库根据我们选定的芯片型号来配置。
  • USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。

stm32固件库下载,STM32学习笔记,stm32,学习,笔记

3.6.2 修改输出文件夹路径
打开魔术棒,把输出文件夹选择为我们创建的Output文件夹,顺便创建HEX文件勾选上,这样工程就能产生HEX文件
stm32固件库下载,STM32学习笔记,stm32,学习,笔记
返回Project文件夹,可以看到,在新建了工程以后,里面多了如图的几个文件夹,其中,DebugConfig、Listings 和 Objects 文件夹是 MDK 自动生成的文件夹,Listings 和 Objects 用于存放编译过程产生的中间文件,DebugConfig 文件夹用于存储一些调试配置文件,我们把 Listings 和 Objects 这两个文件夹删除(DebugConfig 文件夹不可以删除),我们用Output文件夹来存放编译产生的中间文件

stm32固件库下载,STM32学习笔记,stm32,学习,笔记
到这里,文件就新建好啦,点击编译,如图
stm32固件库下载,STM32学习笔记,stm32,学习,笔记文章来源地址https://www.toymoban.com/news/detail-665238.html

到了这里,关于STM32官方固件库下载并且新建自己的工程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32新建工程详细教程

    链接: https://pan.baidu.com/s/1JtjKg_jeo7U2irD4hLd_bg?pwd=45cw 提取码: 45cw  STM32的开发方式 目前stm32的开发方式主要有基于寄存器的方式、基于标准库的方式(库函数的方式)、基于HAL库的方式。 基于库函数的方式是使用ST官方提供的封装好的函数,通过调用这些函数来间接地配置寄存器

    2024年01月19日
    浏览(45)
  • STM32工程,Keil软件新建工程详细步骤

    2. 打开KEIL软件,在project菜单下选择New uVision Prject… 3.在弹出的对话框中选择刚才建的project文件夹,给工程取名,保存。 4.选择stm32F103系列,找到对应用的开发板芯片型号,点击OK(此处用f103C8T6芯片开发) 5.关闭弹出的对话框。 6.点击此处新建文件。 7.此刻回到文件夹中,将

    2023年04月08日
    浏览(57)
  • STM32CubeMX 新建工程详细步骤

    选中某一型号时,会在页面右边显示该芯片的详细参数和信息,其中 Features 可以查看该芯片的具体特点和外设, 还可以点击Datasheet 下载数据手册。在芯片选择页面的右下方有芯片的信息概要,比如这里包括该型号芯片的 引脚疯转,Flash, Ram, IO 数量, 主频等基本信息。确定

    2023年04月08日
    浏览(50)
  • 【STM32】STM32CubeMX教程一--基本使用(新建工程点亮LED灯)

    前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMX的基本使用和如何创建一个新的工程并且点亮LED灯 在新建工程时,我们分为了具体流程1~7,如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可

    2024年02月09日
    浏览(51)
  • 【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤

      STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成 初始化代码 (并不包括逻辑代码)。以下是STM32CubeMX官方宣传图片,适用于Windows和macOS系统,用于生成初始化代码,一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片,初始化代码

    2024年02月17日
    浏览(64)
  • 嵌入式——新建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.库各文件之间的关

    2024年01月23日
    浏览(59)
  • STM32F103标准库开发:Keil5新建STM32工程

    首先需要搭建Keil5编译环境,才可以新建STM32工程。 Keil5编译环境搭建流程----STM32和GD32 新建一个文件夹 template 在文件夹template里面新建四个文件 (1) CMSIS : 存放内核驱动程序和启动引导文件 (2) FWLIB :存放库函数文件 (3) Project :存放工程文件 (4) User : 存放用户程

    2023年04月08日
    浏览(73)
  • STM32CubeMX+Keil5新建工程

    STM32CubeMx 软件是 ST 公司为 STM32 系列单片机快速建立工程,并快速初始化使用到的外设、GPIO 等,大大缩短了我们的开发时间。简单地说STM32CubeMX 本身就是一个工具软件,我们只要在上面通过图形化配置就可以生成STM32 功能代码工程,这样节省我们的工作量。在之前没有用这个

    2024年01月19日
    浏览(127)
  • 【STM32】STM32F103C8T6 创建工程模版详解(固件库)

    ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32标准外设函数库库,简称 固件库 。 固件库版本 : STM32F10x_StdPeriph_Lib_V3.5.0 2.1 在建立工程之前,我们在电脑的某个目录下面建立一个文件夹,名字为 00_Template。 笔者目录为E:Program DataKeil\\00_Template 2.2 在上述00_Te

    2024年02月15日
    浏览(30)
  • Keil新建STM32软件工程 - (详细步骤图文)

    芯片型号:STM32F103VCT6 软件:Keil5 详细步骤及下载链接参考以下说明: 《STM32所有系列keil 开发包的下载链接 - Keil.STM32Fxxx_DFP.x.x.x.pack)》 详细步骤及下载链接参考以下说明: 《STM32标准外设库下载(下载地址与步骤详解)》 我们使用在标准外设库中提取的文件主要来自“L

    2024年02月01日
    浏览(71)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包