gpt4 book ai didi

arduino - 如何数字读取处于 pinMode OUTPUT 模式的引脚?

转载 作者:行者123 更新时间:2023-12-02 08:14:35 25 4
gpt4 key购买 nike

我有一个非常简单的测试 sketch其中我尝试将引脚设置为HIGH,然后使用digitalRead读取其状态。这是我的草图。

void setup()
{
Serial.begin(9600);
}

void loop()
{
delay(1000);

pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
delay(1000);

pinMode(3, INPUT);
Serial.println(digitalRead(3));
}

串口监控结果:

0
0
0
0

我开始了解到,更改 pinMode 会阻止其处于HIGH。因此,在 OUTPUT 模式下将引脚设置为 HIGH,然后更改为 INPUT 模式会将其更改为 LOW。所以 digitalRead 将始终返回 0。如果我不更改 pinMode,它将无法读取引脚。那么如何读取处于 OUTPUT 模式的引脚的当前设置而不丢失值呢?

最佳答案

在这种情况下,您只想访问数据寄存器本身。

PORTB 和 PORTD 寄存器包含您要查找的引脚数据。我终于可以使用 Arduino 来解决这个问题。您想使用bitRead(PORTD, pin)

Serial.println(bitRead(PORTD,3)); //Reads bit 3 of register PORTD which contains the current state (high/low) of pin 3.

引用Bit Read Operation了解更多信息。

关于arduino - 如何数字读取处于 pinMode OUTPUT 模式的引脚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6160963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com