理解嵌入式处理器的好策略是什么?例如如何使用它的 GPIO
What is a good strategy for understanding an embedded processor? How to use its GPIOs for example
我有一个 STM32F407G 探索板,我试图在不使用任何示例代码的情况下打开 LED。
我碰巧知道 GPIO 需要启用 RCC AHB1 时钟,因为很久以前我在网上看到过它。
但是参考手册中的这些信息不是很明显(至少对我来说不是,任何提示都表示赞赏)。 GPIO 和 RCC 部分相距数英里。除了“希望它有一个庞大的社区并在卡住时搜索在线论坛”之外,学习这样一个处理器的过程是什么!.
Here 是参考手册的 link。
编辑:
典型的是,在问了这个问题之后,我偶然发现了手册的一部分(第 2.1.11 节):
每次设备复位后,所有外设时钟都被禁用(除了SRAM和Flash
内存接口)。在使用外围设备之前,您必须在
RCC_AHBxENR 或 RCC_APBxENR 注册
我想我的问题仍然存在——手册超过 1500 页,是否有通过其参考手册相对快速征服处理器的好策略?
- 首先,查看 MCU 网站以获取应用说明、勘误表和代码示例。在使用新的硬件外设之前始终检查硅勘误表是一个非常好的习惯,尤其是当您处理最近发布的 MCU 时。
- 如果幸运的话,芯片供应商通过应用笔记或库等提供了示例代码。然后您可以在编写自己的代码时查看该代码。就在不久前,我们几乎从未有过任何此类代码可供查看,MCU 的每个用户 re-inventing 通过阅读手册在本地进行控制。
- 在手册中,查看MCU的外设概述以及它为引脚routing/muxing提供的选项。这通常在早期提到。 GPIO 很可能与其他硬件共享引脚,因此这几乎总是您需要调查的事情。
- 同样,现代 MCU 通常具有将时钟路由到外围设备的选项。因此,您还必须检查 clock/PLL 部分,无论如何您都必须阅读这些部分以了解如何设置系统时钟和振荡器选项。
- 最后,阅读 GPIO 章节。
阅读那些 1500 多页的厚书时的一般提示是关注寄存器描述。这是一个很好的起点,当您不了解寄存器中某些位的用途时,您可以在需要了解它们的地方阅读更多 in-depth。通过这种方式,您可以过滤掉您的特定项目不感兴趣的硬件外设的各种特殊功能。
我有一个 STM32F407G 探索板,我试图在不使用任何示例代码的情况下打开 LED。
我碰巧知道 GPIO 需要启用 RCC AHB1 时钟,因为很久以前我在网上看到过它。
但是参考手册中的这些信息不是很明显(至少对我来说不是,任何提示都表示赞赏)。 GPIO 和 RCC 部分相距数英里。除了“希望它有一个庞大的社区并在卡住时搜索在线论坛”之外,学习这样一个处理器的过程是什么!.
Here 是参考手册的 link。
编辑:
典型的是,在问了这个问题之后,我偶然发现了手册的一部分(第 2.1.11 节):
每次设备复位后,所有外设时钟都被禁用(除了SRAM和Flash 内存接口)。在使用外围设备之前,您必须在 RCC_AHBxENR 或 RCC_APBxENR 注册
我想我的问题仍然存在——手册超过 1500 页,是否有通过其参考手册相对快速征服处理器的好策略?
- 首先,查看 MCU 网站以获取应用说明、勘误表和代码示例。在使用新的硬件外设之前始终检查硅勘误表是一个非常好的习惯,尤其是当您处理最近发布的 MCU 时。
- 如果幸运的话,芯片供应商通过应用笔记或库等提供了示例代码。然后您可以在编写自己的代码时查看该代码。就在不久前,我们几乎从未有过任何此类代码可供查看,MCU 的每个用户 re-inventing 通过阅读手册在本地进行控制。
- 在手册中,查看MCU的外设概述以及它为引脚routing/muxing提供的选项。这通常在早期提到。 GPIO 很可能与其他硬件共享引脚,因此这几乎总是您需要调查的事情。
- 同样,现代 MCU 通常具有将时钟路由到外围设备的选项。因此,您还必须检查 clock/PLL 部分,无论如何您都必须阅读这些部分以了解如何设置系统时钟和振荡器选项。
- 最后,阅读 GPIO 章节。
阅读那些 1500 多页的厚书时的一般提示是关注寄存器描述。这是一个很好的起点,当您不了解寄存器中某些位的用途时,您可以在需要了解它们的地方阅读更多 in-depth。通过这种方式,您可以过滤掉您的特定项目不感兴趣的硬件外设的各种特殊功能。