微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决输入 !== 输出信号 - 为什么?

我使用的是带有 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);

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。