我应该从哪里获得 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_led 和 fm_stm32f4_delay 是您教程中的一些自定义实现。相关的代码可能是这个: https://github.com/RoanFourie/STM32F4-DISCO-EMBITZ-Blinky/tree/master/STM32F407Disco/LED
因此,此示例没有 F3 头文件/源文件。 无论如何,它应该很容易重用或移植到 F3。
【讨论】:
【参考方案2】:首先,您有一个 STM32F3 探索板,这意味着 stm32
f4
xx.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.h
和 fm_stm32f4_delay.h
是由RoanFourie 创建的头文件,旨在针对 F4 板。我想它们对你没那么有用。
我可以向我的一位前教授推荐this tutorial。它针对 F0 微控制器并使用 Keil,但一般规则仍然适用。不过,您必须自己弄清楚端口和引脚。
【讨论】:
谢谢,我在帖子中提到这些标头用于 F4,我有 F3,我正在寻找 F3 标头。该教程看起来很有帮助,我期待着完成它!顺便说一句,需要 GUI 工具来下载标头和支持文件而不是简单的 Apache Web 服务器的原因是什么?再次感谢您的帮助! 嘿凯尔,你也可以只下载 HAL 包。在 ST 网站上查找 STM32CubeF3 下载。 请阅读第二段,它说明了在哪里下载原始标头。包括示例项目以及如何使用它们的结构。fm_*
F3 的标头可能不存在。
Cubemx 是一个方便的工具来进行外围配置和分配。顺便说一句,它还可以根据您选择的库的可用性创建项目以上是关于我应该从哪里获得 STM32 微控制器的头文件?的主要内容,如果未能解决你的问题,请参考以下文章