首页 > 解决方案 > 输入!== 输出信号 - 为什么?

问题描述

我正在使用带有 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)的信号。

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

在此处输入图像描述

标签: arduinostm32platformio

解决方案


尝试内部上拉电阻,例如

pinMode(PA12, OUTPUT_PULLUP);

还可以尝试更改输出引脚作为测试,因为似乎其他东西(其他进程)也在尝试拉同一个输出引脚。


推荐阅读