使用每个 MCU 上的一个 GPIO 引脚同步 3 个 STM32L4 MCU 正弦发生器

Syncronizing 3 STM32L4 MCU's sine generators using one GPIO pin on each MCU

我开发了一个定制的 STM32L475 板,其中一个 GPIO 引脚连接用于同步以及其他一些用于同步的电路,不幸的是,我们决定将生成的正弦信号从一个模块路由到另一个模块。 这不是最佳的,所以我想优化,所以它不是从主模块路由到从模块的正弦信号,而是仅传输数字触发器以重新启动完整正弦波的生成。

为此,我需要能够将 MCU 设置为使用每个 MCU 上的一个 GPIO 引脚作为定时器的输出和触发器。

要在不更新硬件的情况下执行此操作,我需要能够结合: 1. 使用 3 个引脚(每个 MCU 一个)作为漏极开路输出作为与门,这是可行的。 2. 我知道GPIO管脚可以作为外部触发,下降沿触发。

问题是,是否可以仅使用一个 GPIO 引脚触发输出引脚的定时器,使最终确定其正弦生成的 MCU 首先触发自身和其他 MCU,如果可以,如何实现? 请注意,它必须使用输出引脚本身的电平,即使它是一个输出引脚。

我是一名硬件开发人员,正在学习为我们的硬件做固件,所以我是软件开发的新手,所以我正在使用 HAL,请多关照

STM32L475允许在不同模式下配置GPIO,必须通过相应的GPIOx_MODER寄存器(独占)选择:1

  1. (数字)输入方式
  2. 通用输出模式
  3. 备用功能模式
  4. 模拟模式

应用在交替功能模式中的交替功能也必须独占选择,通过相应的GPIOx_AFRLGPIOx_AFRH注册,分别2

中断或定时器的触发是一种替代功能,(模拟或数字)信号的输出也是一种(不同的)替代功能。 因此,我认为没有解决基于外设配置的给定问题。


1 Reference Manual, Rev 7: 参见

  • 8.5.1节GPIO模式选择
  • 8.4节图23/24解释

2 ibid.: 参见

  • 第8.5.9节GPIO复用功能选择
  • 第 8.4.2 节进行解释