【STM32标准库】使用标准库创建一个工程

创建工程

本系列文章中使用的硬件和软件版本如下:

CPU型号:STM32F407ZGT6

Keil版本:V5.38.0.0

ARM编译器版本:V5.06

标准库版本:V1.8.0

1.下载标准库

官网链接:STSW-STM32065 - STM32F4 DSP和标准外设库 - 意法半导体STMicroelectronics

选择V1.8.0版本的下载,据说最新的V1.9.0版本有bug。

1.2.库目录文件简介

ST标准库

在使用库开发时,我们需要把libraries目录下的库函数文件添加到工程中,并查阅库帮助文档来了解ST提供的库函数,这个文档说明了每一个库函数的使用方法。

1.2.1.Libraries\CMSIS文件夹

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\文件夹下内容见图 CMSIS文件夹内容

CMSIS文件夹内容

其中Device与Include中的文件是我们使用得最多的,先讲解这两个文件夹中的内容。

在Include文件夹中包含了 的是位于CMSIS标准的核内设备函数层的Cortex-M核通用的头文件, 它们的作用是为那些采用Cortex-M核设计SOC的芯片商设计的芯片外设提供一个进入内核的接口, 定义了一些内核相关的寄存器(类似我们前面写的stm32f4xx.h文件,但定义的是内核部分的寄存器)。 这些文件在其它公司的Cortex-M系列芯片也是相同的。

在Device文件夹下的是具体芯片直接相关的文件,包含启动文件、芯片外设寄存器定义、系统时钟初始化功能的一些文件,这是由ST公司提供的。

1.2.2.Libraries\STM32F4xx_StdPeriph_Driver文件夹

外设驱动

1.2.3.STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates

在这个文件目录下,存放了官方的一个库工程模板,我们在用库建立一个完整的工程时,还需要添加这个目录下的stm32f4xx_it.c、stm32f4xx_it.h、stm32f4xx_conf.h这三个文件。

stm32f4xx_conf.h:这个文件被包含进stm32f4xx.h文件。ST标准库支持所有STM32F4型号的芯片, 但有的型号芯片外设功能比较多,所以使用这个配置文件根据芯片型号增减ST库的外设文件。

stm32f4xx_it.c:这个文件是专门用来编写中断服务函数的,在我们修改前,这个文件已经定义了一些系统异常(特殊中断)的接口,其它普通中断服务函数由我们自己添加。

2.开始新建工程

先给工程新建几个文件夹

名称作用
Doc用来存放程序说明的文件,由作者添加
Libraries存放的库文件,可以直接将下载的库文件拷贝过来。
Output存放编译输出文件
Listing存放编译产生的中间文件
Project存放工程文件
User用户编写的驱动文件

在这里插入图片描述
在这里插入图片描述

标准库文件我这里直接全部拷贝过来了,其实有一些没有用到。

在这里插入图片描述

User中的文件从STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates这里拷贝,但是main.c中可以全部删了,只留main函数,所以it.c文件中的TimingDelay_Decrement()函数也需要删掉。

现在,工程需要用到的文件基本准备好了,可以使用keil新建工程并添加组文件夹。(注意,新建工程时,不要自动下载库文件,我们直接取消,手动添加)

在这里插入图片描述

然后,在各组文件夹中添加代码文件。注意,这里添加的都是源文件,没有添加头文件。

在这里插入图片描述

这些文件添加完成后,我们还需要做一些配置和修改:

2.1.屏蔽不需要的文件

STM32F407只有FSMC功能,但是使用的固件库里面有FMC和FSMC的功能,如果这两个文件都同时编译的话,那么就会出错, 所以我们选择把FMC在工程里面屏蔽掉,就不编译。同时,固件库里面还有DMA2D和LTDC的库,但是F407都没有这两个功能, 所以我们也选择把这两个文件从工程里面屏蔽掉。

在这里插入图片描述

2.2.添加头文件

在这里插入图片描述

2.3.添加宏定义

