- 设备: RDK X5
- 系统: dk_os_3.1.1-2025-2-11/rdk-x5-ubuntu22-preinstalled-server-3.1.1-arm64.img.xz # Linux ubuntu 6.1.83 #1 SMP PREEMPT Tue Feb 11 00:25:16 CST 2025 aarch64 aarch64 aarch64 GNU/Linux
- miniboot 已经更新到最新
- 问题描述:我需要在初始化 【 输入 】引脚时 PIO.setup(input_pin, GPIO.IN, pull_up_down=False) ,能指定默认为上拉或者下拉
- 使用场景: 比如我有一个外部光电开关,与引脚 pin=3 连接,当开关被触发时,光电开关会把 pin=3 这个引脚电平 拉高 当开关未触发时,会把pin=3 悬空,此时,由于 GPIO.setup(input_pin, GPIO.IN) 时初始化 pin=3 时它,默认的电平就是 高电平,当我的开关触发时,也是 高电平 使用 value = GPIO.input(input_pin) 读取引进时,value值始终不会变化 导致无法判断,光电开关是否被触发
示例代码:-
import sysimport signalimport Hobot.GPIO as GPIOimport timedef signal_handler(signal, frame): sys.exit(0)input_pin = 3def main(): GPIO.setmode(GPIO.BOARD) GPIO.setup(input_pin, GPIO.IN, pull_up_down=False) # 需要在这里能指定 pull_up_down value = GPIO.input(input_pin) print("Pin %d input value %d" % (input_pin, value))if __name__=='__main__': signal.signal(signal.SIGINT, signal_handler) main()
运行上述代码,得到输出如下:
Pin 3 input value 1
预期结果应该是
pull_up_down=False 时 Pin 3 input value 0-
pull_up_down=True 时 Pin 3 input value 1
实际测试并不是这样,pull_up_down 参数并没有生效。