我应该从哪里获得 STM32 微控制器的头文件?

Posted

技术标签:

【中文标题】我应该从哪里获得 STM32 微控制器的头文件?【英文标题】:Where should I get the header files for an STM32 microcontroller? 【发布时间】:2020-01-26 05:03:54 【问题描述】:

我有this STM32F3 探索板,我正在尝试向它刷一个简单的闪烁程序。我发现的所有示例都有几个 stm32*.h 头文件,例如 F4 Discovery board 教程:

#include "stm32f4xx.h"
#include "fm_stm32f4_led.h"
#include "fm_stm32f4_delay.h"

我在哪里以及如何获取我的开发板的头文件? (STM32F3)我似乎在数据表或文档中找不到任何东西来指出我在哪里得到它们。另外,什么是示例和学习材料的好来源?

【问题讨论】:

这些都应该是您的 SDK 的一部分。 CubeMX 程序用于为您的芯片安装正确的 SDK。 单独的头文件很少是足够的。大多数情况下,您需要整个库。 【参考方案1】:

就像 Lee Daniel Crocker 提到 STM32Cube 初始化代码生成器附带的所有 HAL 库一样。你可以在这里下载:

https://www.st.com/en/development-tools/stm32cubemx.html

您也可以只下载 HAL 库源:STM32CubeF3、STM32CubeF4

此外,头文件 fm_stm32f4_ledfm_stm32f4_delay 是您教程中的一些自定义实现。相关的代码可能是这个: https://github.com/RoanFourie/STM32F4-DISCO-EMBITZ-Blinky/tree/master/STM32F407Disco/LED

因此,此示例没有 F3 头文件/源文件。 无论如何,它应该很容易重用或移植到 F3。

【讨论】:

【参考方案2】:

首先,您有一个 STM32F3 探索板,这意味着 stm32f4xx.h 标头是错误的。您需要stm32f3xx.h。 F4 微控制器的教程也需要解释为对 F3 有用。 F4 的某些功能在 F3 上没有。

您可以使用 ST 帐户从 ST.com 下载 STM32F3 的标头/库。页面you linked 包含一个名为Embedded Software 的部分,其中包含带有文本的链接:STM32CubeF3。完成重定向后,您将有机会通过单击获取软件来下载库。

这包含多个板的完整项目结构。

您也可以下载STM32CubeMX。这是一个图形工具,允许非常轻松地配置 STM32 微控制器和微处理器,以及为 Arm® Cortex®-M 内核或为 Arm® Cortex® 生成部分 Linux® 设备树的相应初始化 C 代码-一个核心),通过一个逐步的过程。”它允许您生成新项目并让您轻松包含所需的(或所有)库文件。

fm_stm32f4_led.hfm_stm32f4_delay.h 是由RoanFourie 创建的头文件,旨在针对 F4 板。我想它们对你没那么有用。

我可以向我的一位前教授推荐this tutorial。它针对 F0 微控制器并使用 Keil,但一般规则仍然适用。不过,您必须自己弄清楚端口和引脚。

【讨论】:

谢谢,我在帖子中提到这些标头用于 F4,我有 F3,我正在寻找 F3 标头。该教程看起来很有帮助,我期待着完成它!顺便说一句,需要 GUI 工具来下载标头和支持文件而不是简单的 Apache Web 服务器的原因是什么?再次感谢您的帮助! 嘿凯尔,你也可以只下载 HAL 包。在 ST 网站上查找 STM32CubeF3 下载。 请阅读第二段,它说明了在哪里下载原始标头。包括示例项目以及如何使用它们的结构。 fm_* F3 的标头可能不存在。 Cubemx 是一个方便的工具来进行外围配置和分配。顺便说一句,它还可以根据您选择的库的可用性创建项目

以上是关于我应该从哪里获得 STM32 微控制器的头文件?的主要内容,如果未能解决你的问题,请参考以下文章

初识STM32

STM32F4高性能MCU微控制器

用CAN总线对STM32微控制器编程的问题

什么是弱函数,它们的用途是什么?我正在使用 stm32f429 微控制器

将 VL53L0X 与 STM32 微控制器一起使用

STM32 - 为啥代码没有像它应该的那样修改寄存器?