Python脚本不读取GPI

2024-10-03 02:47:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在RPi的后台运行以下python脚本(mission\u buttons.py)。其目的是等待两个物理按钮(GPIO引脚23和24)上的输入,并在读取任一引脚上的逻辑HI时,将字母“x”打印到终端或调用updateemission.js

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BCM)

GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)

upload_mission = GPIO.input(23)
execute_mission = GPIO.input(24)

while(1):

    if execute_mission == True:
        print 'x'

    if upload_mission == True:
        subprocess.call(["node", "/home/pi/QRIDrone/RPIBuild/updateMission.js"], shell=False)

但是当我运行脚本时,按下按钮似乎什么也做不了。 如果我将代码调整为:

if execute_mission == False:
    print 'x'

if upload_mission == False:
    subprocess.call(["node", "/home/pi/QRIDrone/RPIBuild/updateMission.js"], shell=False)

程序打印x并按其应该的方式反复调用updateemission.js。有什么东西阻止RPi读取GPIO吗


Tags: inimport脚本falseexecutegpioifsetup
1条回答
网友
1楼 · 发布于 2024-10-03 02:47:14
  1. 检查是否连接了正确的针脚
  2. 您没有在while中读取upload\u mission=GPIO.input(23)。你以前只读过一次,然后就不读了
    您需要:

    upload_mission = GPIO.input(23)
    execute_mission = GPIO.input(24)
    while(1):
        upload_mission = GPIO.input(23)
        execute_mission = GPIO.input(24)
        if execute_mission == True:
            print 'x'
    
        if upload_mission == True:
            subprocess.call(["node", "/home/pi/QRIDrone/RPIBuild/updateMission.js"], shell=False
    

相关问题 更多 >