USE_STDPERIPH_DRIVER,STM32F40_41xxx,

多个宏定义用英文逗号隔开了。

在这里插入图片描述

2.4.配置输出文件夹

在这里插入图片描述

在这里插入图片描述

2.5.配置编译器

在这里插入图片描述

2.6.配置下载器

我们使用的是ST-LINK。

在这里插入图片描述

最后,我们就可以编译完成并成功烧录。

在这里插入图片描述

3.总结
  • 注意宏定义的配置,头文件目录的加载
  • 在配置过程中,keil软件可能出bug,可自行找办法解决
  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用标准库创建STM32项目的流程包括:1.打开STM32CubeMX软件;2.配置项目;3.生成代码;4.在Keil uVision中创建工程;5.添加STM32CubeMX生成的文件;6.编译并下载程序;7.运行程序。 ### 回答2: STM32使用标准库创建项目的流程如下: 1. 创建一个新的STM32项目:首先,在IDE中选择新建项目,在项目选择中选择STM32,并选择适合的芯片系列和型号。 2. 配置项目:在创建项目之后,需要进行一些基本配置。包括选择编译器、启用C编程环境、选择硬件文件和文件的路径。还要选择适当的时钟配置和其他选项,以满足设计需求。 3. 配置引脚:根据具体应用要求,需要配置STM32的引脚功能。可以通过画图或者在IDE中选择相应的引脚功能,进行配置。配置完成后,将引脚与外设连接。 4. 编写应用程序:使用IDE的编辑器编写应用程序代码。可以选择在文件中使用现有函数,也可以自行编写函数。要确保代码逻辑正确并实现所需的功能。 5. 编译和生成可执行文件:在IDE中对项目进行编译,检查代码是否存在语法错误和警告。如果没有错误和警告,将会生成可执行文件。 6. 烧录程序:使用编程器将可执行文件烧录到STM32芯片中。可以选择使用外部编程器或者使用芯片上的内建烧录器进行烧录。 7. 调试和测试:在烧录完成后,连接STM32芯片到适当的外设,并使用调试器进行测试和调试。调试可以通过串口输出、LCD显示等方式进行。 8. 优化和改进:根据实际需求,对程序进行优化和改进。可以通过减小程序体积、提高执行效率等方式来改进程序。 这就是使用STM32标准库创建项目的基本流程。根据实际的应用需求和个人的技术水平,可能还会涉及更多的步骤和配置。通过不断实践和学习,可以更好地掌握STM32使用和开发。 ### 回答3: STM32使用标准库创建项目的流程如下: 1. 首先,打开开发环境,如Keil或STM32Cube IDE,创建一个新的工程。选择适当的型号和芯片系列,然后选择使用标准库的选项。 2. 创建项目后,可以为项目添加新的源文件或者头文件。这些文件将包含主要的程序代码。 3. 接下来,配置系统时钟和外设。使用标准库可以通过`RCC_Init()`函数对系统时钟进行配置,可根据需要选择适当的时钟源和分频系数。 4. 如果需要使用外设,比如GPIO、USART、SPI等,需要对这些外设进行初始化设置。可以使用相应的函数对外设进行配置。 5. 编写主程序。在主程序中,可以使用标准库提供的函数来初始化外设、读取输入、发送输出等。 6. 编译和生成代码。在工程完成后,可以点击编译按钮来编译生成可执行文件。在编译过程中,编译器会对代码进行语法检查和编译优化。 7. 将生成的可执行文件下载到目标设备。可以使用调试器或者烧录器将编译生成的可执行文件下载到目标设备上进行调试或运行。 8. 调试和测试。在程序下载到目标设备后,可以通过调试器进行程序的单步调试和观察变量的值,以确保程序的正确性。 总的来说,使用STM32标准库创建项目的流程包括创建工程,配置系统时钟和外设,编写主程序,编译和生成代码,下载到目标设备,进行调试和测试。这样可以实现对STM32芯片的充分利用和功能扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值