输入 !== 输出信号 - 为什么?

问题描述

我使用的是带有 PlatformIO 和 Arduino 框架的 STM32G431KB Nucleo 板 (nucleo_g431kb - 170MHz)。

我的简单代码如下所示:

void setup()
{
  pinMode(PA11,INPUT);
  pinMode(PA12,OUTPUT);
}

void loop()
{
  if (digitalReadFast(PA_11) == HIGH) {
    digitalWriteFast(PA_12,HIGH);
  }
  else {
    digitalWriteFast(PA_12,LOW);
  }
}

在引脚 11 上,我得到了一个明确定义的输入信号,如下图所示(黄色信号)。图中的蓝色信号是来自STM32(引脚12)的信号。

现在蓝色信号不像黄色信号那样定义。从理论上讲,它们应该是相同的,不是吗?如何获得镜像输入信号的输出信号?芯片应该有足够的功率。我尝试了一个下拉电阻,但它没有改变任何东西。我想,我只是个笨蛋。

enter image description here

解决方法

尝试内部上拉电阻,例如

pinMode(PA12,OUTPUT_PULLUP);

还尝试更改输出引脚作为测试,因为看起来其他东西(某些其他进程)也在尝试拉相同的输出引脚。