- Published on
读取GPIO输入
import Jetson.GPIO as GPIO
import time
pins = [31, 32, 33]
GPIO.setmode(GPIO.BOARD)
for pin in pins:
GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
print("开始检测引脚 31, 32, 33 的电平状态...")
print("提示:用杜邦线将引脚连接到 3.3V 或 GND 测试")
print("=" * 50)
# 记录上一次的状态
last_state = {31: None, 32: None, 33: None}
try:
while True:
# 读取当前状态
val31 = GPIO.input(31)
val32 = GPIO.input(32)
val33 = GPIO.input(33)
# 检查是否有变化
changed = False
if val31 != last_state[31]:
last_state[31] = val31
changed = True
if val32 != last_state[32]:
last_state[32] = val32
changed = True
if val33 != last_state[33]:
last_state[33] = val33
changed = True
# 只在变化时打印,或持续刷新(二选一)
# 方式1:持续刷新(同一行)
print(f"\rPin31: {val31} | Pin32: {val32} | Pin33: {val33}", end="", flush=True)
# 方式2:只在变化时打印(取消注释下面,注释上面)
# if changed:
# print(f"\n{time.strftime('%H:%M:%S')} - Pin31: {val31} | Pin32: {val32} | Pin33: {val33}")
time.sleep(0.1)
except KeyboardInterrupt:
print("\n\n检测结束")
GPIO.cleanup()
print("GPIO 资源已释放")
THE END